linux/tools/testing/selftests
Michael Ellerman ecca11701e selftests/powerpc: Fix TM resched DSCR test with some compilers
commit fe06fe8602 upstream.

The tm-resched-dscr test has started failing sometimes, depending on
what compiler it's built with, eg:

  test: tm_resched_dscr
  Check DSCR TM context switch: tm-resched-dscr: tm-resched-dscr.c:76: test_body: Assertion `rv' failed.
  !! child died by signal 6

When it fails we see that the compiler doesn't initialise rv to 1 before
entering the inline asm block. Although that's counter intuitive, it
is allowed because we tell the compiler that the inline asm will write
to rv (using "=r"), meaning the original value is irrelevant.

Marking it as a read/write parameter would presumably work, but it seems
simpler to fix it by setting the initial value of rv in the inline asm.

Fixes: 96d0161086 ("powerpc: Correct DSCR during TM context switch")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Acked-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2017-09-15 18:29:46 +01:00
..
breakpoints breakpoint selftests: print failure status instead of cause make error 2012-12-17 17:15:27 -08:00
cpu-hotplug tools: cpu-hotplug fix unexpected operator error 2014-07-03 09:21:53 -07:00
efivarfs efi: Make efivarfs entries immutable by default 2016-03-24 10:01:20 +00:00
ipc tools/testing/selftests/ipc/msgque.c: improve error handling when not running as root 2014-07-03 09:21:54 -07:00
kcmp selftests: add .gitignore for kcmp 2013-07-03 16:08:07 -07:00
memory-hotplug tools: memory-hotplug fix unexpected operator error 2014-07-03 09:21:53 -07:00
mount userns: Unbreak the unprivileged remount tests 2015-01-15 10:44:00 +00:00
mqueue mqueue selftests: print failure status instead of cause make error 2012-12-17 17:15:26 -08:00
net selftests: do not require bash to run netsocktests testcase 2017-03-16 02:26:51 +00:00
powerpc selftests/powerpc: Fix TM resched DSCR test with some compilers 2017-09-15 18:29:46 +01:00
ptrace selftest: add a test case for PTRACE_PEEKSIGINFO 2013-04-30 17:04:05 -07:00
rcutorture rcutorture: Note diffs from git commits 2014-05-14 09:46:25 -07:00
sysctl tools/testing/selftests/sysctl: validate sysctl_writes_strict 2014-06-06 16:08:13 -07:00
timers tools/testing/selftests: fix uninitialized variable 2013-10-16 21:35:53 -07:00
user test: check copy_to/from_user boundary validation 2014-01-23 16:36:57 -08:00
vm selftests: add .gitignore for vm 2013-07-03 16:08:07 -07:00
Makefile mnt: Add tests for unprivileged remount cases that have found to be faulty 2014-09-17 09:22:13 -07:00
README.txt selftests: add a simple doc 2013-02-27 19:10:24 -08:00

Linux Kernel Selftests

The kernel contains a set of "self tests" under the tools/testing/selftests/
directory. These are intended to be small unit tests to exercise individual
code paths in the kernel.

Running the selftests
=====================

To build the tests:

  $ make -C tools/testing/selftests


To run the tests:

  $ make -C tools/testing/selftests run_tests

- note that some tests will require root privileges.


To run only tests targetted for a single subsystem:

  $  make -C tools/testing/selftests TARGETS=cpu-hotplug run_tests

See the top-level tools/testing/selftests/Makefile for the list of all possible
targets.


Contributing new tests
======================

In general, the rules for for selftests are

 * Do as much as you can if you're not root;

 * Don't take too long;

 * Don't break the build on any architecture, and

 * Don't cause the top-level "make run_tests" to fail if your feature is
   unconfigured.