mirror of https://github.com/ARMmbed/mbed-os.git
Greentea: Fix slice-calculation from kvstore test phase 2
parent
d74fa93549
commit
0fe159f6c4
|
@ -68,13 +68,18 @@ static int kv_setup = TDBStoreSet;
|
|||
|
||||
static const int heap_alloc_threshold_size = 4096;
|
||||
|
||||
static inline uint32_t align_up(uint32_t val, uint32_t size)
|
||||
{
|
||||
return (((val - 1) / size) + 1) * size;
|
||||
}
|
||||
|
||||
/*----------------initialization------------------*/
|
||||
|
||||
//init the blockdevice
|
||||
static void kvstore_init()
|
||||
{
|
||||
int res;
|
||||
size_t erase_size, ul_bd_size, rbp_bd_size;
|
||||
size_t program_size, erase_size, ul_bd_size, rbp_bd_size;
|
||||
BlockDevice *sec_bd;
|
||||
|
||||
res = bd->init();
|
||||
|
@ -109,10 +114,17 @@ static void kvstore_init()
|
|||
flash_bd = new FlashSimBlockDevice(bd);
|
||||
sec_bd = flash_bd;
|
||||
}
|
||||
res = sec_bd->init();
|
||||
TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res);
|
||||
|
||||
erase_size = sec_bd->get_erase_size();
|
||||
ul_bd_size = erase_size * 4;
|
||||
rbp_bd_size = erase_size * 2;
|
||||
program_size = sec_bd->get_program_size();
|
||||
erase_size = sec_bd->get_erase_size();
|
||||
// We must be able to hold at least 10 small keys (20 program sectors) and master record + internal data
|
||||
ul_bd_size = align_up(program_size * 40, erase_size);
|
||||
rbp_bd_size = align_up(program_size * 40, erase_size);
|
||||
|
||||
res = sec_bd->deinit();
|
||||
TEST_ASSERT_EQUAL_ERROR_CODE(MBED_SUCCESS, res);
|
||||
|
||||
ul_bd = new SlicingBlockDevice(sec_bd, 0, ul_bd_size);
|
||||
rbp_bd = new SlicingBlockDevice(sec_bd, ul_bd_size, ul_bd_size + rbp_bd_size);
|
||||
|
|
Loading…
Reference in New Issue