Merge pull request #12636 from jarlamsa/tdbstore_unittests

Extend unit tests for TDBStore
pull/12643/head^2
Martin Kojtal 2020-03-17 16:26:15 +01:00 committed by GitHub
commit 272cb794f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 30 additions and 5 deletions

View File

@ -60,7 +60,7 @@ TEST_F(TDBStoreModuleTest, set_get)
EXPECT_STREQ("data", buf);
}
TEST_F(TDBStoreModuleTest, erased_get_set)
TEST_F(TDBStoreModuleTest, erased_set_get)
{
EXPECT_EQ(tdb.deinit(), MBED_SUCCESS);
EXPECT_EQ(flash.init(), MBED_SUCCESS);
@ -102,11 +102,11 @@ TEST_F(TDBStoreModuleTest, corrupted_set_deinit_init_get)
for (int i = 0; i < 100; ++i) {
EXPECT_EQ(tdb.deinit(), MBED_SUCCESS);
// Corrupt the first part of the storage
for (int i = 0; i < heap.size()/BLOCK_SIZE/2; i++) {
for (int j = 0; j < BLOCK_SIZE; j++) {
block[j] = rand();
for (int j = 0; j < heap.size()/BLOCK_SIZE/2; j++) {
for (int k = 0; k < BLOCK_SIZE; k++) {
block[k] = rand();
}
EXPECT_EQ(heap.program(block, BLOCK_SIZE * i, BLOCK_SIZE), MBED_SUCCESS);
EXPECT_EQ(heap.program(block, BLOCK_SIZE * j, BLOCK_SIZE), MBED_SUCCESS);
}
EXPECT_EQ(tdb.init(), MBED_SUCCESS);
for (int j = 0; j < 100; ++j) {
@ -124,3 +124,28 @@ TEST_F(TDBStoreModuleTest, corrupted_set_deinit_init_get)
EXPECT_EQ(heap.deinit(), MBED_SUCCESS);
delete[] block;
}
TEST_F(TDBStoreModuleTest, set_multiple_iterate)
{
char buf[100];
KVStore::iterator_t iterator;
EXPECT_EQ(tdb.set("primary_key", "data", 5, 0), MBED_SUCCESS);
EXPECT_EQ(tdb.set("primary_second_key", "value", 6, 0), MBED_SUCCESS);
EXPECT_EQ(tdb.iterator_open(&iterator, "primary"), MBED_SUCCESS);
EXPECT_EQ(tdb.iterator_next(iterator, buf, 100), MBED_SUCCESS);
EXPECT_EQ(tdb.iterator_next(iterator, buf, 100), MBED_SUCCESS);
EXPECT_EQ(tdb.iterator_next(iterator, buf, 100), MBED_ERROR_ITEM_NOT_FOUND);
EXPECT_EQ(tdb.iterator_close(iterator), MBED_SUCCESS);
}
TEST_F(TDBStoreModuleTest, reserved_data_set_get)
{
char reserved_key[] = "value";
char buf[64];
size_t size;
EXPECT_EQ(tdb.reserved_data_set(reserved_key, 6), MBED_SUCCESS);
EXPECT_EQ(tdb.reserved_data_get(buf, 64, &size), MBED_SUCCESS);
EXPECT_STREQ("value", buf);
EXPECT_EQ(size, 6);
EXPECT_EQ(tdb.reserved_data_set(reserved_key, 6), MBED_ERROR_WRITE_FAILED);
}