mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-02-03 20:54:18 +00:00
162 lines
3.4 KiB
C
162 lines
3.4 KiB
C
|
|
#include "CppUTest/TestHarness.h"
|
|
#include "CppUTest/CommandLineTestRunner.h"
|
|
|
|
#include "hal_flash_sector.h"
|
|
#include "btstack_tlv.h"
|
|
|
|
TEST_GROUP(HAL_FLASH_SECTOR){
|
|
void setup(void){
|
|
hal_flash_sector_init();
|
|
}
|
|
};
|
|
|
|
TEST(HAL_FLASH_SECTOR, TestErased){
|
|
uint8_t buffer;
|
|
int offsets[] = { 0, 10, 100};
|
|
int i;
|
|
for (i=0;i<sizeof(offsets)/sizeof(int);i++){
|
|
int bank;
|
|
for (bank=0;bank<2;bank++){
|
|
hal_flash_sector_read(bank, offsets[i], &buffer, 1);
|
|
CHECK_EQUAL(buffer, 0xff);
|
|
}
|
|
}
|
|
}
|
|
|
|
TEST(HAL_FLASH_SECTOR, TestWrite){
|
|
uint8_t buffer;
|
|
int offsets[] = { 0, 10, 100};
|
|
int i;
|
|
for (i=0;i<sizeof(offsets)/sizeof(int);i++){
|
|
int bank;
|
|
for (bank=0;bank<2;bank++){
|
|
buffer = i;
|
|
hal_flash_sector_write(bank, offsets[i], &buffer, 1);
|
|
}
|
|
}
|
|
for (i=0;i<sizeof(offsets)/sizeof(int);i++){
|
|
int bank;
|
|
for (bank=0;bank<2;bank++){
|
|
hal_flash_sector_read(bank, offsets[i], &buffer, 1);
|
|
CHECK_EQUAL(buffer, i);
|
|
}
|
|
}
|
|
}
|
|
|
|
#if 0
|
|
// prints error and exits tests. maybe all functions need to return ok
|
|
TEST(HAL_FLASH_SECTOR, TestWriteTwice){
|
|
uint8_t buffer = 5;
|
|
hal_flash_sector_write(0, 5, &buffer, 1);
|
|
hal_flash_sector_write(0, 5, &buffer, 1);
|
|
}
|
|
#endif
|
|
|
|
TEST(HAL_FLASH_SECTOR, TestWriteErase){
|
|
uint32_t offset = 7;
|
|
uint8_t value = 9;
|
|
uint8_t buffer = value;
|
|
hal_flash_sector_write(0, offset, &buffer, 1);
|
|
hal_flash_sector_read(0, offset, &buffer, 1);
|
|
CHECK_EQUAL(buffer, value);
|
|
hal_flash_sector_erase(0);
|
|
hal_flash_sector_read(0, offset, &buffer, 1);
|
|
CHECK_EQUAL(buffer, 0xff);
|
|
}
|
|
|
|
TEST_GROUP(BSTACK_TLV){
|
|
void setup(void){
|
|
hal_flash_sector_init();
|
|
}
|
|
};
|
|
|
|
TEST(BSTACK_TLV, TestMissingTag){
|
|
btstack_tlv_init();
|
|
uint32_t tag = 'abcd';
|
|
int size = btstack_tlv_get_tag(tag, NULL, 0);
|
|
CHECK_EQUAL(size, 0);
|
|
}
|
|
|
|
TEST(BSTACK_TLV, TestWriteRead){
|
|
btstack_tlv_init();
|
|
uint32_t tag = 'abcd';
|
|
uint8_t data = 7;
|
|
uint8_t buffer = data;
|
|
btstack_tlv_store_tag(tag, &buffer, 1);
|
|
int size = btstack_tlv_get_tag(tag, NULL, 0);
|
|
CHECK_EQUAL(size, 1);
|
|
btstack_tlv_get_tag(tag, &buffer, 1);
|
|
CHECK_EQUAL(buffer, data);
|
|
}
|
|
|
|
TEST(BSTACK_TLV, TestWriteWriteRead){
|
|
btstack_tlv_init();
|
|
uint32_t tag = 'abcd';
|
|
uint8_t data = 7;
|
|
uint8_t buffer = data;
|
|
btstack_tlv_store_tag(tag, &buffer, 1);
|
|
data++;
|
|
buffer = data;
|
|
btstack_tlv_store_tag(tag, &buffer, 1);
|
|
int size = btstack_tlv_get_tag(tag, NULL, 0);
|
|
CHECK_EQUAL(size, 1);
|
|
btstack_tlv_get_tag(tag, &buffer, 1);
|
|
CHECK_EQUAL(buffer, data);
|
|
}
|
|
|
|
TEST(BSTACK_TLV, TestMigrate){
|
|
|
|
btstack_tlv_init();
|
|
|
|
uint32_t tag = 'abcd';
|
|
uint8_t data[8];
|
|
memcpy(data, "01234567", 8);
|
|
|
|
// entry 8 + data 8 = 16.
|
|
int i;
|
|
for (i=0;i<8;i++){
|
|
data[0] = '0' + i;
|
|
btstack_tlv_store_tag(tag, &data[0], 8);
|
|
}
|
|
|
|
btstack_tlv_init();
|
|
|
|
uint8_t buffer[8];
|
|
btstack_tlv_get_tag(tag, &buffer[0], 1);
|
|
CHECK_EQUAL(buffer[0], data[0]);
|
|
}
|
|
|
|
TEST(BSTACK_TLV, TestMigrate2){
|
|
|
|
btstack_tlv_init();
|
|
|
|
uint32_t tag1 = 0x11223344;
|
|
uint32_t tag2 = 0x44556677;
|
|
uint8_t data1[8];
|
|
memcpy(data1, "01234567", 8);
|
|
uint8_t data2[8];
|
|
memcpy(data2, "abcdefgh", 8);
|
|
|
|
// entry 8 + data 8 = 16.
|
|
int i;
|
|
for (i=0;i<8;i++){
|
|
data1[0] = '0' + i;
|
|
data2[0] = 'a' + i;
|
|
btstack_tlv_store_tag(tag1, data1, 8);
|
|
btstack_tlv_store_tag(tag2, data2, 8);
|
|
}
|
|
|
|
btstack_tlv_init();
|
|
|
|
uint8_t buffer[8];
|
|
btstack_tlv_get_tag(tag1, &buffer[0], 1);
|
|
CHECK_EQUAL(buffer[0], data1[0]);
|
|
btstack_tlv_get_tag(tag2, &buffer[0], 1);
|
|
CHECK_EQUAL(buffer[0], data2[0]);
|
|
}
|
|
|
|
int main (int argc, const char * argv[]){
|
|
return CommandLineTestRunner::RunAllTests(argc, argv);
|
|
}
|