This is a small collection of tweaks for the shellscript side of the
livepatch tests. If anyone else has a small cleanup (or even just a
suggestion for a low-hanging change) and would like to tack it onto the
set, let me know.
based-on: livepatching.git, for-5.9/selftests-cleanup
merge-thru: livepatching.git
v2:
- use consistent start_test messages from the original echoes [mbenes]
- move start_test invocations to just after their descriptions [mbenes]
- clean up $SAVED_DMSG on trap EXIT [pmladek]
- grep longer kernel taint line, avoid word-matching [mbenes, pmladek]
- add "===== TEST: $test =====" delimiter patch [pmladek]
Joe Lawrence (4):
selftests/livepatch: Don't clear dmesg when running tests
selftests/livepatch: use $(dmesg --notime) instead of manually
filtering
selftests/livepatch: refine dmesg 'taints' in dmesg comparison
selftests/livepatch: add test delimiter to dmesg
tools/testing/selftests/livepatch/README | 16 +++---
.../testing/selftests/livepatch/functions.sh | 32 ++++++++++-
.../selftests/livepatch/test-callbacks.sh | 55 ++++---------------
.../selftests/livepatch/test-ftrace.sh | 4 +-
.../selftests/livepatch/test-livepatch.sh | 12 +---
.../selftests/livepatch/test-shadow-vars.sh | 4 +-
.../testing/selftests/livepatch/test-state.sh | 21 +++----
7 files changed, 63 insertions(+), 81 deletions(-)
--
2.21.3
Hi, I tried to run kselftest but it stops with logs below.
----------------------------
# ./run_kselftest.sh
[ 126.214906] kselftest: Running tests in android
TAP version 13
# selftests: android: run.sh
1..1
# ./run.sh: line 3: ./ion_test.sh: not found
not ok 1 selftests: android: run.sh # exit=127
[ 126.351342] kselftest: Running tests in breakpoints
TAP version 13
# selftests: breakpoints: step_after_suspend_test
1..2
[ 126.464495] PM: suspend entry (s2idle)
[ 126.496441] Filesystems sync: 0.031 seconds
[ 126.499299] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 126.501161] OOM killer disabled.
[ 126.501293] Freezing remaining freezable tasks ... (elapsed 0.001
seconds) done.
[ 126.503018] printk: Suspending console(s) (use no_console_suspend to debug)
----------------------------
I used kernel 5.6.15 stable on qemu(x86_64) and used kselftest from same source.
I built kernel adding configurations below to be able to mount
kselftest directory on host.
----------------------------
CONFIG_NET_9P=y
CONFIG_BLK_MQ_VIRTIO=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_VIRTIO=y
CONFIG_NET_9P_DEBUG=y
CONFIG_VIRTIO_PCI=y
CONFIG_FUSE_FS=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_9P_FS=y
CONFIG_VIRTIO_FS=y
CONFIG_9P_FS_POSIX_ACL=y
CONFIG_CRYPTO_ENGINE=m
CONFIG_9P_FS_SECURITY=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_GDB_SCRIPTS=y
CONFIG_DEBUG_INFO=y
----------------------------
Then, I boot kernel with rootfs geterated by buildroot like this.
----------------------------
qemu-system-x86_64 -kernel arch/x86/boot/bzImage -boot c -m 2049M -hda
../buildroot/output/images/rootfs.ext4 -append \
"root=/dev/sda rw console=ttyS0,115200 acpi=off nokaslr" -serial
mon:stdio -display none \
-virtfs local,path=/home/arabishi/work/kselftest/kselftest,mount_tag=host0,security_model=passthrough,id=host0
----------------------------
What should I do ?
We need to pass the arguments provided to --kmake-arg to all make
invocations. In particular, the make invocations generating the configs
need to see the final make arguments, e.g. if config variables depend on
particular variables that are passed to make.
For example, when using '--kcsan --kmake-arg CC=clang-11', we would lose
CONFIG_KCSAN=y due to 'make oldconfig' not seeing that we want to use a
compiler that supports KCSAN.
Signed-off-by: Marco Elver <elver(a)google.com>
---
tools/testing/selftests/rcutorture/bin/configinit.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/rcutorture/bin/configinit.sh b/tools/testing/selftests/rcutorture/bin/configinit.sh
index 93e80a42249a..d6e5ce084b1c 100755
--- a/tools/testing/selftests/rcutorture/bin/configinit.sh
+++ b/tools/testing/selftests/rcutorture/bin/configinit.sh
@@ -32,11 +32,11 @@ if test -z "$TORTURE_TRUST_MAKE"
then
make clean > $resdir/Make.clean 2>&1
fi
-make $TORTURE_DEFCONFIG > $resdir/Make.defconfig.out 2>&1
+make $TORTURE_KMAKE_ARG $TORTURE_DEFCONFIG > $resdir/Make.defconfig.out 2>&1
mv .config .config.sav
sh $T/upd.sh < .config.sav > .config
cp .config .config.new
-yes '' | make oldconfig > $resdir/Make.oldconfig.out 2> $resdir/Make.oldconfig.err
+yes '' | make $TORTURE_KMAKE_ARG oldconfig > $resdir/Make.oldconfig.out 2> $resdir/Make.oldconfig.err
# verify new config matches specification.
configcheck.sh .config $c
--
2.27.0.290.gba653c62da-goog