From f951d695e8781fa36671e94aea02216d854e9e6c Mon Sep 17 00:00:00 2001 From: "S.J.R. van Schaik" Date: Tue, 19 Sep 2017 17:49:26 +0200 Subject: [PATCH] test: flash: use different mocking technique --- Makefile | 1 + source/core/flash.c | 30 ++++++++++++++++++++++++++++++ source/tests/Makefile | 6 +++--- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 6f09ade..b4b8e0e 100644 --- a/Makefile +++ b/Makefile @@ -60,6 +60,7 @@ $(BUILD)/tbm: $(tbm-obj) $(LDSCRIPT) @mkdir -p $(dir $@) @$(LD) -o $@ $(CFLAGS) $(LDFLAGS) $(tbm-obj) $(LIBS) +$(BUILD)/test: CFLAGS += $(TEST_CFLAGS) $(BUILD)/test: $(test-obj) @echo "LD $@" @mkdir -p $(dir $@) diff --git a/source/core/flash.c b/source/core/flash.c index 9b86489..2d37908 100644 --- a/source/core/flash.c +++ b/source/core/flash.c @@ -88,6 +88,11 @@ size_t flash_get_capacity(struct flash_dev *dev) return dev->ops->get_capacity(dev); } +#ifdef flash_read +#undef flash_read +#define flash_read __real_flash_read +#endif + size_t flash_read(struct flash_dev *dev, uint32_t addr, void *data, size_t len) { if (!dev) @@ -96,6 +101,16 @@ size_t flash_read(struct flash_dev *dev, uint32_t addr, void *data, size_t len) return dev->ops->read(dev, addr, data, len); } +#ifdef flash_read +#undef flash_read +#define flash_read __wrap_flash_read +#endif + +#ifdef flash_write +#undef flash_write +#define flash_write __real_flash_write +#endif + size_t flash_write(struct flash_dev *dev, uint32_t addr, const void *data, size_t len) { @@ -105,6 +120,11 @@ size_t flash_write(struct flash_dev *dev, uint32_t addr, const void *data, return dev->ops->write(dev, addr, data, len); } +#ifdef flash_write +#undef flash_write +#define flash_write __wrap_flash_write +#endif + size_t flash_write0(struct flash_dev *dev, uint32_t addr, size_t len) { uint8_t data[32]; @@ -134,6 +154,11 @@ size_t flash_copy(struct flash_dev *dev, uint32_t dst, uint32_t src, size_t len) return dev->ops->copy(dev, dst, src, len); } +#ifdef flash_is_erased +#undef flash_is_erased +#define flash_is_erased __real_flash_is_erased +#endif + int flash_is_erased(struct flash_dev *dev, uint32_t addr, size_t len) { if (!dev) @@ -149,6 +174,11 @@ int flash_is_erased(struct flash_dev *dev, uint32_t addr, size_t len) return 1; } +#ifdef flash_is_erased +#undef flash_is_erased +#define flash_is_erased __wrap_flash_is_erased +#endif + int flash_erase(struct flash_dev *dev, uint32_t addr, size_t len) { if (!dev) diff --git a/source/tests/Makefile b/source/tests/Makefile index a9c90d3..996773b 100644 --- a/source/tests/Makefile +++ b/source/tests/Makefile @@ -5,6 +5,6 @@ test-obj-y += source/tests/ftl/read_page_group.o test-obj-y += source/tests/ftl/read_page_desc.o test-obj-y += source/tests/ftl/write_page_desc.o -TEST_LDFLAGS += -Wl,--wrap=flash_read -TEST_LDFLAGS += -Wl,--wrap=flash_write -TEST_LDFLAGS += -Wl,--wrap=flash_is_erased +TEST_CFLAGS += -Dflash_read=__wrap_flash_read +TEST_CFLAGS += -Dflash_write=__wrap_flash_write +TEST_CFLAGS += -Dflash_is_erased=__wrap_flash_is_erased