Thread (39 messages) 39 messages, 4 authors, 2020-09-18

Re: [PATCH 00/15] selftests/seccomp: Refactor change_syscall()

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2020-09-15 13:00:48
Also in: linux-arm-kernel, linux-kselftest, linux-mips, lkml
Subsystem: kernel selftest framework, secure computing, the rest · Maintainers: Shuah Khan, Kees Cook, Linus Torvalds

Kees Cook [off-list ref] writes:
On Mon, Sep 14, 2020 at 10:15:18PM +1000, Michael Ellerman wrote:
quoted
Kees Cook [off-list ref] writes:
quoted
Hi,

This refactors the seccomp selftest macros used in change_syscall(),
in an effort to remove special cases for mips, arm, arm64, and xtensa,
which paves the way for powerpc fixes.

I'm not entirely done testing, but all-arch build tests and x86_64
selftests pass. I'll be doing arm, arm64, and i386 selftests shortly,
but I currently don't have an easy way to check xtensa, mips, nor
powerpc. Any help there would be appreciated!
The series builds fine for me, and all the tests pass (see below).

Thanks for picking up those changes to deal with powerpc being oddball.

Tested-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
Awesome; thanks!

However...
quoted
./seccomp_bpf
TAP version 13
1..86
# Starting 86 tests from 7 test cases.
#  RUN           global.kcmp ...
#            OK  global.kcmp
ok 1 global.kcmp
[...]
#  RUN           global.KILL_thread ...
TAP version 13
1..86
# Starting 86 tests from 7 test cases.
Was this a mis-paste, or has something very very bad happened here in
global.KILL_one_arg_six finishes?
...
quoted
TAP version 13
1..86
# Starting 86 tests from 7 test cases.
[...]
# PASSED: 86 / 86 tests passed.
# Totals: pass:86 fail:0 xfail:0 xpass:0 skip:0 error:0
And after every user_notification test? O_O
Haha, I thought that was normal :)

It's because of redirection, I run the tests with:

  find . -executable -type f -print -execdir '{}' ';' | tee test.log

If I just run it directly on the terminal everything is normal.

It'll be fork() vs libc buffering.

I can fix it with:

$ stdbuf -oL ./seccomp_bpf | tee test.log

Or the patch below.

I can send a proper patch for that tomorrow, I don't know that harness
code, but I think that's the right fix.

cheers

diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h
index 4f78e4805633..b1bd00ff3d94 100644
--- a/tools/testing/selftests/kselftest_harness.h
+++ b/tools/testing/selftests/kselftest_harness.h
@@ -971,6 +971,7 @@ void __run_test(struct __fixture_metadata *f,
 
 	ksft_print_msg(" RUN           %s%s%s.%s ...\n",
 	       f->name, variant->name[0] ? "." : "", variant->name, t->name);
+	fflush(stdout);
 	t->pid = fork();
 	if (t->pid < 0) {
 		ksft_print_msg("ERROR SPAWNING TEST CHILD\n");
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help