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>
		
	
			
		
			
				
	
	
		
			85 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0
 | |
| ldflags-y += --wrap=ioremap_wc
 | |
| ldflags-y += --wrap=memremap
 | |
| ldflags-y += --wrap=devm_ioremap_nocache
 | |
| ldflags-y += --wrap=devm_memremap
 | |
| ldflags-y += --wrap=devm_memunmap
 | |
| ldflags-y += --wrap=ioremap_nocache
 | |
| ldflags-y += --wrap=iounmap
 | |
| ldflags-y += --wrap=memunmap
 | |
| ldflags-y += --wrap=__devm_request_region
 | |
| ldflags-y += --wrap=__devm_release_region
 | |
| ldflags-y += --wrap=__request_region
 | |
| ldflags-y += --wrap=__release_region
 | |
| ldflags-y += --wrap=devm_memremap_pages
 | |
| ldflags-y += --wrap=insert_resource
 | |
| ldflags-y += --wrap=remove_resource
 | |
| ldflags-y += --wrap=acpi_evaluate_object
 | |
| ldflags-y += --wrap=acpi_evaluate_dsm
 | |
| 
 | |
| DRIVERS := ../../../drivers
 | |
| NVDIMM_SRC := $(DRIVERS)/nvdimm
 | |
| ACPI_SRC := $(DRIVERS)/acpi/nfit
 | |
| DAX_SRC := $(DRIVERS)/dax
 | |
| ccflags-y := -I$(src)/$(NVDIMM_SRC)/
 | |
| 
 | |
| obj-$(CONFIG_LIBNVDIMM) += libnvdimm.o
 | |
| obj-$(CONFIG_BLK_DEV_PMEM) += nd_pmem.o
 | |
| obj-$(CONFIG_ND_BTT) += nd_btt.o
 | |
| obj-$(CONFIG_ND_BLK) += nd_blk.o
 | |
| obj-$(CONFIG_X86_PMEM_LEGACY) += nd_e820.o
 | |
| obj-$(CONFIG_ACPI_NFIT) += nfit.o
 | |
| ifeq ($(CONFIG_DAX),m)
 | |
| obj-$(CONFIG_DAX) += dax.o
 | |
| endif
 | |
| obj-$(CONFIG_DEV_DAX) += device_dax.o
 | |
| obj-$(CONFIG_DEV_DAX_PMEM) += dax_pmem.o
 | |
| 
 | |
| nfit-y := $(ACPI_SRC)/core.o
 | |
| nfit-$(CONFIG_X86_MCE) += $(ACPI_SRC)/mce.o
 | |
| nfit-y += acpi_nfit_test.o
 | |
| nfit-y += config_check.o
 | |
| 
 | |
| nd_pmem-y := $(NVDIMM_SRC)/pmem.o
 | |
| nd_pmem-y += pmem-dax.o
 | |
| nd_pmem-y += pmem_test.o
 | |
| nd_pmem-y += config_check.o
 | |
| 
 | |
| nd_btt-y := $(NVDIMM_SRC)/btt.o
 | |
| nd_btt-y += config_check.o
 | |
| 
 | |
| nd_blk-y := $(NVDIMM_SRC)/blk.o
 | |
| nd_blk-y += config_check.o
 | |
| 
 | |
| nd_e820-y := $(NVDIMM_SRC)/e820.o
 | |
| nd_e820-y += config_check.o
 | |
| 
 | |
| dax-y := $(DAX_SRC)/super.o
 | |
| dax-y += config_check.o
 | |
| 
 | |
| device_dax-y := $(DAX_SRC)/device.o
 | |
| device_dax-y += dax-dev.o
 | |
| device_dax-y += device_dax_test.o
 | |
| device_dax-y += config_check.o
 | |
| 
 | |
| dax_pmem-y := $(DAX_SRC)/pmem.o
 | |
| dax_pmem-y += config_check.o
 | |
| 
 | |
| libnvdimm-y := $(NVDIMM_SRC)/core.o
 | |
| libnvdimm-y += $(NVDIMM_SRC)/bus.o
 | |
| libnvdimm-y += $(NVDIMM_SRC)/dimm_devs.o
 | |
| libnvdimm-y += $(NVDIMM_SRC)/dimm.o
 | |
| libnvdimm-y += $(NVDIMM_SRC)/region_devs.o
 | |
| libnvdimm-y += $(NVDIMM_SRC)/region.o
 | |
| libnvdimm-y += $(NVDIMM_SRC)/namespace_devs.o
 | |
| libnvdimm-y += $(NVDIMM_SRC)/label.o
 | |
| libnvdimm-y += $(NVDIMM_SRC)/badrange.o
 | |
| libnvdimm-$(CONFIG_ND_CLAIM) += $(NVDIMM_SRC)/claim.o
 | |
| libnvdimm-$(CONFIG_BTT) += $(NVDIMM_SRC)/btt_devs.o
 | |
| libnvdimm-$(CONFIG_NVDIMM_PFN) += $(NVDIMM_SRC)/pfn_devs.o
 | |
| libnvdimm-$(CONFIG_NVDIMM_DAX) += $(NVDIMM_SRC)/dax_devs.o
 | |
| libnvdimm-y += libnvdimm_test.o
 | |
| libnvdimm-y += config_check.o
 | |
| 
 | |
| obj-m += test/
 |