Doing substring matches allows accidental new tests to be enabled,
when they are not supposed to be. E.g., whitelisting "xdp" allows new
"xdpwall" test on 5.5.0, which wasn't supposed to happen.
Cc: Yucong Sun <fallentree@fb.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
There is a problem in bpf-next tree which causes get_stack_raw_tp and
few other selftests to produce tons of kernel warnings, timing out and
failing CI test runs. Blacklist until bpf tree, which has a fix, is
merged into bpf-next.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Use this list of enabled tests as a whitelist, so that we don't have to
keep updating BLACKLIST-5.5.0 anymore. I'll keep BLACKLIST-5.5.0 for
now, because it serves as a nice historic log of which tests depend on
which kernels.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
When new eBPF program, map, or attach types are added to the kernel,
bpftool needs to be updated in order to support the related features.
These updates should add the new types to the code itself, but also to
the help messages, documentation, and bash completion. Given that it is
easy to omit one of those, a script has been created to attempt to
validate that all parts have been consistently updated.
This new script for bpftool is hosted in the kernel repository, amongst
the BPF selftests. But it is not called from the Makefile, and not run
along with the other selftests. If it was, all patches updating the BPF
UAPI would require the relevant changes in bpftool at the same time, _in
the same patches_, which is not desirable.
To ensure that bpftool's parts remain in sync, let's run this script
from the CI. This patch adds a new section to the run.sh script, focused
on bpftool, and calling the new test_bpftool_synctypes.py.
Only keep stderr output in case of errors for kernel and selftests builds.
Having a multi-thousand-line output isn't useful and slows down Github
Actions' log view UI.
Also quiet down wget's "progress bar" output. While at the same time see some
totals from tar, just for the fun of it.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
github action grouping is broken because we were outputing "::endgroup" where
it needs "::endgroup::". This patch also added some addtional grouping around
contianer setup phase, making output easier to read.
Add few new selftests to blacklist. They can't succeed on 5.5.
Also temporarily remove btf_dump for 4.9 due to newly added data dumping
subtests.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Temporary disable tc_bpf tests that seem to have regressed.
Temporary and artificially bump pahole version from 1.21 to 1.22 to get
per-CPU BTF data built.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
We used to have it disabled for GCC8, but now GCC10 is false-report same
warnings, so disable stringop-truncation warnigs for GCC10 as well.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
This is necessary to make runqslower compile with task->__state field on old
kernels, for which we don't have an actual vmlinux.h.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Use aptitude to actually see what's wrong with the dependencies. And it
actually magically resolves whatever minor version conflicts there are.
The big surprise came from the apparent difference in build-dep command
behavior. Aptitude's build-dep doesn't seem to install the libpfelf-dev
package itself. Adding explicit `aptitude install libelf-dev` after build-dep
solves the issue for now.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Force libc6 dependency version.
Drop explicit libelf-dev install command, as it should be pre-installed by
Travis CI already, according to .travis.yaml.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
S50-run-tests uses -e, which means that it immediately exits on test
failures without writing /exitcode. Fix by temporarily turning -e off.
Another issue is that $? in S50-run-tests is not quoted, which causes
the random value from the host to be taken (in practice always 0), so
fix that as well.
Finally, this fix has a positive side effect - QEMU no longer hangs
when tests fail. This is because rcS (generated by mkrootfs.sh) also
uses -e and immediately exits, if one of the scripts that it calls
fails, without calling S99-poweroff.
Example output after the fix:
Summary: 53/184 PASSED, 5 SKIPPED, 1 FAILED
+ exitstatus=1
+ set -e
+ echo 1
+ chmod 644 /exitstatus
+ for path in /etc/rcS.d/S*
+ '[' -x /etc/rcS.d/S99-poweroff ']'
+ /etc/rcS.d/S99-poweroff
travis_fold:start:shutdown
Shutdown
starting pid 232, tty '': '/sbin/swapoff -a'
starting pid 233, tty '': '/bin/umount -a -r'
[ 45.909033] EXT4-fs (vda): re-mounted. Opts: (null)
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
Requesting system poweroff
[ 48.932007] ACPI: Preparing to enter system sleep state S5
[ 48.932785] reboot: Power down
Tests exit status: 1
travis_fold🔚shutdown
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
The scripts in this directory rely on certain environment variables, so
fail if they are not set in order to improve the debugging experience.
The vmtest/ scripts already do it.
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
This is the same as commit 4d86cae4f0 ("ci: disable GCC's
-Wstringop-truncation noisy error"), but for Ubuntu. Without this,
there are false positives in bpf_object__new() on Ubuntu 20.04:
this function calls strncpy() with the correct bounds, but still
triggers the warning.
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
It requires v5.9+ kernel when the test code is built with a newer
toolchain. The support was added by commit b33164f2bd1c ("bpf:
Iterate through all PT_NOTE sections when looking for build id").
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Clang 13 regressed BPF code generation causing some of BPF selftests to fail.
Until that is mitigated, stick to version 12.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Clang 13 became the new nightly version, so switch to it. Also do vmlinux
compilation with a bit more parallelism. And account python-docutils
installation as part of selftests build.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Selftests makefile deletes local bpf_testmod.ko, so that invalidates current
approach of faking bpf_testmod.ko "generation". Instead, generate a fake
Makefile that will create an empty bpf_testmod/bpf_testmod.ko.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Non-latest kernel versions don't build kernel from sources, so module buliding
fails, despite using `make prepare`. For now, just make sure no module is
built by overwriting bpf_testmod/Makefile.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
test_progs's IMA selftests requires extra Kconfig values, so update
latest.config to accommodate those.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>