kselftests: Exercise hw-independent mock tests for i915.ko
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 7 Dec 2016 13:58:19 +0000 (13:58 +0000)
committerShuah Khan <shuahkh@osg.samsung.com>
Thu, 8 Dec 2016 16:34:13 +0000 (09:34 -0700)
Although being a GPU driver most functionality of i915.ko depends upon
real hardware, many of its internal interfaces can be "mocked" and so
tested independently of any hardware. Expanding the test coverage is not
only useful for i915.ko, but should provide some integration tests for
core infrastructure as well.

Loading i915.ko with mock_selftests=-1 will cause it to execute its mock
tests then fail with -ENOTTY. If the driver is already loaded and bound
to hardware, it requires a few more steps to unbind, and so the simple
preliminary modprobe -r will fail.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Shuah Khan <shuah@kernel.org>
Cc: linux-kselftest@vger.kernel.org
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
tools/testing/selftests/drivers/gpu/i915.sh [new file with mode: 0755]

diff --git a/tools/testing/selftests/drivers/gpu/i915.sh b/tools/testing/selftests/drivers/gpu/i915.sh
new file mode 100755 (executable)
index 0000000..d407f0f
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+# Runs hardware independent tests for i915 (drivers/gpu/drm/i915)
+
+if ! /sbin/modprobe -q -r i915; then
+       echo "drivers/gpu/i915: [SKIP]"
+       exit 77
+fi
+
+if /sbin/modprobe -q i915 mock_selftests=-1; then
+       echo "drivers/gpu/i915: ok"
+else
+       echo "drivers/gpu/i915: [FAIL]"
+       exit 1
+fi