forked from Minki/linux
0fb5c8df60
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>
22 lines
620 B
C
22 lines
620 B
C
// 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_ */
|