LTP 20210927
Since the last release 483 patches by 40 authors were merged.
This is a record breaking release by the number of patches as well as by the
amount of newly implemented functionality. Many thanks to all contributors!
And even more thanks to the reviewers!
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
- epoll_ctl05 checks for ELOOP error for circular loop of epolls
- epoll_ctl04 checks for EINVAL when epoll nesting is too deep
- epoll_ctl02 checks for EPERM when epoll is not supported for fd
- epoll_create01 checks that epoll create returns a valid fd
- epoll_create1_02 checks for EINVAL when epoll_create1() is passed invalid flags
- epoll_pwait02 test if events are reported properly
- epoll_pwait03 tests if epoll_pwait/epoll_pwait2 timeouts correctly
- epoll_pwait04 adds tests for zero timeout and invalid timespec values
- shmget05 test for /proc/sys/kernel/shm_next_id
- shmget06 test when shm_next_id is already in use
- io_getevents02 checks for EINVAL errors via libaio
- io_cancel02 checks for EFAULT errors via libaio
- io_submit03 checks for invalid input via syscall
- io_submit02 checks if correct operation via syscall
- io_setup02 checks for invalid inputs via syscall
- io_destroy02 checks for invalid inputs via syscall
- cfs_bandwidth01 a multi-level cgroup cpu controller test
-
New regression tests
- creat09 privilege escalation using setgid directory aka CVE-2018-13405
- can_bcm01 race condition vulnerability in CAN BCM aka CVE-2021-3609
- setsockopt08 out-of-bounds write corrupting aka CVE-2021-22555
- perf_event_open03 kernel memory leak aka CVE-2020-25704
- squashfs01 regression test for broken sanity checks
- set_mempolicy05 information leak aka CVE-2017-7616
- userns08 broken id mappings in nested namespaces CVE-2018-18955
- tc01.sh regression test for tc qdisc command
- fanotify19 added regression test for:
a8b98c808eab ("fanotify: fix permission model of unprivileged group") - kill13 INT_MIN negation reproducer aka CVE-2018-10124
- wait403 INT_MIN negation reproducer
- vsock01 race condition reproducer aka CVE-2021-26708
- icmp_rate_limit01 DNS cache poisoning attack aka CVE-2020-25705
-
Increased coverage
- epoll_create02 checks for more EINVAL failures
- epoll_ctl03 checks that the syscall works with all valid flags combinations
- mbind01 more tests for MPOL_LOCAL
- epoll_pwait01 adds test variants for epoll_pwait2()
-
75 tests were rewritten to the new library
-
Removed tests
- sched/stress as it was unmaintained and unused for years
- stress_cd and stress_floppy since these scripts were broken and unmaintained for years
- disktest as it was unmaintained and unused for years
-
The CI was moved from Travis to GitHub actions
-
'make check' was introduced to the LTP build system
- which is a tool for developers that runs various sanity checks on the source code
- this includes:
- checkpatch.pl, custom set of sparse rules for C
- checkbashism.pl for shell
- please make sure you run 'make check' or 'make check-testname' and fix the
warnings before submitting patches
-
Subset of our library tests i.e. tests for the test library is now executed
CI in github actions, this is ongoing effort to make sure that the test library
used by the testcases is working as expected -
The test library was fixed to print all messages to stderr
-
Testcases were fixed not to expect certain users and groups to be present on the system
- some tests were expecting bin, daemon and similar groups and users to exist on the system
- now LTP depends only on user 'nobody' and group 'nogroup'
-
New environment variable LTP_VIRT_OVERRIDE was added
- this is meant as a quick workaround for cases where the test library
cannot properly detect if system is virtualized or not - see https://github.com/linux-test-project/ltp/wiki/User-Guidelines
- this is meant as a quick workaround for cases where the test library
-
Fixed (again) timeouts in shell test library
- turns out you cannot make timeouts in shell race-free so the timeout logic
is now implemented in a small C helper binary
- turns out you cannot make timeouts in shell race-free so the timeout logic
-
Finally after the years we are slowly making tests limits-aware
- cgropup tests and a few others are now aware of pid limits imposed by the system
- next step would be doing rough estimates on the number of processes we can run
based on the free system memory
-
There is ongoing effort to fix LTP cgroup tests, this release includes many
small fixes and improvements in the cgroup tests -
The aarch64 system call table was fixed not to include 32bit only syscall numbers
-
The TST_EXP_*() macros were improved and a few bugs were fixed
-
The test library developer documentation and tutorials were reorganized and improved
- The more that the usual amount of fixes and cleanups
WHAT IS IN THE QUEUE
Next release will hopefully include runltp-ng which is new and improved LTP
testrunner. The current runltp script will be maintained alongside with the
new solution for some time but removed after a few releases.
You are more than welcome to try it and make sure that it works for you before
it becomes the official LTP testrunner.
See: https://github.com/metan-ucw/runltp-ng
NOTABLE CHANGES IN NETWORK TESTS
brought to you by Petr Vorel
-
C network library
- Added device management helpers
- And documentation:
https://github.com/linux-test-project/ltp/wiki/C-Test-Network-API
-
Shell network library
- Allow to skip initialization with TST_NET_SKIP_VARIABLE_INIT=1
- Disable IPv6 Duplicate Address Detection on link-local addresses
-
Tests rewritten to the new library
- getaddrinfo01
- ssh-stress
-
Removed tests
- broken_ip-totlen
- More busybox and general fixes
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/20210927
The project pages as well as GIT repository are hosted on GitHub:
https://github.com/linux-test-project/ltp
http://linux-test-project.github.io/
If you ever wondered how to write a LTP testcase, don't miss our developer
documentation at:
https://github.com/linux-test-project/ltp/wiki/Test-Writing-Guidelines
https://github.com/linux-test-project/ltp/wiki/C-Test-API
https://github.com/linux-test-project/ltp/wiki/C-Test-Network-API
https://github.com/linux-test-project/ltp/wiki/Shell-Test-API
https://github.com/linux-test-project/ltp/wiki/C-Test-Case-Tutorial
https://github.com/linux-test-project/ltp/wiki/BuildSystem
Patches, new tests, bugs, comments or questions should go to to our mailing
list at [email protected].
CREDITS
Many thanks to the people contributing to this release:
git shortlog -s -e -n 20210927..
87 Petr Vorel <[email protected]>
51 Xie Ziyao <[email protected]>
51 Richard Palethorpe <[email protected]>
50 Martin Doucha <[email protected]>
30 Krzysztof Kozlowski <[email protected]>
29 Cyril Hrubis <[email protected]>
28 Alexey Kodanev <[email protected]>
27 Yang Xu <[email protected]>
20 Li Wang <[email protected]>
18 zhanglianjie <[email protected]>
17 Joerg Vehlow <[email protected]>
12 Vinay Kumar <[email protected]>
8 Xie Ziyao <[email protected]>
7 sujiaxun <[email protected]>
5 Bogdan Lezhepekov <[email protected]>
5 Dai Shili <[email protected]>
5 Jan Stancek <[email protected]>
5 QI Fuli <[email protected]>
4 Leo Liang <[email protected]>
2 Alexander Egorenkov <[email protected]>
2 Amir Goldstein <[email protected]>
2 Shiyang Ruan <[email protected]>
2 Thadeu Lima de Souza Cascardo <[email protected]>
2 Zhao Gongyi <[email protected]>
1 Alessio Balsini <[email protected]>
1 Bogdan Lezhepekov via ltp <[email protected]>
1 Cao jin <[email protected]>
1 Egor Petrov <[email protected]>
1 Ian May <[email protected]>
1 John Stultz <[email protected]>
1 Leo Yu-Chi Liang <[email protected]>
1 Marius Hillenbrand <[email protected]>
1 Naresh Kamboju <[email protected]>
1 Radoslav Kolev <[email protected]>
1 Wang Xin <[email protected]>
1 Xiao Yang <[email protected]>
1 Zou Wei <[email protected]>
1 dongshijiang <[email protected]>
And also thanks to patch reviewers:
git log 20210927.. | grep -Ei '(reviewed|acked)-by:' | sed 's/.*by: //' | sort | uniq -c | sort -n -r
289 Cyril Hrubis <[email protected]>
113 Petr Vorel <[email protected]>
75 Li Wang <[email protected]>
25 Richard Palethorpe <[email protected]>
16 Yang Xu <[email protected]>
12 Alexey Kodanev <[email protected]>
7 Jan Stancek <[email protected]>
6 Richard Palethorpe <[email protected]>
5 Xiao Yang <[email protected]>
5 Martin Doucha <[email protected]>
3 Joerg Vehlow <[email protected]>
3 Enji Cooper <[email protected]>
2 Krzysztof Kozlowski <[email protected]>
1 Yang Xu <[email protected]
1 Xie Ziyao <[email protected]>
1 Stephen Kitt <[email protected]>
1 Petr Vorel <[email protected]>
1 Leo Yu-Chi Liang <[email protected]>
1 Joerg Vehlow <[email protected]>