Blame view

Documentation/kselftest.txt 2.51 KB
80d034285   Jeremy Kerr   selftests: add a ...
1
2
3
  Linux Kernel Selftests
  
  The kernel contains a set of "self tests" under the tools/testing/selftests/
3409f9ab7   Aleksander Alekseev   kselftest: kselft...
4
5
6
  directory. These are intended to be small tests to exercise individual code
  paths in the kernel. Tests are intended to be run after building, installing
  and booting a kernel.
80d034285   Jeremy Kerr   selftests: add a ...
7

ddddda9bc   Shuah Khan   tools: selftests ...
8
9
10
11
12
13
14
15
16
  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 ...
17
18
  
  To build the tests:
80d034285   Jeremy Kerr   selftests: add a ...
19
20
21
22
    $ make -C tools/testing/selftests
  
  
  To run the tests:
80d034285   Jeremy Kerr   selftests: add a ...
23
    $ make -C tools/testing/selftests run_tests
3c415707b   Tim Bird   kselftest: Move t...
24
25
  To build and run the tests with a single command, use:
    $ make kselftest
80d034285   Jeremy Kerr   selftests: add a ...
26
  - note that some tests will require root privileges.
80d034285   Jeremy Kerr   selftests: add a ...
27

3c415707b   Tim Bird   kselftest: Move t...
28
29
30
31
32
33
34
35
36
37
38
39
40
  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 ...
41

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

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

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

76caa6ca9   Wang Long   Documentation: Up...
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  Install selftests
  =================
  
  You can use kselftest_install.sh tool installs selftests in default
  location which is tools/testing/selftests/kselftest or an user specified
  location.
  
  To install selftests in default location:
     $ cd tools/testing/selftests
     $ ./kselftest_install.sh
  
  To install selftests in an user specified location:
     $ cd tools/testing/selftests
     $ ./kselftest_install.sh install_dir
80d034285   Jeremy Kerr   selftests: add a ...
67
68
  Contributing new tests
  ======================
4db1fa664   Zhiyi Sun   Documentation: ks...
69
  In general, the rules for selftests are
80d034285   Jeremy Kerr   selftests: add a ...
70
71
72
73
74
75
76
77
78
  
   * 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.