aboutsummaryrefslogtreecommitdiff
path: root/pw_kvs/key_value_store_test.cc
diff options
context:
space:
mode:
authorWyatt Hepler <hepler@google.com>2020-02-06 08:20:38 -0800
committerWyatt Hepler <hepler@google.com>2020-02-06 20:40:52 +0000
commitad0a79364be754d9f84597ce4d59d68a98063f13 (patch)
tree7974a256191fc2c5bc73b8144b1d12e2d13abe77 /pw_kvs/key_value_store_test.cc
parent5ccb6689b8fc39d15832e84b6ceee4124acc2622 (diff)
downloadpigweed-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.cc24
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"));