Messages in this thread Patch in this message | | | From | Michael Ellerman <> | Subject | Re: [PATCH 00/15] selftests/seccomp: Refactor change_syscall() | Date | Tue, 15 Sep 2020 22:52:21 +1000 |
| |
Kees Cook <keescook@chromium.org> writes: > On Mon, Sep 14, 2020 at 10:15:18PM +1000, Michael Ellerman wrote: >> Kees Cook <keescook@chromium.org> writes: >> > 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... > >> ./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? > ... >> 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");
| |