summaryrefslogtreecommitdiffstats
path: root/drivers/dma-buf/selftest.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2019-08-19 10:59:26 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2019-08-19 18:01:34 +0100
commit9536b64ac0d6e3151963a11441dde7ade045fb29 (patch)
treefa992f4f91d0b5052157727c9ef5ebe0e4c356e0 /drivers/dma-buf/selftest.h
parentaa4fffec310da5eb6d6ef09509b03e780bdf248a (diff)
downloadlinux-9536b64ac0d6e3151963a11441dde7ade045fb29.tar.gz
linux-9536b64ac0d6e3151963a11441dde7ade045fb29.tar.bz2
linux-9536b64ac0d6e3151963a11441dde7ade045fb29.zip
dma-buf: Introduce selftesting framework
In light of recent review slip ups, the absence of a suite of tests for dma-buf became apparent. Given the current plethora of testing frameworks, opt for one already in use by Intel's CI and so allow easy hook up into igt. We introduce a new module that when loaded will execute the list of selftests and their subtest. The names of the selftests are put into the modinfo as parameters so that igt can identify each, and run them independently, principally for ease of error reporting. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20190819095928.32091-1-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/dma-buf/selftest.h')
-rw-r--r--drivers/dma-buf/selftest.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/dma-buf/selftest.h b/drivers/dma-buf/selftest.h
new file mode 100644
index 000000000000..45793aff6142
--- /dev/null
+++ b/drivers/dma-buf/selftest.h
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: MIT
+
+/*
+ * Copyright © 2019 Intel Corporation
+ */
+
+#ifndef __SELFTEST_H__
+#define __SELFTEST_H__
+
+#include <linux/compiler.h>
+
+#define selftest(name, func) int func(void);
+#include "selftests.h"
+#undef selftest
+
+struct subtest {
+ int (*func)(void *data);
+ const char *name;
+};
+
+int __subtests(const char *caller,
+ const struct subtest *st,
+ int count,
+ void *data);
+#define subtests(T, data) \
+ __subtests(__func__, T, ARRAY_SIZE(T), data)
+
+#define SUBTEST(x) { x, #x }
+
+#endif /* __SELFTEST_H__ */