diff options
author | Dan Williams <dan.j.williams@intel.com> | 2018-02-01 23:28:54 +0300 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2018-02-02 03:49:54 +0300 |
commit | 0fb5c8df609eaca3cb7c24e7f91470f8dd5984ec (patch) | |
tree | 3a8fa84cc1a5c6c432e7a8572616f33bb5bafaaf /tools/testing/nvdimm/watermark.h | |
parent | 674d8bdec770d40288574534eab27d82bdf16b0e (diff) | |
download | linux-0fb5c8df609eaca3cb7c24e7f91470f8dd5984ec.tar.xz |
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.h | 21 |
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_ */ |