test: ftl: mock read_page_desc()

tags/0.1.0
S.J.R. van Schaik 7 years ago
parent 1153f2bdcd
commit b8426f12f2
  1. 10
      source/ftl/map.c
  2. 1
      source/tests/Makefile
  3. 11
      source/tests/ftl/mock.c
  4. 16
      source/tests/ftl/read_page_desc.c

@ -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.
*/

@ -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

@ -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)
{

@ -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);
}

Loading…
Cancel
Save