selftests/powerpc: Add a signal fuzzer selftest
authorBreno Leitao <leitao@debian.org>
Thu, 17 Jan 2019 17:01:54 +0000 (15:01 -0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 2 May 2019 16:55:02 +0000 (02:55 +1000)
commit83e367f9ad18d42a1883ee29f20608a2b93e1071
tree7e9c3057ab42649f0b12f0c3a351370b5dceb82e
parent5266e58d6cd90ac85c187d673093ad9cb649e16d
selftests/powerpc: Add a signal fuzzer selftest

This is a new selftest that raises SIGUSR1 signals and handles it in a
set of different ways, trying to create different scenario for testing
purpose.

This test works raising a signal and calling sigreturn interleaved
with TM operations, as starting, suspending and terminating a
transaction. The test depends on random numbers, and, based on them,
it sets different TM states.

Other than that, the test fills out the user context struct that is
passed to the sigreturn system call with random data, in order to make
sure that the signal handler syscall can handle different and invalid
states properly.

This selftest has command line parameters to control what kind of
tests the user wants to run, as for example, if a transaction should
be started prior to signal being raised, or, after the signal being
raised and before the sigreturn. If no parameter is given, the default
is enabling all options.

This test does not check if the user context is being read and set
properly by the kernel. Its purpose, at this time, is basically
guaranteeing that the kernel does not crash on invalid scenarios.

Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
tools/testing/selftests/powerpc/harness.c
tools/testing/selftests/powerpc/include/reg.h
tools/testing/selftests/powerpc/signal/.gitignore
tools/testing/selftests/powerpc/signal/Makefile
tools/testing/selftests/powerpc/signal/sigfuz.c [new file with mode: 0644]