Skip to content

Commit 272cb79

Browse files
authored
Merge pull request #12636 from jarlamsa/tdbstore_unittests
Extend unit tests for TDBStore
2 parents dc21432 + 6abb58c commit 272cb79

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

UNITTESTS/moduletests/storage/kvstore/TDBStore/moduletest.cpp

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ TEST_F(TDBStoreModuleTest, set_get)
6060
EXPECT_STREQ("data", buf);
6161
}
6262

63-
TEST_F(TDBStoreModuleTest, erased_get_set)
63+
TEST_F(TDBStoreModuleTest, erased_set_get)
6464
{
6565
EXPECT_EQ(tdb.deinit(), MBED_SUCCESS);
6666
EXPECT_EQ(flash.init(), MBED_SUCCESS);
@@ -102,11 +102,11 @@ TEST_F(TDBStoreModuleTest, corrupted_set_deinit_init_get)
102102
for (int i = 0; i < 100; ++i) {
103103
EXPECT_EQ(tdb.deinit(), MBED_SUCCESS);
104104
// Corrupt the first part of the storage
105-
for (int i = 0; i < heap.size()/BLOCK_SIZE/2; i++) {
106-
for (int j = 0; j < BLOCK_SIZE; j++) {
107-
block[j] = rand();
105+
for (int j = 0; j < heap.size()/BLOCK_SIZE/2; j++) {
106+
for (int k = 0; k < BLOCK_SIZE; k++) {
107+
block[k] = rand();
108108
}
109-
EXPECT_EQ(heap.program(block, BLOCK_SIZE * i, BLOCK_SIZE), MBED_SUCCESS);
109+
EXPECT_EQ(heap.program(block, BLOCK_SIZE * j, BLOCK_SIZE), MBED_SUCCESS);
110110
}
111111
EXPECT_EQ(tdb.init(), MBED_SUCCESS);
112112
for (int j = 0; j < 100; ++j) {
@@ -124,3 +124,28 @@ TEST_F(TDBStoreModuleTest, corrupted_set_deinit_init_get)
124124
EXPECT_EQ(heap.deinit(), MBED_SUCCESS);
125125
delete[] block;
126126
}
127+
128+
TEST_F(TDBStoreModuleTest, set_multiple_iterate)
129+
{
130+
char buf[100];
131+
KVStore::iterator_t iterator;
132+
EXPECT_EQ(tdb.set("primary_key", "data", 5, 0), MBED_SUCCESS);
133+
EXPECT_EQ(tdb.set("primary_second_key", "value", 6, 0), MBED_SUCCESS);
134+
EXPECT_EQ(tdb.iterator_open(&iterator, "primary"), MBED_SUCCESS);
135+
EXPECT_EQ(tdb.iterator_next(iterator, buf, 100), MBED_SUCCESS);
136+
EXPECT_EQ(tdb.iterator_next(iterator, buf, 100), MBED_SUCCESS);
137+
EXPECT_EQ(tdb.iterator_next(iterator, buf, 100), MBED_ERROR_ITEM_NOT_FOUND);
138+
EXPECT_EQ(tdb.iterator_close(iterator), MBED_SUCCESS);
139+
}
140+
141+
TEST_F(TDBStoreModuleTest, reserved_data_set_get)
142+
{
143+
char reserved_key[] = "value";
144+
char buf[64];
145+
size_t size;
146+
EXPECT_EQ(tdb.reserved_data_set(reserved_key, 6), MBED_SUCCESS);
147+
EXPECT_EQ(tdb.reserved_data_get(buf, 64, &size), MBED_SUCCESS);
148+
EXPECT_STREQ("value", buf);
149+
EXPECT_EQ(size, 6);
150+
EXPECT_EQ(tdb.reserved_data_set(reserved_key, 6), MBED_ERROR_WRITE_FAILED);
151+
}

0 commit comments

Comments
 (0)