Since the last release 169 patches by 24 authors were merged.
Notable changes are:
-
New C library test API that significantly eases test writing
This is the end result of last few years of cleanups and fixes. Most of the
common code has been moved to the library which both helps to avoid common
mistakes and lets the programmer concentrate on test itself. It also fixed
long standing problems with thread safety, simplified test result propagation
from child processes, fixed problems with cleanup callback, etc. If you ever
given up on writing a LTP testcase because the test API was incomplete and
difficult to use you should really reconsider now.The old and new test API will coexistent for a while until all old testcases
are converted, which will take quite some time. New test are written using
the new API only.You can have a quick look at new/converted tests to get a feel for the new API:
https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/syscalls/recvmsg/recvmsg02.c
https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/syscalls/creat/creat06.cOr have a look at updated documentation at:
https://github.com/linux-test-project/ltp/wiki/Test-Writing-Guidelines#22-writing-a-test-in-c
-
New syscall tests for:
- request_key()
- preadv()
- pwritev(),
- fcntl() + F_OFD_* locks
- personality()
- removexattr()
- llistxattr()
- epoll_pwait(),
- epoll_wait()
- open() + O_TMPFILE
And regression tests for:
- madvise() + MADV_WILLNEED
- recvmsg() + MSG_PEEK
-
Rewritten network stress tests
-
New test for lsmod
-
Usual amount of fixes
- fixed file corruptions with ltp-pan
- added a few return value checks for fork() where the value is later passed
to kill() resulting in call to kill(-1, ...) if fork() failed - a few more skipped test on Btrfs on unsupported/unimplemented functionality
- fixed test result propagation in five fcntl testcases
- much more...