Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
Since the last release 297 patches by 38 authors were merged.
two inotify regression tests for:
764baba80168 ("ovl: hash non-dir by lower inode for fsnotify")
31747eda41ef ("ovl: hash directory inodes for fsnotify")
sysclt01 a regression test for:
5ccba44ba118 ("sched/sysctl: Check user input value of sysctl_sched_time_avg")
CVE regression tests for:
- CVE-2017-17053 - ccd5b3235180 ("x86/mm: Fix use-after-free of ldt_struct")
- CVE-2017-16939 - 1137b5e2529a ("ipsec: Fix aborted xfrm policy dump crash")
- CVE-2015-3290 - 9b6e6a8334d5 ("x86/nmi/64: Switch stacks on userspace NMI entry")
- CVE-2017-17052 - 2b7e8665b4ff ("fork: fix incorrect fput of ->exe_file causing use-after-free")
- CVE-2017-17807 - 4dca6ea1d943 ("KEYS: add missing permission check for request_key() destination")
Test that aims to stress test /proc, /sys and safe subset of /dev
filesystems by reading by reading each readable file using several
The pwritev03 and preadv03 tests with O_DIRECT executed on all supported filesystems.
Pids controller tests fixed a race that made them fail sporadically and
the the coverage was increased.
Write syscall tests for special case with NULL buffer and len 0 where
the call is expected to return 0 i.e. success.
Removed outdated and broken tests
- sssd daemon test
- mail command test
- ht_interrupt -- hyperthreading interrupt balancing test
54 testcases were cleaned up and converted to the new test library
The syscalls testrun has been speeded up by about a minute which is 5% of the runtime.
Several Android fixes have been applied.
New macro for automatic retry with exponential backoff has been added to the
test library, which should replace all the ad-hoc retry loops we do have all
around the codebase.
IMA (Integrity Measurement Architecture) tests
Were rewritten to use new API, updated, and various bugs has been fixed.
The most important changes:
- Avoid running on tmpfs ima_measurements.sh and ima_violations.sh
- ima_measurements.sh: support new IMA measurement templates, support testing
most of IMA supported hash algorithms, fix & update iversion check
- tpm.sh: replace ima_measure with evmctl (external)
- ima_policy.sh: improve check of policy writability
- ima_boot_aggregate: fixing event size for modern BIOS
Many thanks to Mimi Zohar for her review and testing of IMA test cases.
Plus the usual number of fixes and cleanups all over the place
Changelog for network tests brought to you by Peter Vorel.
- for IP_BIND_ADDRESS_NO_PORT, DCCP and UDP ipsec and for UDPLITE protocol
- regression test sctp_big_chunk aka CVE-2018-5803
- netstress gained support for IP_BIND_ADDRESS_NO_PORT, SO_ZEROCOPY flags
and UDPLITE protocol
- Use libtirpc for all RPC tests
Test cases rewritten into new shell API:
- interface and multicast tests cases
Removed tests cases
Various fixes and doc cleanups
Many thanks to the people contributing to this release:
git shortlog -s -e -n 20180118..
76 Petr Vorel firstname.lastname@example.org
38 Cyril Hrubis email@example.com
37 Michael Moese firstname.lastname@example.org
30 Alexey Kodanev email@example.com
21 Xiao Yang firstname.lastname@example.org
12 yang xu email@example.com
9 Yixin Zhang firstname.lastname@example.org
7 Jinhui Huang email@example.com
7 Richard Palethorpe firstname.lastname@example.org
6 Jan Stancek email@example.com
6 Li Wang firstname.lastname@example.org
5 Amir Goldstein email@example.com
4 Carlo Marcelo Arenas Belon firstname.lastname@example.org
4 Stanislav Kholmanskikh email@example.com
3 Petr Vorel firstname.lastname@example.org
3 Steve Muckle email@example.com
2 Anders Roxell firstname.lastname@example.org
2 Eric Biggers email@example.com
2 Khem Raj firstname.lastname@example.org
2 Sandeep Patil email@example.com
2 Sebastian Chlad firstname.lastname@example.org
2 xiao yang email@example.com
1 Christian Lanig firstname.lastname@example.org
1 Dmitry Safonov email@example.com
1 Erick Reyes firstname.lastname@example.org
1 Greg Hackmann email@example.com
1 Harish firstname.lastname@example.org
1 Hoang Van Tuyen email@example.com
1 Hridya Valsaraju firstname.lastname@example.org
1 Joe Konno email@example.com
1 Lars Persson firstname.lastname@example.org
1 Lianwen Sun email@example.com
1 Pavel Boldin firstname.lastname@example.org
1 Qiao Zhao email@example.com
1 Xiong Zhou firstname.lastname@example.org
1 Yang Pengfei email@example.com
1 akodanev firstname.lastname@example.org
1 xie hui email@example.com
1 yosun firstname.lastname@example.org
And also thanks to patch reviewers:
git log 20180118.. | grep -Ei '(reviewed|acked)-by:' |
sed 's/.*by: //' | sort | uniq -c | sort -n -r
34 Cyril Hrubis email@example.com
15 Petr Vorel firstname.lastname@example.org
15 Alexey Kodanev email@example.com
11 Jan Stancek firstname.lastname@example.org
7 Richard Palethorpe email@example.com
4 Li Wang firstname.lastname@example.org
3 Mimi Zohar email@example.com
2 Petr Vorel firstname.lastname@example.org
2 James Morris email@example.com
1 yang xu firstname.lastname@example.org
1 Xiao Yang email@example.com
Since the last release 278 patches by 35 authors were merged.
Notable changes for this release include:
New tests for:
- unshare(1) command
- ioctl07 test for RNDGETENTCNT ioctl()
- new network MACsec testcases
- new network IPsec SCTP and DCCP testcases
New regression tests for:
- CVE-2017-5754 aka meltdown
- CVE-2017-12193 (test add_key04)
- CVE-2017-15299 and CVE-2017-15951 (test request_key03)
- CVE-2017-7308 (test setsockopt02)
- CVE-2016-9604 (test keyctl08)
- CVE-2017-15537 (test ptrace07)
- CVE-2017-12192 (test keyctl07)
- add_key03 regression test for kernel commit 237bbd29f7a0
- keyctl06 regression test for kernel commit e645016abc80
- brk01 (test rewritten from scratch)
- sigwaitinfo01 (fixed and enabled)
- openposix aio testcases (uninitialized aiocb)
- many smaller fixes
- invalid openposix pthread_barrier_wait_6-1 test
- tcp_cmds tests for rwho, echo, finger, and rdist.
The test library gained support to run a particular test against
different filesystems including FUSE filesystems such as NTFS or exFAT. The
mkfs and kernel/FUSE support for a particular filesystem must be in-place
otherwise the tests will skip it automatically.
Some of the filesystem specific syscall tests such as fallocate() are
executed this way now. We also have a new test that fills up filesystem
using several threads and expects the syscalls to fail gracefully.
The fuzzy synchronization library that is used to trigger races mostly in CVE
testcases was rewritten to use one thread instead of starting a thread on
each iteration, which is not only faster but also more stable since we
introduce less random jitter to the timing measurements this way.
Various fixes and enhancements for the network testcases.
Support for NUMA API older than v2 was dropped from the testcases.
The configure script now correctly detects devel libraries on -m32 build.
Another large scale cleanup using coccinelle was done on the code base.
We transformed patterns such as:
if (scall(...) < 0)
Which will produce unified and more verbose error reporting in case
that the call to scall() will fail.
The runltp script now lists test skipped by the skipfile parameter as skipped
in the testrun results, these were missing from it previously.
24 testcases were cleaned up and converted to the new test library
- The usual amount of fixes all over the code base
Since the last release 290 patches by 39 authors were merged.
Notable changes for this release include:
New tests for:
- splice() between pipes and sockets
- splice() between two pipes
- clone() with CLONE_NEWNET
- msync() with mmaped file
- getsockopt() with SO_PEERCRED
- fanotify() with FAN_CLOEXEC
- dynamic_debug tracing
- basic gdb test
- combination of OFD and POSIX locks on a file
New regression tests for:
- fanotify() 96d41019e3ac and 05f0e38724e8
- add_key() 5649645d725c
- fcntl() 086e774a57fb
- sched/autogroup 18f649ef3441
- memcg https://bugzilla.redhat.com/show_bug.cgi?id=1168185
- vdso permissions b6558c4a2378 and e5b97dde514f
- keyctl() 63a0b0509e70
- numa MPOL_PREFERRED policy 0867a57c
- long broken dmapi testsuite
66 testcases were cleaned up and converted to the new test library
KSM (kernel samepage merging) test should be race-free now
So far if only small part of a test reported skipped status the overall
test status was reported as skipped as well. Now if test reports both
sucessful and skipped results the overall status is reported as suscessful.
Timer mesurement library code was introduced
- all syscalls that use kernel timers are measured in a unified way
- we take much more samples and use discarded mean to get rid of outliners
- the threshold is now defined in the library and can be easily adjusted
- for more information see:
Also effort to convert CVE reproducers into LTP testcases started to gain momentum
It starts by introducing thread synchronization library that auto-tunes a
spin-in-a-place delay so that we execute two critical sections of code at
the same time, which makes tests based on races much more faster and
stable in reproducing the bugs.
So far implemented CVE tests include:
- CVE-2011-0999 transparent hugepages used wrongly for args/env
- CVE-2011-2183 NULL pointer dereference in ksm_do_scan()
- CVE-2011-2496 address overflow in mremap()
- CVE-2012-0957 uname26 memory leak
- CVE-2014-0196 PTY echo race
- CVE-2015-0235 buffer overflow in gethostbyname_r()
- CVE-2015-7550 race between keyctl_read() and keyctl_revoke()
- CVE-2016-4470 uninitialized variable in key_reject_and_link()
- CVE-2016-5195 aka dirtyc0w
- CVE-2016-7042 crash in /proc/keys show function
- CVE-2016-7117 use after free between recvmmsg() and close()
- CVE-2016-10044 mark AIO pseudo-fs noexec
- CVE-2017-2618 off-by-one in setprocattr
- CVE-2017-2671 missing rwlock in ping_unhashed()
- CVE-2017-5669 NULL page mapped with shmat() and SHM_RND
- CVE-2017-6951 NULL dereference in request_key()
- CVE-2017-7472 thread keyring memory leak
- CVE-2017-1000364 aka stack_clash
Note that a few of the testcases were implemented in the previous
release as well but these were not counted as CVE related.
The ltp-pan testrunner that executes LTP testcases marks test start in kernel
log, which helps with pairing LTP testcase with a kernel trace.
There is new step-by-step C test tutorial at:
A few EROFS related testcases now use read-only tmpfs instead of the loopback
based device, which saves up to half of a minute of runtime per such testcase.
The rest of such testcases will be converted after the release.
The nfsv4 locktest source has been translated from French.
Many fixes in numa testcases.
Many fixes in network testcases.
- The usuall amount of fixes all over the codebase
Since the last release 264 patches by 28 authors were merged.
Notable changes are:
New tests for
- quotaclt() regression test
- quotactl() Q_XGETNEXTQUOTA
- lseek() SEEK_HOLE and SEEK_DATA
- keyctl() regression tests
- memfd_create() tests
- madvise() MADV_FREE, MADV_DONTDUMP, MADV_HWPOISON
- recvmsg() regression test
- getxattr() regression test
- ioctl() BLKGETSIZE/BLKGETSIZE64, BLKRAGET/BLKRASET, BLKROSET/BLKROGET
- move_pages() regression test
Additional 47 testcases were cleaned up and converted to the new test library.
SAFE_MACROS() can now be used in test cleanup which significantly simplifies
test cleanup functions.
Numa memory migration testcases were cleaned up and fixed.
Minimal testing device size was bumped to 256MB in order to support modern
Initiall ANDROID support was merged in.
Test output is now colorized in case that we print to terminal.
- The usuall amount of fixes all around the place
Since the last release 211 patches by 28 authors were merged.
- New testcases for:
- vti and geneve tunnel tests (network tests)
- New shell test library was added and many old and broken tests were
rewritten to make use of it
- 36 syscall testcases were converted to the new library
- Many cases of bashism were fixed
- Experimental support for network namespaces has been added into network
tests, which means that these test can now be optionally executed on a
single testing machine
- LTP compiled for 32bit should now run flawlessly on 64bit kernel
which is useful for testing the 32bit compat syscall interface
- Usuall amount of cleanups, fixes and speedups
Since the last release 236 patches by 28 authors were merged.
o New testcases
- tracepath, clockdiff, arpping, ping, wc, insmod
- sbrk() regression test
- dio_sparse added direct I/O regression test
o Rewritten/cleaned up tests
- waitpid syscall testcases
- NFS tests
- ftrace tests
o More work on memory cgroup testcases
- a lot of cleanups, big tests were split into smaller ones
- implemented proper synchronization primitives between processes
which saves a few minutes on the test execution time
o More work on the new test API
- test is executed in child processes, parent process watches for timeout,
does cleanup, reports results, etc.
- Ctrl+C kills all subprocesses correctly and the parent process runs cleanup
- new command line option parsing helpers
- 25 testcases were cleaned up and rewritten to use the new test API
o New EXPECT_PASS and EXPECT_FAIL helpers in shell library
o New shell wrappers for checkpoint (futex based) synchronization primitives
o New tst_su wrapper (that makes sure that path to LTP binaries is in $PATH)
o Open Posix Testsuite changes
- parallel build has been fixed
- the build process now uses the top level configure parameters
(CC, CFLAGS, LDLIBS, LDFLAGS)
o And usuall amount of cleanups, fixes, and speedups.
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:
Or have a look at updated documentation at:
New syscall tests for:
- fcntl() + F_OFD_* locks
- 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...
Since the last release 191 patches by 29 authors were merged.
Notable changes are:
- Rewritten and new cgroup tests for cpuacct and pids controllers
- Rewritten basic cgroup functional and stress tests
- New userns07 test for user namespaces
- New syscall tests for:
- fcntl(fd, F_SETLEASE)
- New regression test for:
- mmap() + hugepages,
- shmget()/shmat() + hugepages
- Open Posix pthread_create() tests were partially rewritten and
no longer fails on machines with > 4 CPUS
- New tests for mkfs, mkswap, and which utilities
- New tests for kernel input stack (utilizing uinput)
- Fixes in nfs tests and IPV6 support
- New test for dctcp congestion control algorithm
Since the last release 272 patches by 27 authors were merged.
Notable changes are:
- Network namespace testcases were rewritten from scratch
- New user namespaces testcases
- New testcases for various virtual network interfaces
- New inotify, cpuset,
- Plus the usual number of fixes and enhancements