mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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>
		
	
			
		
			
				
	
	
		
			21 lines
		
	
	
	
		
			620 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			21 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_ */
 |