kselftest/runner: allow to properly deliver signals to tests
authorAndrea Righi <andrea.righi@canonical.com>
Fri, 10 Apr 2020 10:02:59 +0000 (12:02 +0200)
committerShuah Khan <skhan@linuxfoundation.org>
Tue, 14 Apr 2020 15:49:13 +0000 (09:49 -0600)
commit651e0d881461ab2b1cd5cbec3a642d22fc8d6057
tree64758fd2c504428a2f3b710350999686cc95ed6d
parentd925c896956283cf12634c4223f62ad2c080da29
kselftest/runner: allow to properly deliver signals to tests

While running seccomp_bpf, kill_after_ptrace() gets stuck if we run it
via /usr/bin/timeout (that is the default), until the timeout expires.

This is because /usr/bin/timeout is preventing to properly deliver
signals to ptrace'd children (SIGSYS in this case).

This problem can be easily reproduced by running:

 $ sudo make TARGETS=seccomp kselftest
 ...

 # [ RUN      ] TRACE_syscall.skip_a#
 not ok 1 selftests: seccomp: seccomp_bpf # TIMEOUT

The test is hanging at this point until the timeout expires and then it
reports the timeout error.

Prevent this problem by passing --foreground to /usr/bin/timeout,
allowing to properly deliver signals to children processes.

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/kselftest/runner.sh