mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-02-11 09:40:24 +00:00
test/tlv_test: add tlv re-init of full bank
This commit is contained in:
parent
e195acfc18
commit
a469758c05
@ -17,9 +17,15 @@
|
|||||||
#ifdef ENABLE_TLV_FLASH_EXPLICIT_DELETE_FIELD
|
#ifdef ENABLE_TLV_FLASH_EXPLICIT_DELETE_FIELD
|
||||||
// Provide additional bytes for 3 x delete fields (in both banks)
|
// Provide additional bytes for 3 x delete fields (in both banks)
|
||||||
#define HAL_FLASH_BANK_MEMORY_STORAGE_SIZE (256 + 24)
|
#define HAL_FLASH_BANK_MEMORY_STORAGE_SIZE (256 + 24)
|
||||||
|
#define TAG_OVERHEAD 16
|
||||||
#else
|
#else
|
||||||
#define HAL_FLASH_BANK_MEMORY_STORAGE_SIZE (256)
|
#define HAL_FLASH_BANK_MEMORY_STORAGE_SIZE (256)
|
||||||
|
#define TAG_OVERHEAD 8
|
||||||
#endif
|
#endif
|
||||||
|
#define HAL_FLASH_BANK_MEMORY_BANK_SIZE (HAL_FLASH_BANK_MEMORY_STORAGE_SIZE / 2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static uint8_t hal_flash_bank_memory_storage[HAL_FLASH_BANK_MEMORY_STORAGE_SIZE];
|
static uint8_t hal_flash_bank_memory_storage[HAL_FLASH_BANK_MEMORY_STORAGE_SIZE];
|
||||||
|
|
||||||
static void CHECK_EQUAL_ARRAY(uint8_t * expected, uint8_t * actual, int size){
|
static void CHECK_EQUAL_ARRAY(uint8_t * expected, uint8_t * actual, int size){
|
||||||
@ -245,6 +251,44 @@ TEST(BSTACK_TLV, TestWriteResetRead){
|
|||||||
CHECK_EQUAL(buffer, data);
|
CHECK_EQUAL(buffer, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(BSTACK_TLV, TestFullBank){
|
||||||
|
btstack_tlv_impl = btstack_tlv_flash_bank_init_instance(&btstack_tlv_context, hal_flash_bank_impl, &hal_flash_bank_context);
|
||||||
|
|
||||||
|
// fill-up flash bank
|
||||||
|
uint32_t tag = 'abcd';
|
||||||
|
uint8_t blob[HAL_FLASH_BANK_MEMORY_BANK_SIZE - 8 - TAG_OVERHEAD];
|
||||||
|
btstack_tlv_impl->store_tag(&btstack_tlv_context, tag, (uint8_t *) &blob, sizeof(blob));
|
||||||
|
CHECK_EQUAL(0, btstack_tlv_context.current_bank);
|
||||||
|
CHECK_EQUAL(HAL_FLASH_BANK_MEMORY_BANK_SIZE, btstack_tlv_context.write_offset);
|
||||||
|
|
||||||
|
// check
|
||||||
|
btstack_tlv_impl = btstack_tlv_flash_bank_init_instance(&btstack_tlv_context, hal_flash_bank_impl, &hal_flash_bank_context);
|
||||||
|
CHECK_EQUAL(0, btstack_tlv_context.current_bank);
|
||||||
|
CHECK_EQUAL(HAL_FLASH_BANK_MEMORY_BANK_SIZE, btstack_tlv_context.write_offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(BSTACK_TLV, TestFullBankPlusMigrate){
|
||||||
|
btstack_tlv_impl = btstack_tlv_flash_bank_init_instance(&btstack_tlv_context, hal_flash_bank_impl, &hal_flash_bank_context);
|
||||||
|
|
||||||
|
// fill-up flash bank
|
||||||
|
uint32_t tag = 'abcd';
|
||||||
|
uint8_t blob[((HAL_FLASH_BANK_MEMORY_BANK_SIZE - 8) / 2) - TAG_OVERHEAD];
|
||||||
|
btstack_tlv_impl->store_tag(&btstack_tlv_context, tag, (uint8_t *) &blob, sizeof(blob));
|
||||||
|
btstack_tlv_impl->store_tag(&btstack_tlv_context, tag, (uint8_t *) &blob, sizeof(blob));
|
||||||
|
CHECK_EQUAL(0, btstack_tlv_context.current_bank);
|
||||||
|
CHECK_EQUAL(HAL_FLASH_BANK_MEMORY_BANK_SIZE, btstack_tlv_context.write_offset);
|
||||||
|
|
||||||
|
// check
|
||||||
|
btstack_tlv_impl = btstack_tlv_flash_bank_init_instance(&btstack_tlv_context, hal_flash_bank_impl, &hal_flash_bank_context);
|
||||||
|
CHECK_EQUAL(0, btstack_tlv_context.current_bank);
|
||||||
|
CHECK_EQUAL(HAL_FLASH_BANK_MEMORY_BANK_SIZE, btstack_tlv_context.write_offset);
|
||||||
|
|
||||||
|
// store one more -> trigger migration
|
||||||
|
btstack_tlv_impl->store_tag(&btstack_tlv_context, tag, (uint8_t *) &blob, sizeof(blob));
|
||||||
|
CHECK_EQUAL(1, btstack_tlv_context.current_bank);
|
||||||
|
CHECK_EQUAL(8 + 2 * (TAG_OVERHEAD + sizeof(blob)), btstack_tlv_context.write_offset);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
TEST_GROUP(LINK_KEY_DB){
|
TEST_GROUP(LINK_KEY_DB){
|
||||||
const hal_flash_bank_t * hal_flash_bank_impl;
|
const hal_flash_bank_t * hal_flash_bank_impl;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user