Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Andrea Righi and committed by
Shuah Khan
651e0d88 d925c896

+1 -1
+1 -1
tools/testing/selftests/kselftest/runner.sh
··· 33 33 { 34 34 # Make sure tests will time out if utility is available. 35 35 if [ -x /usr/bin/timeout ] ; then 36 - /usr/bin/timeout "$kselftest_timeout" "$1" 36 + /usr/bin/timeout --foreground "$kselftest_timeout" "$1" 37 37 else 38 38 "$1" 39 39 fi