aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/nvdimm/watermark.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2018-02-01 12:28:54 -0800
committerDan Williams <dan.j.williams@intel.com>2018-02-01 16:49:54 -0800
commit0fb5c8df609eaca3cb7c24e7f91470f8dd5984ec (patch)
tree3a8fa84cc1a5c6c432e7a8572616f33bb5bafaaf /tools/testing/nvdimm/watermark.h
parentlibnvdimm/nfit_test: adding support for unit testing enable LSS status (diff)
downloadlinux-dev-0fb5c8df609eaca3cb7c24e7f91470f8dd5984ec.tar.xz
linux-dev-0fb5c8df609eaca3cb7c24e7f91470f8dd5984ec.zip
tools/testing/nvdimm: force nfit_test to depend on instrumented modules
The libnvdimm unit tests will fail when they are run against the production / in-tree version of libnvdimm.ko or nfit.ko due to symbols not being mocked per nfit_test's expectation. For example, nfit_test expects acpi_evaluate_dsm() to be replaced by __wrap_acpi_evaluate_dsm() to test how acpi_nfit_ctl() responds to different stimuli. Create a test-only symbol name that nfit_test links against to cause module load failures when the wrong module is present. For example, with this change, attempts to use the wrong module will report: nfit_test: Unknown symbol libnvdimm_test (err 0) Reported-by: Dave Jiang <dave.jiang@intel.com> Reported-by: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'tools/testing/nvdimm/watermark.h')
-rw-r--r--tools/testing/nvdimm/watermark.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/testing/nvdimm/watermark.h b/tools/testing/nvdimm/watermark.h
new file mode 100644
index 000000000000..ed0528757bd4
--- /dev/null
+++ b/tools/testing/nvdimm/watermark.h
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright(c) 2018 Intel Corporation. All rights reserved.
+#ifndef _TEST_NVDIMM_WATERMARK_H_
+#define _TEST_NVDIMM_WATERMARK_H_
+int pmem_test(void);
+int libnvdimm_test(void);
+int acpi_nfit_test(void);
+int device_dax_test(void);
+
+/*
+ * dummy routine for nfit_test to validate it is linking to the properly
+ * mocked module and not the standard one from the base tree.
+ */
+#define nfit_test_watermark(x) \
+int x##_test(void) \
+{ \
+ pr_debug("%s for nfit_test\n", KBUILD_MODNAME); \
+ return 0; \
+} \
+EXPORT_SYMBOL(x##_test)
+#endif /* _TEST_NVDIMM_WATERMARK_H_ */