47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
# Run Linux LTP on Occlum
|
|
|
|
In this demo, we will show how to run the Linux LTP inside Occlum.
|
|
|
|
Linux [`LTP`](https://github.com/linux-test-project/ltp) is the most popular test suite for Linux.
|
|
Occlum could also apply the LTP to verify the stability and compatibility to Linux app.
|
|
|
|
Because Occlum doesn't support `fork`, `vfork` has to be used instead in the LTP test.
|
|
And a light weight [`test script`](./run-ltp.sh) running in Occlum is provided to be used in this demo.
|
|
|
|
## Download and build the Linux LTP from source code
|
|
```
|
|
./dl_and_build_ltp.sh
|
|
```
|
|
|
|
Some test cases are failed due to multiple reasons, such as syscall is not implemented or not completely implemented in Occlum.
|
|
|
|
* Some default LTP test cases may make the Occlum crash or hang (Only checked the cases in syscalls for now).
|
|
* Occlum runable syscall test cases are defined in [`syscalls-occlum`](./syscalls-occlum). It may be updated with Occlum development.
|
|
|
|
The original [`syscalls`] test cases could be found in the built demo `ltp_instance/image/opt/ltp/runtest/syscalls`.
|
|
Panic/Sefault/hang testcases could be listed by a simple diff for these two files.
|
|
|
|
## Prepare the Occlum instance for LTP demo
|
|
```
|
|
./prepare_ltp.sh
|
|
```
|
|
|
|
## Run the LTP demo
|
|
|
|
The script `run-ltp.sh` supports two optional arguments as below.
|
|
```
|
|
usage: run-ltp.sh [options]
|
|
|
|
options:
|
|
-f CMDFILES Execute user defined list of testcases
|
|
-s PATTERN Only run test cases which match PATTERN.
|
|
|
|
example: run-ltp.sh -f syscalls-occlum -s timerfd
|
|
```
|
|
|
|
If no options provided, all the test cases in default LTP syscalls will be run one by one.
|
|
|
|
Note:
|
|
|
|
* The `CMDFILES` are defined in the LTP install path, such as `ltp_instance/image/opt/ltp/runtest/` in this demo.
|