Good news everyone,
the Linux Test Project test suite stable release for September 2025 has been
released.
Since the last release 221 patches by 25 authors were merged.
Patch review is what most of the projects struggle with and LTP is no
different. If you can spare some effort helping with the patch review is more
than welcomed.
NOTABLE CHANGES
-
New tests
-
CVE-2025-21756 regression test for fcdd2242c023 ('vsock: Keep the binding until socket destruction')
-
CVE-2025-38236 regression test for 32ca245464e1 ('af_unix: Don't leave consecutive consumed OOB skbs')
-
file_attr[01-04] tests for file_getattr() and file_setattr() syscalls
-
clock_settime04 Tests that changing the CLOCK_REALTIME clock has no effect
on a relative/absolute clock_nanosleep() -
statmount09 that verifies that statmount() is correctly reading the mount
ID for the current namespace -
listxattr04 regression test for 8b0ba61df5a1 ('fs/xattr.c: fix simple_xattr_list to always include security.* xattrs')
-
ioctl_pidfd[01-06] tests for PIDFD_GET_INFO ioctl() and PIDFD_INFO_EXIT flag
-
mount08 regression test for d80b065bb172 ('proc: restrict overmounting of ephemeral entities')
-
unshare05 tests that unshare(CLONE_NEWPID) assign pid 1 to the first child
-
ioctl10 test for PROCMAP_QUERY ioctl()
-
landlock02 test for landlock ABI v6
-
landlock09 test for unix socket landlock sandboxing
-
landlock10 test for signal sandboxing
-
epoll_pwait06 regression test for d9ec73301099 ('fs/eventpoll: fix endless busy loop after timeout has expired')
-
lsm_get_self_attr[01-03] tests for lst_get_self_attr() syscall
-
lsm_list_modules[01-02] tests for lsm_list_modules() syscall
-
lsm_set_self_attr01 test for lsm_set_self_attr() syscall
-
-
Increased coverage
- open13 now checks that more operations are failing with EBADF on O_PATH fd
and also verifies that dup() preserves O_PATH flag
- open13 now checks that more operations are failing with EBADF on O_PATH fd
-
Rewritten and updated tests
-
open posix aio_cancel_7-1 was rewritten to trigger the tested condition reliably
-
mmap22 now uses mincore() to test MAP_DROPPABLE flag
-
open posix pthread_rwlock_rdlock now use PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
on glibc to force POSIX mandated behavior -
ioctl_loop01 and ioctl09 tests now use loop device instead of the backing
úfile for partitioning -
sched_football thread synchronization at the start was rewritten to make sure
threads are started in the right order
-
-
Removed tests
-
eject command test
-
kdump testsuite which was unmaintained for nearly two decades
-
-
General smaller improvements
-
LTP kernel modules can now be build separately with 'make modules'
-
The new shell test library now support setup() and cleanup() functions
-
The concept of min_runtime was added to the test library, now tests that run
for longer time can define min_runtime in order to make sure that the test
actually runs for a reasonable runtime when test runtime is scaled down.For details see:
81ba405 ('tst_test: Add min_runtime to control lower bound of scaled runtime') -
Test library now properly translates MS_RDONLY flag for FUSE based mounts
-
The test metadata parser now correctly handles designed initializers
Details in:
375286f ('metaparse: Map arrays with designated initializers to JSON objects') -
New LTP_QUIET environment variable was introduced, if set TINFO, TDEBUG and
TCONF messages are suppresed. This can be combined with the previously
introduced LTP_REPRODUCIBLE_OUTPUT to create shorter logs that are easier to
compare between runs.
-
-
Kirk and ltx has been fixed and now works well together
This marks a milestone in new LTP test runner development as we are nearing
the vision we had for years. The ltx, which is minimalistic daemon that
communicates over byte oriented connection, can be started on the system
under test and kirk can connect to ltx from a machine that drives the testing
and run tests in parallel using ltx.The documentation is sparse at the moment and kirk qemu SUT does not start
ltx automatically. However if you want to feel adventurous and try ltx in a
qemu virtual machine with communication over virtio with these steps:Manually start qemu virtual machine on a host:
mkfifo ltx-io.in mkfifo ltx-io.out qemu- ... -chardev pipe,id=ltx-io,path=ltx-io -device virtserialport,chardev=ltx-io,name=ltx-io
Start ltx inside of the guest:
/opt/ltp/ltx -s /dev/virtio-ports/ltx-io
And on a host use kirk to talk to ltx via the virtio serial:
./kirk --run-suite syscalls --sut ltx:infile=ltx-io.in:outfile=ltx-io.out
Parallel run can be started by passing number of workers (-w N) to kirk.
Similarily you can run ltx and kirk over real serial null modem between two
machines.Next step that is already in queue is separation of communication channel and
SUT definition in kirk. That will allow us to select different ways how kirk connects
to SUT e.g. qemu while the SUT module will handle the power e.g. reboot.
Hopefully that will happen in the next release and we will be finally removing the
old and deprecated runltp next year. -
Testers guide to the Linux Test Project was added into documentation:
https://linux-test-project.readthedocs.io/en/latest/users/testers_guide.html -
Documentation was written for test macros:
https://linux-test-project.readthedocs.io/en/latest/developers/api_c_tests.html#test-macros -
52 testcases were converted to the new test library
- The usual amount of fixes and cleanups
DOWNLOAD AND LINKS
The latest version of the test-suite contains 3000+ tests for the Linux
and can be downloaded at:
https://github.com/linux-test-project/ltp/releases/tag/20250930
The project pages as well as GIT repository are hosted on GitHub:
https://github.com/linux-test-project/ltp
If you ever wondered how to write a LTP testcase, don't miss our developer
documentation at:
https://linux-test-project.readthedocs.io/en/latest/developers/test_case_tutorial.html
And our library API documentation at:
https://linux-test-project.readthedocs.io/en/latest/developers/api_c_tests.html
Patches, new tests, bugs, comments or questions should go to to our mailing
list at ltp@lists.linux.it.
CREDITS
Many thanks to the people contributing to this release:
git shortlog -s -e -n 20250530..
50 Andrea Cervesato <andrea.cervesato@suse.com>
50 Petr Vorel <pvorel@suse.cz>
33 Ricardo B. Marlière <rbm@suse.com>
16 Cyril Hrubis <chrubis@suse.cz>
15 Li Wang <liwang@redhat.com>
14 Martin Doucha <mdoucha@suse.cz>
13 Wei Gao <wegao@suse.com>
5 Avinesh Kumar <akumar@suse.de>
4 Tiezhu Yang <yangtiezhu@loongson.cn>
3 Florian Schmaus <florian.schmaus@codasip.com>
2 Amir Goldstein <amir73il@gmail.com>
2 Jack Morgan <jmorgan@naotchy.com>
2 Martin Cermak <mcermak@redhat.com>
1 Ben Copeland <ben.copeland@linaro.org>
1 Charles Shi <schrht@gmail.com>
1 Jan Kara <jack@suse.cz>
1 Jan Polensky <japo@linux.ibm.com>
1 Jan Stancek <jstancek@redhat.com>
1 Liheng Chen <791960492@qq.com>
1 Mark Wielaard <mark@klomp.org>
1 Mike Tipton via ltp <ltp@lists.linux.it>
1 Tengda Wu <stavewu@gmail.com>
1 Xiao Yang <iceyangxiao@gmail.com>
1 lufei <lufei@uniontech.com>
1 yang.zhang <zhangyang01@kylinos.cn>
And also thanks to patch reviewers:
git log 20250530.. | grep -Ei '(reviewed|acked)-by:' | sed 's/.*by: //' | sort | uniq -c | sort -n -r
97 Cyril Hrubis <chrubis@suse.cz>
54 Petr Vorel <pvorel@suse.cz>
48 Li Wang <liwang@redhat.com>
38 Andrea Cervesato <andrea.cervesato@suse.com>
11 Avinesh Kumar <akumar@suse.de>
10 Wei Gao <wegao@suse.com>
4 Ricardo B. Marlière <rbm@suse.com>
3 Jan Stancek <jstancek@redhat.com>
2 Mimi Zohar <zohar@linux.ibm.com>
1 Pedro Falcato <pfalcato@suse.de>
1 Martin Doucha <mdoucha@suse.cz>
1 Jan Kara <jack@suse.cz>