test: call __real_write_page_desc() in tests and mock prepare_head() and write_page_desc()
This commit is contained in:
parent
d2aa954573
commit
c1a7b885f2
4 changed files with 28 additions and 8 deletions
|
@ -114,6 +114,11 @@ static int free_tail(struct ftl_map *map)
|
|||
* nothing to be done. Otherwise, we free the tail if necessary and erase the
|
||||
* block for writing.
|
||||
*/
|
||||
#ifdef prepare_head
|
||||
#undef prepare_head
|
||||
#define prepare_head __real_prepare_head
|
||||
#endif
|
||||
|
||||
int prepare_head(struct ftl_map *map)
|
||||
{
|
||||
size_t log2_pages_per_block = map->log2_pages_per_group +
|
||||
|
|
|
@ -112,6 +112,11 @@ int read_page_desc(struct ftl_map *map,
|
|||
/* Writes the page descriptor to the footer of the current page group and
|
||||
* increments the head to point to the next free user page.
|
||||
*/
|
||||
#ifdef write_page_desc
|
||||
#undef write_page_desc
|
||||
#define write_page_desc __real_write_page_desc
|
||||
#endif
|
||||
|
||||
int write_page_desc(struct ftl_map *map,
|
||||
struct ftl_page_desc *page_desc)
|
||||
{
|
||||
|
@ -151,6 +156,11 @@ int write_page_desc(struct ftl_map *map,
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef write_page_desc
|
||||
#undef write_page_desc
|
||||
#define write_page_desc __wrap_write_page_desc
|
||||
#endif
|
||||
|
||||
/* Prepares the head for writing, writes the user page to the current available
|
||||
* user page and finally writes the page descriptor to the footer of the page
|
||||
* group, whereupon the head is incremented to point to the next available user
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
test-obj-y += source/tests/main.o
|
||||
test-obj-y += source/tests/ftl/mock.o
|
||||
test-obj-y += source/tests/ftl/find_block_div.o
|
||||
test-obj-y += source/tests/ftl/next_upage.o
|
||||
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-obj-y += source/tests/ftl/write_upage.o
|
||||
|
||||
TEST_CFLAGS += -Dflash_read=__wrap_flash_read
|
||||
TEST_CFLAGS += -Dflash_write=__wrap_flash_write
|
||||
TEST_CFLAGS += -Dflash_is_erased=__wrap_flash_is_erased
|
||||
|
||||
TEST_CFLAGS += -Dprepare_head=__wrap_prepare_head
|
||||
TEST_CFLAGS += -Dwrite_page_desc=__wrap_write_page_desc
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include <ftl.h>
|
||||
#include <macros.h>
|
||||
|
||||
int write_page_desc(struct ftl_map *map,
|
||||
int __real_write_page_desc(struct ftl_map *map,
|
||||
struct ftl_page_desc *page_desc);
|
||||
|
||||
static int test_setup(void **state)
|
||||
|
@ -59,7 +59,7 @@ static void test_write_page_desc1(void **state)
|
|||
|
||||
map->head = 0;
|
||||
|
||||
ret = write_page_desc(map, &page_desc);
|
||||
ret = __real_write_page_desc(map, &page_desc);
|
||||
|
||||
assert_int_equal(ret, 0);
|
||||
assert_int_equal(map->root, 0);
|
||||
|
@ -86,7 +86,7 @@ static void test_write_page_desc2(void **state)
|
|||
|
||||
map->head = 14;
|
||||
|
||||
ret = write_page_desc(map, &page_desc);
|
||||
ret = __real_write_page_desc(map, &page_desc);
|
||||
|
||||
assert_int_equal(ret, 0);
|
||||
assert_int_equal(map->root, 14);
|
||||
|
@ -113,7 +113,7 @@ static void test_write_page_desc3(void **state)
|
|||
|
||||
map->head = 16;
|
||||
|
||||
ret = write_page_desc(map, &page_desc);
|
||||
ret = __real_write_page_desc(map, &page_desc);
|
||||
|
||||
assert_int_equal(ret, 0);
|
||||
assert_int_equal(map->root, 16);
|
||||
|
@ -140,7 +140,7 @@ static void test_write_page_desc4(void **state)
|
|||
|
||||
map->head = 30;
|
||||
|
||||
ret = write_page_desc(map, &page_desc);
|
||||
ret = __real_write_page_desc(map, &page_desc);
|
||||
|
||||
assert_int_equal(ret, 0);
|
||||
assert_int_equal(map->root, 30);
|
||||
|
@ -167,7 +167,7 @@ static void test_write_page_desc5(void **state)
|
|||
|
||||
map->head = 32;
|
||||
|
||||
ret = write_page_desc(map, &page_desc);
|
||||
ret = __real_write_page_desc(map, &page_desc);
|
||||
|
||||
assert_int_equal(ret, 0);
|
||||
assert_int_equal(map->root, 32);
|
||||
|
@ -194,7 +194,7 @@ static void test_epoch_wraparound(void **state)
|
|||
|
||||
map->head = 62;
|
||||
|
||||
ret = write_page_desc(map, &page_desc);
|
||||
ret = __real_write_page_desc(map, &page_desc);
|
||||
|
||||
assert_int_equal(ret, 0);
|
||||
assert_int_equal(map->root, 62);
|
||||
|
@ -228,7 +228,7 @@ static void test_group_header(void **state)
|
|||
map->head = 0;
|
||||
map->epoch = 0;
|
||||
|
||||
ret = write_page_desc(map, &page_desc);
|
||||
ret = __real_write_page_desc(map, &page_desc);
|
||||
|
||||
assert_int_equal(ret, 0);
|
||||
assert_int_equal(map->root, 0);
|
||||
|
|
Loading…
Add table
Reference in a new issue