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
* 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,
struct ftl_page_desc *page_desc, uint32_t upage)
{
@ -121,6 +126,11 @@ int read_page_desc(struct ftl_map *map,
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
* 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 += -Dfind_block=__wrap_find_block
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

View file

@ -42,6 +42,17 @@ int __wrap_prepare_head(struct ftl_map *map)
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,
struct ftl_page_desc *page_desc)
{

View file

@ -11,7 +11,7 @@
#include <ftl.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);
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_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);
}
@ -57,7 +57,7 @@ static void test_upage14(void **state)
map.log2_pages_per_group = ilog2(16);
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);
}
@ -73,7 +73,7 @@ static void test_upage15(void **state)
map.log2_pages_per_group = ilog2(16);
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);
}
@ -97,7 +97,7 @@ static void test_upage16(void **state)
map.log2_pages_per_group = ilog2(16);
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);
}
@ -121,7 +121,7 @@ static void test_upage30(void **state)
map.log2_pages_per_group = ilog2(16);
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);
}
@ -137,7 +137,7 @@ static void test_upage31(void **state)
map.log2_pages_per_group = ilog2(16);
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);
}
@ -161,7 +161,7 @@ static void test_upage32(void **state)
map.log2_pages_per_group = ilog2(16);
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);
}