diff options
author | Wyatt Hepler <hepler@google.com> | 2020-02-06 08:20:38 -0800 |
---|---|---|
committer | Wyatt Hepler <hepler@google.com> | 2020-02-06 20:40:52 +0000 |
commit | ad0a79364be754d9f84597ce4d59d68a98063f13 (patch) | |
tree | 7974a256191fc2c5bc73b8144b1d12e2d13abe77 /pw_kvs/key_value_store_test.cc | |
parent | 5ccb6689b8fc39d15832e84b6ceee4124acc2622 (diff) | |
download | pigweed-ad0a79364be754d9f84597ce4d59d68a98063f13.tar.gz |
pw_kvs: Track the correct number of sectors
Previously, the entire sector map was used, which caused out-of-range
flash reads if the sector map was larger than the number of sectors.
This fixes the out-of-range memory reads, but further work is needed to
get all tests passing.
Change-Id: Ic8e3edc45b8b6146c1c3217b3b1ffd6f127358df
Diffstat (limited to 'pw_kvs/key_value_store_test.cc')
-rw-r--r-- | pw_kvs/key_value_store_test.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/pw_kvs/key_value_store_test.cc b/pw_kvs/key_value_store_test.cc index a373382cb..27ce09a59 100644 --- a/pw_kvs/key_value_store_test.cc +++ b/pw_kvs/key_value_store_test.cc @@ -282,6 +282,30 @@ uint16_t CalcTestPartitionCrc() { } // namespace +TEST_F(KeyValueStoreTest, + DISABLED_Put_SameKeySameValueRepeatedly_AlignedEntries) { + std::array<char, 8> value{'v', 'a', 'l', 'u', 'e', '6', '7', '\0'}; + + for (int i = 0; i < 1000; ++i) { + ASSERT_EQ(Status::OK, kvs_.Put("The Key!", as_bytes(span(value)))); + } +} + +TEST_F(KeyValueStoreTest, + DISABLED_Put_SameKeySameValueRepeatedly_UnalignedEntries) { + std::array<char, 7> value{'v', 'a', 'l', 'u', 'e', '6', '\0'}; + + for (int i = 0; i < 1000; ++i) { + ASSERT_EQ(Status::OK, kvs_.Put("The Key!", as_bytes(span(value)))); + } +} + +TEST_F(KeyValueStoreTest, DISABLED_Put_SameKeyDifferentValueRepeatedly) { + for (uint64_t i = 0; i < 1000u; ++i) { + ASSERT_EQ(Status::OK, kvs_.Put("The Key!", i)); + } +} + TEST_F(KeyValueStoreTest, Delete_GetDeletedKey_ReturnsNotFound) { ASSERT_EQ(Status::OK, kvs_.Put("kEy", as_bytes(span("123")))); ASSERT_EQ(Status::OK, kvs_.Delete("kEy")); |