diff options
author | Wyatt Hepler <hepler@google.com> | 2020-02-03 17:49:32 -0800 |
---|---|---|
committer | Wyatt Hepler <hepler@google.com> | 2020-02-04 12:10:43 -0800 |
commit | ed163b08dbddc0bb9fe6617f94031e33f78207b6 (patch) | |
tree | 83d152589af1645390e0317ae35ba3a1b339331b /pw_kvs/key_value_store_test.cc | |
parent | 2e568877c00b8ed83fdfc4573a76ebfc61fe947b (diff) | |
download | pigweed-ed163b08dbddc0bb9fe6617f94031e33f78207b6.tar.gz |
pw_kvs: Implement ValueSize
Change-Id: Ibc57448b704d8f3e57712ed74b60f86c262275c3
Diffstat (limited to 'pw_kvs/key_value_store_test.cc')
-rw-r--r-- | pw_kvs/key_value_store_test.cc | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/pw_kvs/key_value_store_test.cc b/pw_kvs/key_value_store_test.cc index 69ca2c265..8d979faf7 100644 --- a/pw_kvs/key_value_store_test.cc +++ b/pw_kvs/key_value_store_test.cc @@ -1144,32 +1144,37 @@ TEST_F(KeyValueStoreTest, DISABLED_FillSector2) { } } -TEST_F(KeyValueStoreTest, DISABLED_GetValueSizeTests) { - constexpr uint16_t kSizeOfValueToFill = 20U; - constexpr uint8_t kKey0Pattern = 0xBA; - // Start off with disabled KVS - // kvs_.Disable(); +TEST_F(KeyValueStoreTest, ValueSize_Positive) { + constexpr auto kData = ByteArray('h', 'i', '!'); + ASSERT_EQ(Status::OK, kvs_.Put("TheKey", kData)); - // Try getting value when KVS is disabled, expect failure - EXPECT_EQ(kvs_.ValueSize(keys[0]).status(), Status::FAILED_PRECONDITION); + auto result = kvs_.ValueSize("TheKey"); - // Reset KVS - test_partition.Erase(0, test_partition.sector_count()); - ASSERT_EQ(Status::OK, kvs_.Init()); + EXPECT_EQ(Status::OK, result.status()); + EXPECT_EQ(kData.size(), result.size()); +} - // Try some case that are expected to fail - ASSERT_EQ(kvs_.ValueSize(keys[0]).status(), Status::NOT_FOUND); - ASSERT_EQ(kvs_.ValueSize("").status(), Status::INVALID_ARGUMENT); +TEST_F(KeyValueStoreTest, ValueSize_Zero) { + ASSERT_EQ(Status::OK, kvs_.Put("TheKey", as_bytes(span("123", 3)))); + auto result = kvs_.ValueSize("TheKey"); - // Add key[0] and test we get the right value size for it. - std::memset(buffer.data(), kKey0Pattern, kSizeOfValueToFill); - ASSERT_EQ(Status::OK, - kvs_.Put(keys[0], span(buffer.data(), kSizeOfValueToFill))); - ASSERT_EQ(kSizeOfValueToFill, kvs_.ValueSize(keys[0]).size()); + EXPECT_EQ(Status::OK, result.status()); + EXPECT_EQ(3u, result.size()); +} - // Verify after erase key is not found - ASSERT_EQ(Status::OK, kvs_.Delete(keys[0])); - ASSERT_EQ(kvs_.ValueSize(keys[0]).status(), Status::NOT_FOUND); +TEST_F(KeyValueStoreTest, ValueSize_InvalidKey) { + EXPECT_EQ(Status::INVALID_ARGUMENT, kvs_.ValueSize("").status()); +} + +TEST_F(KeyValueStoreTest, ValueSize_MissingKey) { + EXPECT_EQ(Status::NOT_FOUND, kvs_.ValueSize("Not in there").status()); +} + +TEST_F(KeyValueStoreTest, DISABLED_ValueSize_DeletedKey) { + ASSERT_EQ(Status::OK, kvs_.Put("TheKey", as_bytes(span("123", 3)))); + ASSERT_EQ(Status::OK, kvs_.Delete("TheKey")); + + EXPECT_EQ(Status::NOT_FOUND, kvs_.ValueSize("TheKey").status()); } #if 0 // TODO: not CanFitEntry function yet |