linux/tools/testing/selftests
Chris Wilson 953c7f82eb drm/i915: Provide a hook for selftests
Some pieces of code are independent of hardware but are very tricky to
exercise through the normal userspace ABI or via debugfs hooks. Being
able to create mock unit tests and execute them through CI is vital.
Start by adding a central point where we can execute unit tests and
a parameter to enable them. This is disabled by default as the
expectation is that these tests will occasionally explode.

To facilitate integration with igt, any parameter beginning with
i915.igt__ is interpreted as a subtest executable independently via
igt/drv_selftest.

Two classes of selftests are recognised: mock unit tests and integration
tests. Mock unit tests are run as soon as the module is loaded, before
the device is probed. At that point there is no driver instantiated and
all hw interactions must be "mocked". This is very useful for writing
universal tests to exercise code not typically run on a broad range of
architectures. Alternatively, you can hook into the live selftests and
run when the device has been instantiated - hw interactions are real.

v2: Add a macro for compiling conditional code for mock objects inside
real objects.
v3: Differentiate between mock unit tests and late integration test.
v4: List the tests in natural order, use igt to sort after modparam.
v5: s/late/live/
v6: s/unsigned long/unsigned int/
v7: Use igt_ prefixes for long helpers.
v8: Deobfuscate macros overriding functions, stop using -I$(src)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170213171558.20942-1-chris@chris-wilson.co.uk
2017-02-13 20:45:21 +00:00
..
bpf selftests: do not require bash to run bpf tests 2017-01-05 13:19:47 -07:00
breakpoints selftests: arm64: add test for unaligned/inexact watchpoint handling 2016-11-18 17:26:15 +00:00
capabilities
cpu-hotplug selftests: create test-specific kconfig fragments 2016-02-25 09:47:52 -07:00
drivers/gpu drm/i915: Provide a hook for selftests 2017-02-13 20:45:21 +00:00
efivarfs
exec selftests/exec: Makefile is a run-time dependency, add it to the install list 2016-06-15 13:35:55 -06:00
filesystems selftests: move dnotify_test from Documentation/filesystems 2016-09-20 09:09:00 -06:00
firmware selftests: create test-specific kconfig fragments 2016-02-25 09:47:52 -07:00
ftrace selftests: ftrace: Shift down default message verbosity 2016-12-13 11:28:10 -05:00
futex docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00
gpio selftest/gpio: add gpio test case 2016-12-13 07:26:37 -07:00
ia64 selftests: move ia64 tests from Documentation/ia64 2016-09-20 09:58:12 -06:00
intel_pstate tools: testing: define the _GNU_SOURCE macro 2016-05-16 09:06:17 -06:00
ipc selftests: add missing .gitignore file or entry 2016-02-25 13:16:36 -07:00
kcmp
lib lib: Add a simple prime number generator 2016-12-27 12:30:56 +01:00
media_tests selftests: media_tests add a new video device test 2016-07-26 09:59:30 -06:00
membarrier
memfd
memory-hotplug selftests: create test-specific kconfig fragments 2016-02-25 09:47:52 -07:00
mount selftests: create test-specific kconfig fragments 2016-02-25 09:47:52 -07:00
mqueue
net selftests: do not require bash to run netsocktests testcase 2017-01-05 13:19:53 -07:00
networking/timestamping selftests: Move networking/timestamping from Documentation 2016-09-20 09:59:50 -06:00
nsfs selftests: add missing gitignore files/dirs 2016-12-08 08:51:32 -07:00
ntb ntb_test: Add a selftest script for the NTB subsystem 2016-08-05 10:21:08 -04:00
powerpc selftest/powerpc: Wrong PMC initialized in pmc56_overflow test 2017-01-18 16:03:34 +11:00
prctl selftests: move prctl tests from Documentation/prctl 2016-09-20 09:09:09 -06:00
pstore selftests: create test-specific kconfig fragments 2016-02-25 09:47:52 -07:00
ptp selftests: move ptp tests from Documentation/ptp 2016-09-20 09:54:38 -06:00
ptrace
rcutorture torture: Prevent jitter from delaying build-only runs 2016-11-14 10:48:59 -08:00
seccomp seccomp: add tests for ptrace hole 2016-06-14 10:54:38 -07:00
sigaltstack selftests: add missing gitignore files/dirs 2016-12-08 08:51:32 -07:00
size
static_keys selftests: create test-specific kconfig fragments 2016-02-25 09:47:52 -07:00
sync selftest: sync: improve assert() failure message 2016-12-13 07:24:34 -07:00
sysctl
timers linux-kselftest-4.10-rc1-update 2016-12-15 14:17:32 -08:00
user selftests: create test-specific kconfig fragments 2016-02-25 09:47:52 -07:00
vDSO selftests: move vDSO tests from Documentation/vDSO 2016-09-20 09:58:04 -06:00
vm selftests: expanding more mlock selftest 2016-10-07 18:46:28 -07:00
watchdog selftests: move watchdog tests from Documentation/watchdog 2016-09-20 09:58:34 -06:00
x86 selftests: x86/pkeys: fix spelling mistake: "itertation" -> "iteration" 2017-01-05 13:24:18 -07:00
zram selftests/zram: replace ZRAM_LZ4_COMPRESS 2016-09-20 09:00:01 -06:00
.gitignore selftests: add missing gitignore files/dirs 2016-12-08 08:51:32 -07:00
gen_kselftest_tar.sh
kselftest_install.sh
kselftest.h
lib.mk
Makefile selftests: do not require bash for the generated test 2017-01-05 13:18:32 -07:00