Blame view

Documentation/kselftest.txt 2.04 KB
80d034285   Jeremy Kerr   selftests: add a ...
1
2
3
4
5
  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.
ddddda9bc   Shuah Khan   tools: selftests ...
6
7
8
9
10
11
12
13
14
  On some systems, hot-plug tests could hang forever waiting for cpu and
  memory to be ready to be offlined. A special hot-plug target is created
  to run full range of hot-plug tests. In default mode, hot-plug tests run
  in safe mode with a limited scope. In limited mode, cpu-hotplug test is
  run on a single cpu as opposed to all hotplug capable cpus, and memory
  hotplug test is run on 2% of hotplug capable memory instead of 10%.
  
  Running the selftests (hotplug tests are run in limited mode)
  =============================================================
80d034285   Jeremy Kerr   selftests: add a ...
15
16
  
  To build the tests:
80d034285   Jeremy Kerr   selftests: add a ...
17
18
19
20
    $ make -C tools/testing/selftests
  
  
  To run the tests:
80d034285   Jeremy Kerr   selftests: add a ...
21
    $ make -C tools/testing/selftests run_tests
3c415707b   Tim Bird   kselftest: Move t...
22
23
  To build and run the tests with a single command, use:
    $ make kselftest
80d034285   Jeremy Kerr   selftests: add a ...
24
  - note that some tests will require root privileges.
80d034285   Jeremy Kerr   selftests: add a ...
25

3c415707b   Tim Bird   kselftest: Move t...
26
27
28
29
30
31
32
33
34
35
36
37
38
  Running a subset of selftests
  ========================================
  You can use the "TARGETS" variable on the make command line to specify
  single test to run, or a list of tests to run.
  
  To run only tests targeted for a single subsystem:
    $  make -C tools/testing/selftests TARGETS=ptrace run_tests
  
  You can specify multiple tests to build and run:
    $  make TARGETS="size timers" kselftest
  
  See the top-level tools/testing/selftests/Makefile for the list of all
  possible targets.
80d034285   Jeremy Kerr   selftests: add a ...
39

80d034285   Jeremy Kerr   selftests: add a ...
40

ddddda9bc   Shuah Khan   tools: selftests ...
41
42
  Running the full range hotplug selftests
  ========================================
3c415707b   Tim Bird   kselftest: Move t...
43
  To build the hotplug tests:
ddddda9bc   Shuah Khan   tools: selftests ...
44
    $ make -C tools/testing/selftests hotplug
3c415707b   Tim Bird   kselftest: Move t...
45
  To run the hotplug tests:
ddddda9bc   Shuah Khan   tools: selftests ...
46
47
48
    $ make -C tools/testing/selftests run_hotplug
  
  - note that some tests will require root privileges.
80d034285   Jeremy Kerr   selftests: add a ...
49

3c415707b   Tim Bird   kselftest: Move t...
50

80d034285   Jeremy Kerr   selftests: add a ...
51
52
53
54
55
56
57
58
59
60
61
62
63
  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.