test: ftl: mock read_page_desc()

This commit is contained in:
S.J.R. van Schaik 2017-09-20 15:28:30 +02:00
parent 1153f2bdcd
commit b8426f12f2
4 changed files with 30 additions and 8 deletions

View file

@ -97,6 +97,11 @@ int read_page_group(struct ftl_map *map,
* with the user page by locating the footer and more specifically the page * with the user page by locating the footer and more specifically the page
* descriptor within the page group. * descriptor within the page group.
*/ */
#ifdef read_page_desc
#undef read_page_desc
#define read_page_desc __real_read_page_desc
#endif
int read_page_desc(struct ftl_map *map, int read_page_desc(struct ftl_map *map,
struct ftl_page_desc *page_desc, uint32_t upage) struct ftl_page_desc *page_desc, uint32_t upage)
{ {
@ -121,6 +126,11 @@ int read_page_desc(struct ftl_map *map,
return 0; return 0;
} }
#ifdef read_page_desc
#undef read_page_desc
#define read_page_desc __wrap_read_page_desc
#endif
/* Writes the page descriptor to the footer of the current page group and /* Writes the page descriptor to the footer of the current page group and
* increments the head to point to the next free user page. * increments the head to point to the next free user page.
*/ */

View file

@ -17,4 +17,5 @@ TEST_CFLAGS += -Dflash_is_erased=__wrap_flash_is_erased
TEST_CFLAGS += -Dis_group_erased=__wrap_is_group_erased TEST_CFLAGS += -Dis_group_erased=__wrap_is_group_erased
TEST_CFLAGS += -Dfind_block=__wrap_find_block TEST_CFLAGS += -Dfind_block=__wrap_find_block
TEST_CFLAGS += -Dprepare_head=__wrap_prepare_head TEST_CFLAGS += -Dprepare_head=__wrap_prepare_head
TEST_CFLAGS += -Dread_page_desc=__wrap_read_page_desc
TEST_CFLAGS += -Dwrite_page_desc=__wrap_write_page_desc TEST_CFLAGS += -Dwrite_page_desc=__wrap_write_page_desc

View file

@ -42,6 +42,17 @@ int __wrap_prepare_head(struct ftl_map *map)
return mock_type(int); return mock_type(int);
} }
int __wrap_read_page_desc(struct ftl_map *map,
struct ftl_page_desc *page_desc, uint32_t upage)
{
check_expected_ptr(map);
check_expected(upage);
memcpy(page_desc, mock_type(struct ftl_page_desc *), sizeof *page_desc);
return mock_type(int);
}
int __wrap_write_page_desc(struct ftl_map *map, int __wrap_write_page_desc(struct ftl_map *map,
struct ftl_page_desc *page_desc) struct ftl_page_desc *page_desc)
{ {

View file

@ -11,7 +11,7 @@
#include <ftl.h> #include <ftl.h>
#include <macros.h> #include <macros.h>
int read_page_desc(struct ftl_map *map, int __real_read_page_desc(struct ftl_map *map,
struct ftl_page_desc *page_desc, uint32_t upage); struct ftl_page_desc *page_desc, uint32_t upage);
static void test_upage0(void **state) static void test_upage0(void **state)
@ -33,7 +33,7 @@ static void test_upage0(void **state)
map.log2_pages_per_group = ilog2(16); map.log2_pages_per_group = ilog2(16);
map.log2_page_size = ilog2(4 * KIB); map.log2_page_size = ilog2(4 * KIB);
ret = read_page_desc(&map, &ret_page_desc, 0); ret = __real_read_page_desc(&map, &ret_page_desc, 0);
assert_int_equal(ret, 0); assert_int_equal(ret, 0);
} }
@ -57,7 +57,7 @@ static void test_upage14(void **state)
map.log2_pages_per_group = ilog2(16); map.log2_pages_per_group = ilog2(16);
map.log2_page_size = ilog2(4 * KIB); map.log2_page_size = ilog2(4 * KIB);
ret = read_page_desc(&map, &ret_page_desc, 14); ret = __real_read_page_desc(&map, &ret_page_desc, 14);
assert_int_equal(ret, 0); assert_int_equal(ret, 0);
} }
@ -73,7 +73,7 @@ static void test_upage15(void **state)
map.log2_pages_per_group = ilog2(16); map.log2_pages_per_group = ilog2(16);
map.log2_page_size = ilog2(4 * KIB); map.log2_page_size = ilog2(4 * KIB);
ret = read_page_desc(&map, &ret_page_desc, 15); ret = __real_read_page_desc(&map, &ret_page_desc, 15);
assert_int_equal(ret, -1); assert_int_equal(ret, -1);
} }
@ -97,7 +97,7 @@ static void test_upage16(void **state)
map.log2_pages_per_group = ilog2(16); map.log2_pages_per_group = ilog2(16);
map.log2_page_size = ilog2(4 * KIB); map.log2_page_size = ilog2(4 * KIB);
ret = read_page_desc(&map, &ret_page_desc, 16); ret = __real_read_page_desc(&map, &ret_page_desc, 16);
assert_int_equal(ret, 0); assert_int_equal(ret, 0);
} }
@ -121,7 +121,7 @@ static void test_upage30(void **state)
map.log2_pages_per_group = ilog2(16); map.log2_pages_per_group = ilog2(16);
map.log2_page_size = ilog2(4 * KIB); map.log2_page_size = ilog2(4 * KIB);
ret = read_page_desc(&map, &ret_page_desc, 30); ret = __real_read_page_desc(&map, &ret_page_desc, 30);
assert_int_equal(ret, 0); assert_int_equal(ret, 0);
} }
@ -137,7 +137,7 @@ static void test_upage31(void **state)
map.log2_pages_per_group = ilog2(16); map.log2_pages_per_group = ilog2(16);
map.log2_page_size = ilog2(4 * KIB); map.log2_page_size = ilog2(4 * KIB);
ret = read_page_desc(&map, &ret_page_desc, 31); ret = __real_read_page_desc(&map, &ret_page_desc, 31);
assert_int_equal(ret, -1); assert_int_equal(ret, -1);
} }
@ -161,7 +161,7 @@ static void test_upage32(void **state)
map.log2_pages_per_group = ilog2(16); map.log2_pages_per_group = ilog2(16);
map.log2_page_size = ilog2(4 * KIB); map.log2_page_size = ilog2(4 * KIB);
ret = read_page_desc(&map, &ret_page_desc, 32); ret = __real_read_page_desc(&map, &ret_page_desc, 32);
assert_int_equal(ret, 0); assert_int_equal(ret, 0);
} }