pw_blob_store: Update return for Invalidate()
Update Invalidate() to return OK or INTERNAL rather than the kvs Delete
return value.
Change-Id: If873fd1309e1aaa3147426e64384135f9cea9016
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/18687
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Commit-Queue: David Rogers <davidrogers@google.com>
diff --git a/pw_blob_store/blob_store.cc b/pw_blob_store/blob_store.cc
index a1181c4..96a40f8 100644
--- a/pw_blob_store/blob_store.cc
+++ b/pw_blob_store/blob_store.cc
@@ -478,7 +478,11 @@
write_address_ = 0;
flash_address_ = 0;
- return kvs_.Delete(MetadataKey());
+ Status status = kvs_.Delete(MetadataKey());
+
+ return (status == Status::OK || status == Status::NOT_FOUND)
+ ? Status::OK
+ : Status::INTERNAL;
}
Status BlobStore::ValidateChecksum() {
diff --git a/pw_blob_store/blob_store_test.cc b/pw_blob_store/blob_store_test.cc
index af1a717..d21bd9d 100644
--- a/pw_blob_store/blob_store_test.cc
+++ b/pw_blob_store/blob_store_test.cc
@@ -146,6 +146,21 @@
EXPECT_EQ(Status::OK, blob.Init());
}
+TEST_F(BlobStoreTest, Discard) {
+ InitSourceBufferToRandom(0x8675309);
+ WriteTestBlock();
+
+ kvs::ChecksumCrc16 checksum;
+ BlobStoreBuffer<256> blob(
+ "TestBlobBlock", partition_, &checksum, kvs::TestKvs());
+ EXPECT_EQ(Status::OK, blob.Init());
+
+ BlobStore::BlobWriter writer(blob);
+ EXPECT_EQ(Status::OK, writer.Open());
+ EXPECT_EQ(Status::OK, writer.Discard());
+ EXPECT_EQ(Status::OK, writer.Close());
+}
+
TEST_F(BlobStoreTest, MultipleErase) {
BlobStoreBuffer<256> blob("Blob_OK", partition_, nullptr, kvs::TestKvs());
EXPECT_EQ(Status::OK, blob.Init());