overall: Adding `IgnoreError()` where Status was discarded
Bug: 387
Change-Id: I720b7a99a1c7a24eb8e2554629529d1e24394cb1
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/49041
Reviewed-by: Keir Mierle <keir@google.com>
Commit-Queue: Keir Mierle <keir@google.com>
diff --git a/pw_allocator/block_test.cc b/pw_allocator/block_test.cc
index 6a07037..e397314 100644
--- a/pw_allocator/block_test.cc
+++ b/pw_allocator/block_test.cc
@@ -136,10 +136,12 @@
EXPECT_EQ(Block::Init(std::span(bytes, kN), &block), OkStatus());
Block* block2 = nullptr;
- block->Split(kSplit1, &block2);
+ block->Split(kSplit1, &block2)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
Block* block3 = nullptr;
- block->Split(kSplit2, &block3);
+ block->Split(kSplit2, &block3)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(block->Next(), block3);
EXPECT_EQ(block3->Next(), block2);
@@ -282,10 +284,12 @@
EXPECT_EQ(Block::Init(std::span(bytes, kN), &block), OkStatus());
Block* block2 = nullptr;
- block->Split(kSplit1, &block2);
+ block->Split(kSplit1, &block2)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
Block* block3 = nullptr;
- block->Split(kSplit2, &block3);
+ block->Split(kSplit2, &block3)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(block3->MergeNext(), OkStatus());
@@ -310,7 +314,8 @@
EXPECT_EQ(Block::Init(std::span(bytes, kN), &block), OkStatus());
Block* next_block = nullptr;
- block->Split(512, &next_block);
+ block->Split(512, &next_block)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(next_block->MergeNext(), Status::OutOfRange());
EXPECT_EQ(block->MergePrev(), Status::OutOfRange());
@@ -326,7 +331,8 @@
EXPECT_EQ(Block::Init(std::span(bytes, kN), &block), OkStatus());
Block* next_block = nullptr;
- block->Split(512, &next_block);
+ block->Split(512, &next_block)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
block->MarkUsed();
EXPECT_EQ(block->MergeNext(), Status::FailedPrecondition());
@@ -341,10 +347,12 @@
EXPECT_EQ(Block::Init(std::span(bytes, kN), &first_block), OkStatus());
Block* second_block = nullptr;
- first_block->Split(512, &second_block);
+ first_block->Split(512, &second_block)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
Block* third_block = nullptr;
- second_block->Split(256, &third_block);
+ second_block->Split(256, &third_block)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(first_block->IsValid(), true);
EXPECT_EQ(second_block->IsValid(), true);
@@ -359,13 +367,16 @@
EXPECT_EQ(Block::Init(std::span(bytes, kN), &first_block), OkStatus());
Block* second_block = nullptr;
- first_block->Split(512, &second_block);
+ first_block->Split(512, &second_block)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
Block* third_block = nullptr;
- second_block->Split(256, &third_block);
+ second_block->Split(256, &third_block)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
Block* fourth_block = nullptr;
- third_block->Split(128, &fourth_block);
+ third_block->Split(128, &fourth_block)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::byte* next_ptr = reinterpret_cast<std::byte*>(first_block);
memcpy(next_ptr, second_block, sizeof(void*));
@@ -397,10 +408,12 @@
EXPECT_EQ(Block::Init(std::span(bytes, kN), &first_block), OkStatus());
Block* second_block = nullptr;
- first_block->Split(512, &second_block);
+ first_block->Split(512, &second_block)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
Block* third_block = nullptr;
- second_block->Split(256, &third_block);
+ second_block->Split(256, &third_block)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(first_block->IsValid(), true);
EXPECT_EQ(second_block->IsValid(), true);
diff --git a/pw_allocator/freelist_heap.cc b/pw_allocator/freelist_heap.cc
index 8d04b49..1dacf2d 100644
--- a/pw_allocator/freelist_heap.cc
+++ b/pw_allocator/freelist_heap.cc
@@ -28,7 +28,8 @@
Block::Init(region, &block),
"Failed to initialize FreeListHeap region; misaligned or too small");
- freelist_.AddChunk(BlockToSpan(block));
+ freelist_.AddChunk(BlockToSpan(block))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
region_ = region;
heap_stats_.total_bytes = region.size();
@@ -42,7 +43,8 @@
if (chunk.data() == nullptr) {
return nullptr;
}
- freelist_.RemoveChunk(chunk);
+ freelist_.RemoveChunk(chunk)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
Block* chunk_block = Block::FromUsableSpace(chunk.data());
@@ -52,7 +54,8 @@
Block* leftover;
auto status = chunk_block->Split(size, &leftover);
if (status == PW_STATUS_OK) {
- freelist_.AddChunk(BlockToSpan(leftover));
+ freelist_.AddChunk(BlockToSpan(leftover))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
chunk_block->MarkUsed();
@@ -92,19 +95,24 @@
if (prev != nullptr && !prev->Used()) {
// Remove from freelist and merge
- freelist_.RemoveChunk(BlockToSpan(prev));
- chunk_block->MergePrev();
+ freelist_.RemoveChunk(BlockToSpan(prev))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ chunk_block->MergePrev()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// chunk_block is now invalid; prev now encompasses it.
chunk_block = prev;
}
if (next != nullptr && !next->Used()) {
- freelist_.RemoveChunk(BlockToSpan(next));
- chunk_block->MergeNext();
+ freelist_.RemoveChunk(BlockToSpan(next))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ chunk_block->MergeNext()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
// Add back to the freelist
- freelist_.AddChunk(BlockToSpan(chunk_block));
+ freelist_.AddChunk(BlockToSpan(chunk_block))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
heap_stats_.bytes_allocated -= size_freed;
heap_stats_.cumulative_freed += size_freed;
diff --git a/pw_allocator/freelist_test.cc b/pw_allocator/freelist_test.cc
index 8e0e145..45d1d35 100644
--- a/pw_allocator/freelist_test.cc
+++ b/pw_allocator/freelist_test.cc
@@ -56,7 +56,8 @@
byte data[kN] = {std::byte(0)};
- list.AddChunk(std::span(data, kN));
+ list.AddChunk(std::span(data, kN))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
auto item = list.FindChunk(kN / 2);
EXPECT_EQ(item.size(), kN);
EXPECT_EQ(item.data(), data);
@@ -68,7 +69,8 @@
byte data[kN] = {std::byte(0)};
- list.AddChunk(std::span(data, kN));
+ list.AddChunk(std::span(data, kN))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
auto status = list.RemoveChunk(std::span(data, kN));
EXPECT_EQ(status, OkStatus());
@@ -84,8 +86,10 @@
byte data1[kN1] = {std::byte(0)};
byte data2[kN2] = {std::byte(0)};
- list.AddChunk(std::span(data1, kN1));
- list.AddChunk(std::span(data2, kN2));
+ list.AddChunk(std::span(data1, kN1))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ list.AddChunk(std::span(data2, kN2))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
auto chunk = list.FindChunk(kN1 / 2);
EXPECT_EQ(chunk.size(), kN1);
@@ -111,8 +115,10 @@
byte data2[kN2] = {std::byte(0)};
// List should now be 257 -> 512 -> NULL
- list.AddChunk(std::span(data1, kN1));
- list.AddChunk(std::span(data2, kN2));
+ list.AddChunk(std::span(data1, kN1))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ list.AddChunk(std::span(data2, kN2))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
auto chunk = list.FindChunk(kN2 + 1);
EXPECT_EQ(chunk.size(), kN1);
@@ -131,8 +137,10 @@
// List should now be:
// bkt[3] (257 bytes up to 512 bytes) -> 257 -> NULL
// bkt[4] (513 bytes up to 1024 bytes) -> 513 -> NULL
- list.AddChunk(std::span(data1, kN1));
- list.AddChunk(std::span(data2, kN2));
+ list.AddChunk(std::span(data1, kN1))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ list.AddChunk(std::span(data2, kN2))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Request a 300 byte chunk. This should return the 513 byte one
auto chunk = list.FindChunk(kN1 + 1);
@@ -146,7 +154,8 @@
byte data[kN] = {std::byte(0)};
byte data2[kN] = {std::byte(0)};
- list.AddChunk(std::span(data, kN));
+ list.AddChunk(std::span(data, kN))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
auto status = list.RemoveChunk(std::span(data2, kN));
EXPECT_EQ(status, Status::NotFound());
}
@@ -158,13 +167,17 @@
byte data1[kN] = {std::byte(0)};
byte data2[kN] = {std::byte(0)};
- list.AddChunk(std::span(data1, kN));
- list.AddChunk(std::span(data2, kN));
+ list.AddChunk(std::span(data1, kN))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ list.AddChunk(std::span(data2, kN))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
auto chunk1 = list.FindChunk(kN);
- list.RemoveChunk(chunk1);
+ list.RemoveChunk(chunk1)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
auto chunk2 = list.FindChunk(kN);
- list.RemoveChunk(chunk2);
+ list.RemoveChunk(chunk2)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Ordering of the chunks doesn't matter
EXPECT_TRUE(chunk1.data() != chunk2.data());
diff --git a/pw_assert_basic/basic_handler.cc b/pw_assert_basic/basic_handler.cc
index 24262d4..be87baa 100644
--- a/pw_assert_basic/basic_handler.cc
+++ b/pw_assert_basic/basic_handler.cc
@@ -79,7 +79,10 @@
" ",
};
-using pw::sys_io::WriteLine;
+static void WriteLine(const std::string_view& s) {
+ pw::sys_io::WriteLine(s)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+}
typedef pw::StringBuffer<150> Buffer;
diff --git a/pw_blob_store/blob_store.cc b/pw_blob_store/blob_store.cc
index e584b74..ab7762c 100644
--- a/pw_blob_store/blob_store.cc
+++ b/pw_blob_store/blob_store.cc
@@ -72,7 +72,7 @@
if (!ValidateChecksum().ok()) {
PW_LOG_ERROR("BlobStore init - Invalidating blob with invalid checksum");
- Invalidate();
+ Invalidate().IgnoreError(); // TODO(pwbug/387): Handle Status properly
return Status::DataLoss();
}
@@ -96,7 +96,7 @@
writer_open_ = true;
- Invalidate();
+ Invalidate().IgnoreError(); // TODO(pwbug/387): Handle Status properly
return OkStatus();
}
@@ -162,7 +162,7 @@
}
if (!ValidateChecksum().ok()) {
- Invalidate();
+ Invalidate().IgnoreError(); // TODO(pwbug/387): Handle Status properly
return Status::DataLoss();
}
@@ -443,7 +443,7 @@
return OkStatus();
}
- Invalidate();
+ Invalidate().IgnoreError(); // TODO(pwbug/387): Handle Status properly
Status status = partition_.Erase();
diff --git a/pw_blob_store/blob_store_chunk_write_test.cc b/pw_blob_store/blob_store_chunk_write_test.cc
index 3dabaa8..becb23d 100644
--- a/pw_blob_store/blob_store_chunk_write_test.cc
+++ b/pw_blob_store/blob_store_chunk_write_test.cc
@@ -34,18 +34,22 @@
BlobStoreChunkTest() : flash_(kFlashAlignment), partition_(&flash_) {}
void InitFlashTo(std::span<const std::byte> contents) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memcpy(flash_.buffer().data(), contents.data(), contents.size());
}
void InitSourceBufferToRandom(uint64_t seed) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
random::XorShiftStarRng64 rng(seed);
- rng.Get(source_buffer_);
+ rng.Get(source_buffer_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
void InitSourceBufferToFill(char fill) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memset(source_buffer_.data(), fill, source_buffer_.size());
}
diff --git a/pw_blob_store/blob_store_deferred_write_test.cc b/pw_blob_store/blob_store_deferred_write_test.cc
index 02491e6..4edd993 100644
--- a/pw_blob_store/blob_store_deferred_write_test.cc
+++ b/pw_blob_store/blob_store_deferred_write_test.cc
@@ -34,18 +34,21 @@
DeferredWriteTest() : flash_(kFlashAlignment), partition_(&flash_) {}
void InitFlashTo(std::span<const std::byte> contents) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memcpy(flash_.buffer().data(), contents.data(), contents.size());
}
void InitBufferToRandom(uint64_t seed) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
random::XorShiftStarRng64 rng(seed);
- rng.Get(buffer_);
+ rng.Get(buffer_).IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
void InitBufferToFill(char fill) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memset(buffer_.data(), fill, buffer_.size());
}
diff --git a/pw_blob_store/blob_store_test.cc b/pw_blob_store/blob_store_test.cc
index e5ff2f1..8ed9c7c 100644
--- a/pw_blob_store/blob_store_test.cc
+++ b/pw_blob_store/blob_store_test.cc
@@ -35,7 +35,8 @@
BlobStoreTest() : flash_(kFlashAlignment), partition_(&flash_) {}
void InitFlashTo(std::span<const std::byte> contents) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memcpy(flash_.buffer().data(), contents.data(), contents.size());
}
@@ -47,7 +48,8 @@
std::memset(source_buffer_.data(),
static_cast<int>(flash_.erased_memory_content()),
source_buffer_.size());
- rng.Get(std::span(source_buffer_).first(init_size_bytes));
+ rng.Get(std::span(source_buffer_).first(init_size_bytes))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
void InitSourceBufferToFill(char fill,
diff --git a/pw_blob_store/public/pw_blob_store/blob_store.h b/pw_blob_store/public/pw_blob_store/blob_store.h
index e5bb6a1..ce63268 100644
--- a/pw_blob_store/public/pw_blob_store/blob_store.h
+++ b/pw_blob_store/public/pw_blob_store/blob_store.h
@@ -60,7 +60,7 @@
BlobWriter& operator=(const BlobWriter&) = delete;
virtual ~BlobWriter() {
if (open_) {
- Close();
+ Close().IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
@@ -188,7 +188,7 @@
BlobReader& operator=(const BlobReader&) = delete;
~BlobReader() {
if (open_) {
- Close();
+ Close().IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
diff --git a/pw_blob_store/size_report/base.cc b/pw_blob_store/size_report/base.cc
index e020725..32dc923 100644
--- a/pw_blob_store/size_report/base.cc
+++ b/pw_blob_store/size_report/base.cc
@@ -50,16 +50,19 @@
std::memset((void*)working_buffer, sizeof(working_buffer), 0x55);
is_set = (result != nullptr);
- test_kvs.Init();
+ test_kvs.Init().IgnoreError(); // TODO(pwbug/387): Handle Status properly
unsigned kvs_value = 42;
- test_kvs.Put("example_key", kvs_value);
+ test_kvs.Put("example_key", kvs_value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
kvs_entry_count = test_kvs.size();
unsigned read_value = 0;
- test_kvs.Get("example_key", &read_value);
- test_kvs.Delete("example_key");
+ test_kvs.Get("example_key", &read_value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_kvs.Delete("example_key")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
auto val = pw::kvs::FlashTestPartition().PartitionAddressToMcuAddress(0);
PW_LOG_INFO("Use the variable. %u", unsigned(*val));
diff --git a/pw_blob_store/size_report/basic_blob.cc b/pw_blob_store/size_report/basic_blob.cc
index 77c25e7..1921546 100644
--- a/pw_blob_store/size_report/basic_blob.cc
+++ b/pw_blob_store/size_report/basic_blob.cc
@@ -51,16 +51,19 @@
std::memset((void*)working_buffer, sizeof(working_buffer), 0x55);
is_set = (result != nullptr);
- test_kvs.Init();
+ test_kvs.Init().IgnoreError(); // TODO(pwbug/387): Handle Status properly
unsigned kvs_value = 42;
- test_kvs.Put("example_key", kvs_value);
+ test_kvs.Put("example_key", kvs_value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
kvs_entry_count = test_kvs.size();
unsigned read_value = 0;
- test_kvs.Get("example_key", &read_value);
- test_kvs.Delete("example_key");
+ test_kvs.Get("example_key", &read_value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_kvs.Delete("example_key")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
auto val = pw::kvs::FlashTestPartition().PartitionAddressToMcuAddress(0);
PW_LOG_INFO("Use the variable. %u", unsigned(*val));
@@ -81,21 +84,22 @@
pw::blob_store::BlobStoreBuffer<kBufferSize> blob(
name, pw::kvs::FlashTestPartition(), nullptr, test_kvs, kBufferSize);
- blob.Init();
+ blob.Init().IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Use writer.
pw::blob_store::BlobStore::BlobWriter writer(blob);
- writer.Open();
- writer.Write(write_data);
- writer.Close();
+ writer.Open().IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ writer.Write(write_data)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ writer.Close().IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Use reader.
pw::blob_store::BlobStore::BlobReader reader(blob);
- reader.Open();
+ reader.Open().IgnoreError(); // TODO(pwbug/387): Handle Status properly
pw::Result<pw::ConstByteSpan> get_result = reader.GetMemoryMappedBlob();
PW_LOG_INFO("%d", get_result.ok());
auto reader_result = reader.Read(read_span);
- reader.Close();
+ reader.Close().IgnoreError(); // TODO(pwbug/387): Handle Status properly
PW_LOG_INFO("%d", reader_result.ok());
// End of basic blob **********************
diff --git a/pw_blob_store/size_report/deferred_write_blob.cc b/pw_blob_store/size_report/deferred_write_blob.cc
index c654411..e8f3507 100644
--- a/pw_blob_store/size_report/deferred_write_blob.cc
+++ b/pw_blob_store/size_report/deferred_write_blob.cc
@@ -51,16 +51,19 @@
std::memset((void*)working_buffer, sizeof(working_buffer), 0x55);
is_set = (result != nullptr);
- test_kvs.Init();
+ test_kvs.Init().IgnoreError(); // TODO(pwbug/387): Handle Status properly
unsigned kvs_value = 42;
- test_kvs.Put("example_key", kvs_value);
+ test_kvs.Put("example_key", kvs_value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
kvs_entry_count = test_kvs.size();
unsigned read_value = 0;
- test_kvs.Get("example_key", &read_value);
- test_kvs.Delete("example_key");
+ test_kvs.Get("example_key", &read_value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_kvs.Delete("example_key")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
auto val = pw::kvs::FlashTestPartition().PartitionAddressToMcuAddress(0);
PW_LOG_INFO("Use the variable. %u", unsigned(*val));
@@ -81,22 +84,23 @@
pw::blob_store::BlobStoreBuffer<kBufferSize> blob(
name, pw::kvs::FlashTestPartition(), nullptr, test_kvs, kBufferSize);
- blob.Init();
+ blob.Init().IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Use writer.
pw::blob_store::BlobStore::DeferredWriter writer(blob);
- writer.Open();
- writer.Write(write_data);
- writer.Flush();
- writer.Close();
+ writer.Open().IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ writer.Write(write_data)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ writer.Flush().IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ writer.Close().IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Use reader.
pw::blob_store::BlobStore::BlobReader reader(blob);
- reader.Open();
+ reader.Open().IgnoreError(); // TODO(pwbug/387): Handle Status properly
pw::Result<pw::ConstByteSpan> get_result = reader.GetMemoryMappedBlob();
PW_LOG_INFO("%d", get_result.ok());
auto reader_result = reader.Read(read_span);
- reader.Close();
+ reader.Close().IgnoreError(); // TODO(pwbug/387): Handle Status properly
PW_LOG_INFO("%d", reader_result.ok());
// End of deferred blob **********************
diff --git a/pw_cpu_exception_cortex_m/proto_dump.cc b/pw_cpu_exception_cortex_m/proto_dump.cc
index 5015918..86213d5 100644
--- a/pw_cpu_exception_cortex_m/proto_dump.cc
+++ b/pw_cpu_exception_cortex_m/proto_dump.cc
@@ -24,34 +24,60 @@
*static_cast<cortex_m::ArmV7mCpuState::StreamEncoder*>(&dest);
// Special and mem-mapped registers.
- state_encoder.WritePc(cpu_state.base.pc);
- state_encoder.WriteLr(cpu_state.base.lr);
- state_encoder.WritePsr(cpu_state.base.psr);
- state_encoder.WriteMsp(cpu_state.extended.msp);
- state_encoder.WritePsp(cpu_state.extended.psp);
- state_encoder.WriteExcReturn(cpu_state.extended.exc_return);
- state_encoder.WriteCfsr(cpu_state.extended.cfsr);
- state_encoder.WriteMmfar(cpu_state.extended.mmfar);
- state_encoder.WriteBfar(cpu_state.extended.bfar);
- state_encoder.WriteIcsr(cpu_state.extended.icsr);
- state_encoder.WriteHfsr(cpu_state.extended.hfsr);
- state_encoder.WriteShcsr(cpu_state.extended.shcsr);
- state_encoder.WriteControl(cpu_state.extended.control);
+ state_encoder.WritePc(cpu_state.base.pc)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteLr(cpu_state.base.lr)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WritePsr(cpu_state.base.psr)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteMsp(cpu_state.extended.msp)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WritePsp(cpu_state.extended.psp)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteExcReturn(cpu_state.extended.exc_return)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteCfsr(cpu_state.extended.cfsr)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteMmfar(cpu_state.extended.mmfar)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteBfar(cpu_state.extended.bfar)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteIcsr(cpu_state.extended.icsr)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteHfsr(cpu_state.extended.hfsr)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteShcsr(cpu_state.extended.shcsr)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteControl(cpu_state.extended.control)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// General purpose registers.
- state_encoder.WriteR0(cpu_state.base.r0);
- state_encoder.WriteR1(cpu_state.base.r1);
- state_encoder.WriteR2(cpu_state.base.r2);
- state_encoder.WriteR3(cpu_state.base.r3);
- state_encoder.WriteR4(cpu_state.extended.r4);
- state_encoder.WriteR5(cpu_state.extended.r5);
- state_encoder.WriteR6(cpu_state.extended.r6);
- state_encoder.WriteR7(cpu_state.extended.r7);
- state_encoder.WriteR8(cpu_state.extended.r8);
- state_encoder.WriteR9(cpu_state.extended.r9);
- state_encoder.WriteR10(cpu_state.extended.r10);
- state_encoder.WriteR11(cpu_state.extended.r11);
- state_encoder.WriteR12(cpu_state.base.r12);
+ state_encoder.WriteR0(cpu_state.base.r0)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR1(cpu_state.base.r1)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR2(cpu_state.base.r2)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR3(cpu_state.base.r3)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR4(cpu_state.extended.r4)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR5(cpu_state.extended.r5)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR6(cpu_state.extended.r6)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR7(cpu_state.extended.r7)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR8(cpu_state.extended.r8)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR9(cpu_state.extended.r9)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR10(cpu_state.extended.r10)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR11(cpu_state.extended.r11)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ state_encoder.WriteR12(cpu_state.base.r12)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// If the encode buffer was exhausted in an earlier write, it will be
// reflected here.
diff --git a/pw_hdlc/rpc_packets.cc b/pw_hdlc/rpc_packets.cc
index 9d83d86..e3cf4ac 100644
--- a/pw_hdlc/rpc_packets.cc
+++ b/pw_hdlc/rpc_packets.cc
@@ -32,7 +32,8 @@
if (auto result = decoder.Process(data); result.ok()) {
Frame& frame = result.value();
if (frame.address() == rpc_address) {
- server.ProcessPacket(frame.data(), output);
+ server.ProcessPacket(frame.data(), output)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
}
diff --git a/pw_hex_dump/hex_dump_test.cc b/pw_hex_dump/hex_dump_test.cc
index d283c18..48d9939 100644
--- a/pw_hex_dump/hex_dump_test.cc
+++ b/pw_hex_dump/hex_dump_test.cc
@@ -333,8 +333,10 @@
constexpr size_t kTestBytesPerLine = 16;
std::array<char, kHexAddrStringSize + 1> expected1;
std::array<char, kHexAddrStringSize + 1> expected2;
- DumpAddr(expected1, source_data.data());
- DumpAddr(expected2, source_data.data() + kTestBytesPerLine);
+ DumpAddr(expected1, source_data.data())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ DumpAddr(expected2, source_data.data() + kTestBytesPerLine)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
default_flags_.bytes_per_line = kTestBytesPerLine;
default_flags_.prefix_mode = FormattedHexDumper::AddressMode::kAbsolute;
diff --git a/pw_hex_dump/public/pw_hex_dump/hex_dump.h b/pw_hex_dump/public/pw_hex_dump/hex_dump.h
index 58cdea6..aaf6ef1 100644
--- a/pw_hex_dump/public/pw_hex_dump/hex_dump.h
+++ b/pw_hex_dump/public/pw_hex_dump/hex_dump.h
@@ -97,10 +97,14 @@
.prefix_mode = AddressMode::kOffset};
FormattedHexDumper() = default;
- FormattedHexDumper(std::span<char> dest) { SetLineBuffer(dest); }
+ FormattedHexDumper(std::span<char> dest) {
+ SetLineBuffer(dest)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ }
FormattedHexDumper(std::span<char> dest, Flags config_flags)
: flags(config_flags) {
- SetLineBuffer(dest);
+ SetLineBuffer(dest)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
// TODO(pwbug/218): Add iterator support.
diff --git a/pw_i2c/register_device.cc b/pw_i2c/register_device.cc
index cae58ce..07742dc 100644
--- a/pw_i2c/register_device.cc
+++ b/pw_i2c/register_device.cc
@@ -110,7 +110,8 @@
break;
case 4:
- PutRegisterData32InByteBuilder(builder, register_data, order_);
+ PutRegisterData32InByteBuilder(builder, register_data, order_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
default:
diff --git a/pw_kvs/alignment_test.cc b/pw_kvs/alignment_test.cc
index fca1a7f..71d1a8e 100644
--- a/pw_kvs/alignment_test.cc
+++ b/pw_kvs/alignment_test.cc
@@ -175,7 +175,8 @@
{
AlignedWriterBuffer<64> writer(3, output);
- writer.Write(std::as_bytes(std::span("What is this?")));
+ writer.Write(std::as_bytes(std::span("What is this?")))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(called_with_bytes, 0u); // Buffer not full; no output yet.
}
@@ -211,12 +212,13 @@
{
AlignedWriterBuffer<4> writer(3, output);
- writer.Write(std::as_bytes(std::span("Everything is fine.")));
+ writer.Write(std::as_bytes(std::span("Everything is fine.")))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
output.state = OutputWithErrorInjection::kBreakOnNext;
EXPECT_EQ(Status::Unknown(),
writer.Write(std::as_bytes(std::span("No more writes, okay?")))
.status());
- writer.Flush();
+ writer.Flush().IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
diff --git a/pw_kvs/fake_flash_test_key_value_store.cc b/pw_kvs/fake_flash_test_key_value_store.cc
index 49a22cd..ad06439 100644
--- a/pw_kvs/fake_flash_test_key_value_store.cc
+++ b/pw_kvs/fake_flash_test_key_value_store.cc
@@ -68,7 +68,7 @@
KeyValueStore& TestKvs() {
if (!test_kvs.initialized()) {
- test_kvs.Init();
+ test_kvs.Init().IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
return test_kvs;
diff --git a/pw_kvs/key_value_store.cc b/pw_kvs/key_value_store.cc
index 56d706c..2917a79 100644
--- a/pw_kvs/key_value_store.cc
+++ b/pw_kvs/key_value_store.cc
@@ -462,7 +462,8 @@
Entry entry;
if (kvs_.ReadEntry(*iterator_, entry).ok()) {
- entry.ReadKey(key_buffer_);
+ entry.ReadKey(key_buffer_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
@@ -1207,7 +1208,8 @@
INF("Starting KVS repair");
DBG("Reinitialize KVS metadata");
- InitializeMetadata();
+ InitializeMetadata()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return FixErrors();
}
diff --git a/pw_kvs/key_value_store_binary_format_test.cc b/pw_kvs/key_value_store_binary_format_test.cc
index 1fb046a..dbaf44b 100644
--- a/pw_kvs/key_value_store_binary_format_test.cc
+++ b/pw_kvs/key_value_store_binary_format_test.cc
@@ -177,7 +177,8 @@
kvs_(&partition_, default_format, kNoGcOptions) {}
void InitFlashTo(std::span<const byte> contents) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memcpy(flash_.buffer().data(), contents.data(), contents.size());
}
@@ -385,7 +386,8 @@
kRecoveryNoGcOptions) {}
void InitFlashTo(std::span<const byte> contents) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memcpy(flash_.buffer().data(), contents.data(), contents.size());
}
@@ -642,7 +644,8 @@
{.magic = kNoChecksumMagic, .checksum = nullptr},
}},
kRecoveryNoGcOptions) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memcpy(flash_.buffer().data(),
kInitialContents.data(),
kInitialContents.size());
@@ -880,7 +883,8 @@
{.magic = kNoChecksumMagic, .checksum = nullptr},
}},
kRecoveryNoGcOptions) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memcpy(flash_.buffer().data(),
kInitialContents.data(),
kInitialContents.size());
@@ -933,7 +937,8 @@
kvs_(&partition_,
{.magic = kMagic, .checksum = &default_checksum},
kRecoveryLazyGcOptions) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memcpy(flash_.buffer().data(),
kInitialContents.data(),
kInitialContents.size());
@@ -1025,7 +1030,8 @@
kvs_(&partition_,
{.magic = kMagic, .checksum = &default_checksum},
kRecoveryLazyGcOptions) {
- partition_.Erase();
+ partition_.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memcpy(flash_.buffer().data(),
kInitialContents.data(),
kInitialContents.size());
diff --git a/pw_kvs/key_value_store_fuzz_test.cc b/pw_kvs/key_value_store_fuzz_test.cc
index aaa7a34..d35a128 100644
--- a/pw_kvs/key_value_store_fuzz_test.cc
+++ b/pw_kvs/key_value_store_fuzz_test.cc
@@ -44,7 +44,8 @@
TEST(KvsFuzz, FuzzTest) {
FlashPartition& test_partition = FlashTestPartition();
- test_partition.Erase();
+ test_partition.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
KeyValueStoreBuffer<kMaxEntries, kMaxUsableSectors> kvs_(&test_partition,
default_format);
diff --git a/pw_kvs/key_value_store_initialized_test.cc b/pw_kvs/key_value_store_initialized_test.cc
index 1b1f820..9a840e7 100644
--- a/pw_kvs/key_value_store_initialized_test.cc
+++ b/pw_kvs/key_value_store_initialized_test.cc
@@ -82,7 +82,8 @@
class EmptyInitializedKvs : public ::testing::Test {
protected:
EmptyInitializedKvs() : kvs_(&test_partition, default_format) {
- test_partition.Erase();
+ test_partition.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
ASSERT_EQ(OkStatus(), kvs_.Init());
}
@@ -440,7 +441,8 @@
EXPECT_EQ(test2, value2);
// Delete other key
- kvs_.Delete(keys[1]);
+ kvs_.Delete(keys[1])
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Verify it was erased
EXPECT_EQ(kvs_.size(), 0u);
diff --git a/pw_kvs/key_value_store_map_test.cc b/pw_kvs/key_value_store_map_test.cc
index 947a3fa..4139928 100644
--- a/pw_kvs/key_value_store_map_test.cc
+++ b/pw_kvs/key_value_store_map_test.cc
@@ -166,7 +166,8 @@
label << ((options == kReinitWithPartialGC) ? "PartialGC" : "");
label << ((kvs_.redundancy() > 1) ? "Redundant" : "");
- partition_.SaveStorageStats(kvs_, label.data());
+ partition_.SaveStorageStats(kvs_, label.data())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
diff --git a/pw_kvs/key_value_store_put_test.cc b/pw_kvs/key_value_store_put_test.cc
index 5c9c97c..01c6d21 100644
--- a/pw_kvs/key_value_store_put_test.cc
+++ b/pw_kvs/key_value_store_put_test.cc
@@ -45,7 +45,8 @@
// human readable 4 bytes. See pw_kvs/format.h for more information.
EmptyInitializedKvs()
: kvs_(&test_partition, {.magic = 0x873a9b50, .checksum = &checksum}) {
- test_partition.Erase(0, test_partition.sector_count());
+ test_partition.Erase(0, test_partition.sector_count())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
ASSERT_EQ(OkStatus(), kvs_.Init());
}
@@ -70,7 +71,8 @@
}
}
- test_partition.SaveStorageStats(kvs_, "Put_VaryingKeysAndValues");
+ test_partition.SaveStorageStats(kvs_, "Put_VaryingKeysAndValues")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
} // namespace
diff --git a/pw_kvs/key_value_store_test.cc b/pw_kvs/key_value_store_test.cc
index 2926cce..375596e 100644
--- a/pw_kvs/key_value_store_test.cc
+++ b/pw_kvs/key_value_store_test.cc
@@ -204,7 +204,8 @@
sizeof(fname_buf),
"WriteOneKeyMultipleTimes_%d.bin",
reload);
- flash.Dump(fname_buf);
+ flash.Dump(fname_buf)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
@@ -233,7 +234,8 @@
EXPECT_OK(kvs.Put(key.view(), value));
EXPECT_EQ(kvs.size(), i + 1);
}
- flash.Dump("WritingMultipleKeysIncreasesSize.bin");
+ flash.Dump("WritingMultipleKeysIncreasesSize.bin")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
TEST(InMemoryKvs, WriteAndReadOneKey) {
diff --git a/pw_kvs/key_value_store_wear_test.cc b/pw_kvs/key_value_store_wear_test.cc
index 4110c16..94bb042 100644
--- a/pw_kvs/key_value_store_wear_test.cc
+++ b/pw_kvs/key_value_store_wear_test.cc
@@ -73,7 +73,8 @@
EXPECT_GE(partition_.min_erase_count(), 7u);
EXPECT_LE(partition_.max_erase_count(), partition_.min_erase_count() + 1u);
- partition_.SaveStorageStats(kvs_, "WearTest RepeatedLargeEntry");
+ partition_.SaveStorageStats(kvs_, "WearTest RepeatedLargeEntry")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
// Test a KVS with a number of entries, several sectors that are nearly full
diff --git a/pw_kvs/public/pw_kvs/alignment.h b/pw_kvs/public/pw_kvs/alignment.h
index e86ec73..4965895 100644
--- a/pw_kvs/public/pw_kvs/alignment.h
+++ b/pw_kvs/public/pw_kvs/alignment.h
@@ -59,7 +59,9 @@
// TODO(hepler): Add DCHECK to ensure that buffer.size() >= alignment_bytes.
}
- ~AlignedWriter() { Flush(); }
+ ~AlignedWriter() {
+ Flush().IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ }
// Writes bytes to the AlignedWriter. The output may be called if the internal
// buffer is filled.
diff --git a/pw_kvs/public/pw_kvs/checksum.h b/pw_kvs/public/pw_kvs/checksum.h
index 7624e39..9b6a3be 100644
--- a/pw_kvs/public/pw_kvs/checksum.h
+++ b/pw_kvs/public/pw_kvs/checksum.h
@@ -90,7 +90,10 @@
template <size_t kAlignmentBytes, size_t kBufferSize = kAlignmentBytes>
class AlignedChecksum : public ChecksumAlgorithm {
public:
- void Update(std::span<const std::byte> data) final { writer_.Write(data); }
+ void Update(std::span<const std::byte> data) final {
+ writer_.Write(data)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ }
protected:
constexpr AlignedChecksum(std::span<const std::byte> state)
@@ -104,7 +107,7 @@
static_assert(kBufferSize >= kAlignmentBytes);
void Finalize() final {
- writer_.Flush();
+ writer_.Flush().IgnoreError(); // TODO(pwbug/387): Handle Status properly
FinalizeAligned();
}
diff --git a/pw_kvs/size_report/base_with_only_flash.cc b/pw_kvs/size_report/base_with_only_flash.cc
index 8e8ef68..ab1fcbd 100644
--- a/pw_kvs/size_report/base_with_only_flash.cc
+++ b/pw_kvs/size_report/base_with_only_flash.cc
@@ -39,17 +39,21 @@
std::memset((void*)working_buffer, 0x55, sizeof(working_buffer));
is_set = (result != nullptr);
- test_partition.Erase();
+ test_partition.Erase()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memset((void*)working_buffer, 0x55, sizeof(working_buffer));
- test_partition.Write(0, std::as_bytes(std::span(working_buffer)));
+ test_partition.Write(0, std::as_bytes(std::span(working_buffer)))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
bool tmp_bool;
- test_partition.IsErased(&tmp_bool);
+ test_partition.IsErased(&tmp_bool)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
is_erased = tmp_bool;
- test_partition.Read(0, as_writable_bytes(std::span(working_buffer)));
+ test_partition.Read(0, as_writable_bytes(std::span(working_buffer)))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return 0;
}
diff --git a/pw_kvs/size_report/with_kvs.cc b/pw_kvs/size_report/with_kvs.cc
index d414665..fccbab5 100644
--- a/pw_kvs/size_report/with_kvs.cc
+++ b/pw_kvs/size_report/with_kvs.cc
@@ -49,15 +49,17 @@
std::memset((void*)working_buffer, 0x55, sizeof(working_buffer));
is_set = (result != nullptr);
- kvs.Init();
+ kvs.Init().IgnoreError(); // TODO(pwbug/387): Handle Status properly
unsigned kvs_value = 42;
- kvs.Put("example_key", kvs_value);
+ kvs.Put("example_key", kvs_value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
kvs_entry_count = kvs.size();
unsigned read_value = 0;
- kvs.Get("example_key", &read_value);
+ kvs.Get("example_key", &read_value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return 0;
}
diff --git a/pw_log/proto_utils.cc b/pw_log/proto_utils.cc
index e4aef14..8e07883 100644
--- a/pw_log/proto_utils.cc
+++ b/pw_log/proto_utils.cc
@@ -28,14 +28,19 @@
// Encode message to the LogEntry protobuf.
LogEntry::MemoryEncoder encoder(encode_buffer);
- encoder.WriteMessage(tokenized_data);
- encoder.WriteLineLevel(
- (metadata.level() & PW_LOG_LEVEL_BITMASK) |
- ((metadata.line_number() << PW_LOG_LEVEL_BITS) & ~PW_LOG_LEVEL_BITMASK));
+ encoder.WriteMessage(tokenized_data)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ encoder
+ .WriteLineLevel((metadata.level() & PW_LOG_LEVEL_BITMASK) |
+ ((metadata.line_number() << PW_LOG_LEVEL_BITS) &
+ ~PW_LOG_LEVEL_BITMASK))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
if (metadata.flags() != 0) {
- encoder.WriteFlags(metadata.flags());
+ encoder.WriteFlags(metadata.flags())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
- encoder.WriteTimestamp(ticks_since_epoch);
+ encoder.WriteTimestamp(ticks_since_epoch)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
PW_TRY(encoder.status());
return ConstByteSpan(encoder);
diff --git a/pw_log_basic/log_basic.cc b/pw_log_basic/log_basic.cc
index 88fd527..71a6197 100644
--- a/pw_log_basic/log_basic.cc
+++ b/pw_log_basic/log_basic.cc
@@ -84,7 +84,8 @@
#endif // PW_LOG_SHOW_FILENAME
void (*write_log)(std::string_view) = [](std::string_view log) {
- sys_io::WriteLine(log);
+ sys_io::WriteLine(log)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
};
} // namespace
diff --git a/pw_log_rpc/logs_rpc_test.cc b/pw_log_rpc/logs_rpc_test.cc
index 2779104..6829316 100644
--- a/pw_log_rpc/logs_rpc_test.cc
+++ b/pw_log_rpc/logs_rpc_test.cc
@@ -68,7 +68,9 @@
// Flush all logs from the buffer, then close the RPC.
AddLogs(kLogEntryCount);
- GetLogs(context).Flush();
+ GetLogs(context)
+ .Flush()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
GetLogs(context).Finish();
EXPECT_TRUE(context.done());
@@ -89,7 +91,9 @@
for (size_t i = 0; i < kFlushCount; i++) {
AddLogs(kLogEntryCount);
- GetLogs(context).Flush();
+ GetLogs(context)
+ .Flush()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
GetLogs(context).Finish();
@@ -104,7 +108,9 @@
// Invoking flush with no logs in the queue should behave like a no-op.
context.call(rpc_buffer);
- GetLogs(context).Flush();
+ GetLogs(context)
+ .Flush()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
GetLogs(context).Finish();
EXPECT_TRUE(context.done());
@@ -120,7 +126,9 @@
// Generate failure on log queue.
log_queue_tester.SetPopStatus(Status::Internal());
context.call(rpc_buffer);
- GetLogs(context).Flush();
+ GetLogs(context)
+ .Flush()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
GetLogs(context).Finish();
EXPECT_TRUE(context.done());
diff --git a/pw_log_rpc/public/pw_log_rpc/logs_rpc.h b/pw_log_rpc/public/pw_log_rpc/logs_rpc.h
index 71a56dc..a6fef55 100644
--- a/pw_log_rpc/public/pw_log_rpc/logs_rpc.h
+++ b/pw_log_rpc/public/pw_log_rpc/logs_rpc.h
@@ -41,7 +41,10 @@
// Interface for the owner of the service instance to close the RPC, if
// one is attached.
- void Finish() { response_writer_.Finish(); }
+ void Finish() {
+ response_writer_.Finish()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ }
private:
LogQueue& log_queue_;
diff --git a/pw_multisink/public/pw_multisink/multisink.h b/pw_multisink/public/pw_multisink/multisink.h
index c467cb7..f7a9b26 100644
--- a/pw_multisink/public/pw_multisink/multisink.h
+++ b/pw_multisink/public/pw_multisink/multisink.h
@@ -214,7 +214,8 @@
// Constructs a multisink using a ring buffer backed by the provided buffer.
MultiSink(ByteSpan buffer) : ring_buffer_(true), sequence_id_(0) {
- ring_buffer_.SetBuffer(buffer);
+ ring_buffer_.SetBuffer(buffer)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
AttachDrain(oldest_entry_drain_);
}
diff --git a/pw_persistent_ram/persistent_buffer_test.cc b/pw_persistent_ram/persistent_buffer_test.cc
index cf72fc2..38c4fe9 100644
--- a/pw_persistent_ram/persistent_buffer_test.cc
+++ b/pw_persistent_ram/persistent_buffer_test.cc
@@ -59,7 +59,8 @@
auto writer = persistent.GetWriter();
EXPECT_EQ(persistent.size(), 0u);
- writer.Write(std::as_bytes(std::span(&kExpectedNumber, 1)));
+ writer.Write(std::as_bytes(std::span(&kExpectedNumber, 1)))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
ASSERT_TRUE(persistent.has_value());
persistent.~PersistentBuffer(); // Emulate shutdown / global destructors.
@@ -88,12 +89,15 @@
auto writer = persistent.GetWriter();
for (size_t i = 0; i < kTestString.length(); i += kWriteSize) {
- writer.Write(kTestString.data() + i,
- std::min(kWriteSize, kTestString.length() - i));
+ writer
+ .Write(kTestString.data() + i,
+ std::min(kWriteSize, kTestString.length() - i))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
// Need to manually write a null terminator since std::string_view doesn't
// include one in the string length.
- writer.Write(std::byte(0));
+ writer.Write(std::byte(0))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
persistent.~PersistentBuffer(); // Emulate shutdown / global destructors.
}
@@ -129,7 +133,8 @@
EXPECT_EQ(persistent.size(), 0u);
// Write an integer.
- writer.Write(std::as_bytes(std::span(&kTestNumber, 1)));
+ writer.Write(std::as_bytes(std::span(&kTestNumber, 1)))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
ASSERT_TRUE(persistent.has_value());
persistent.~PersistentBuffer(); // Emulate shutdown / global destructors.
@@ -143,7 +148,8 @@
// Write more data.
auto writer = persistent.GetWriter();
EXPECT_EQ(persistent.size(), sizeof(kTestNumber));
- writer.Write(std::as_bytes(std::span<const char>(kTestString)));
+ writer.Write(std::as_bytes(std::span<const char>(kTestString)))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
persistent.~PersistentBuffer(); // Emulate shutdown / global destructors.
}
diff --git a/pw_protobuf/codegen_test.cc b/pw_protobuf/codegen_test.cc
index 1f9a430..b1cc7da 100644
--- a/pw_protobuf/codegen_test.cc
+++ b/pw_protobuf/codegen_test.cc
@@ -41,35 +41,47 @@
stream::MemoryWriter writer(encode_buffer);
Pigweed::StreamEncoder pigweed(writer, temp_buffer);
- pigweed.WriteMagicNumber(73);
- pigweed.WriteZiggy(-111);
- pigweed.WriteErrorMessage("not a typewriter");
- pigweed.WriteBin(Pigweed::Protobuf::Binary::ZERO);
+ pigweed.WriteMagicNumber(73)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ pigweed.WriteZiggy(-111)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ pigweed.WriteErrorMessage("not a typewriter")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ pigweed.WriteBin(Pigweed::Protobuf::Binary::ZERO)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
{
Pigweed::Pigweed::StreamEncoder pigweed_pigweed =
pigweed.GetPigweedEncoder();
- pigweed_pigweed.WriteStatus(Bool::FILE_NOT_FOUND);
+ pigweed_pigweed.WriteStatus(Bool::FILE_NOT_FOUND)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
ASSERT_EQ(pigweed_pigweed.status(), OkStatus());
}
{
Proto::StreamEncoder proto = pigweed.GetProtoEncoder();
- proto.WriteBin(Proto::Binary::OFF);
- proto.WritePigweedPigweedBin(Pigweed::Pigweed::Binary::ZERO);
- proto.WritePigweedProtobufBin(Pigweed::Protobuf::Binary::ZERO);
+ proto.WriteBin(Proto::Binary::OFF)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ proto.WritePigweedPigweedBin(Pigweed::Pigweed::Binary::ZERO)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ proto.WritePigweedProtobufBin(Pigweed::Protobuf::Binary::ZERO)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
{
Pigweed::Protobuf::Compiler::StreamEncoder meta = proto.GetMetaEncoder();
- meta.WriteFileName("/etc/passwd");
- meta.WriteStatus(Pigweed::Protobuf::Compiler::Status::FUBAR);
+ meta.WriteFileName("/etc/passwd")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ meta.WriteStatus(Pigweed::Protobuf::Compiler::Status::FUBAR)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
{
Pigweed::StreamEncoder nested_pigweed = proto.GetPigweedEncoder();
- nested_pigweed.WriteErrorMessage("here we go again");
- nested_pigweed.WriteMagicNumber(616);
+ nested_pigweed.WriteErrorMessage("here we go again")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ nested_pigweed.WriteMagicNumber(616)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
{
DeviceInfo::StreamEncoder device_info =
@@ -78,25 +90,31 @@
{
KeyValuePair::StreamEncoder attributes =
device_info.GetAttributesEncoder();
- attributes.WriteKey("version");
- attributes.WriteValue("5.3.1");
+ attributes.WriteKey("version")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ attributes.WriteValue("5.3.1")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
{
KeyValuePair::StreamEncoder attributes =
device_info.GetAttributesEncoder();
- attributes.WriteKey("chip");
- attributes.WriteValue("left-soc");
+ attributes.WriteKey("chip")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ attributes.WriteValue("left-soc")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
- device_info.WriteStatus(DeviceInfo::DeviceStatus::PANIC);
+ device_info.WriteStatus(DeviceInfo::DeviceStatus::PANIC)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
}
for (int i = 0; i < 5; ++i) {
Proto::ID::StreamEncoder id = pigweed.GetIdEncoder();
- id.WriteId(5 * i * i + 3 * i + 49);
+ id.WriteId(5 * i * i + 3 * i + 49)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
// clang-format off
@@ -185,18 +203,22 @@
std::byte encode_buffer[512];
Crate::MemoryEncoder biggest_crate(encode_buffer);
- biggest_crate.WriteName("Huge crate");
+ biggest_crate.WriteName("Huge crate")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
{
Crate::StreamEncoder medium_crate = biggest_crate.GetSmallerCratesEncoder();
- medium_crate.WriteName("Medium crate");
+ medium_crate.WriteName("Medium crate")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
{
Crate::StreamEncoder small_crate = medium_crate.GetSmallerCratesEncoder();
- small_crate.WriteName("Small crate");
+ small_crate.WriteName("Small crate")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
{
Crate::StreamEncoder tiny_crate = medium_crate.GetSmallerCratesEncoder();
- tiny_crate.WriteName("Tiny crate");
+ tiny_crate.WriteName("Tiny crate")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
@@ -232,7 +254,8 @@
stream::MemoryWriter writer(encode_buffer);
RepeatedTest::StreamEncoder repeated_test(writer, ByteSpan());
for (int i = 0; i < 4; ++i) {
- repeated_test.WriteUint32s(i * 16);
+ repeated_test.WriteUint32s(i * 16)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
constexpr uint8_t expected_proto[] = {
@@ -251,7 +274,8 @@
stream::MemoryWriter writer(encode_buffer);
RepeatedTest::StreamEncoder repeated_test(writer, ByteSpan());
constexpr uint32_t values[] = {0, 16, 32, 48};
- repeated_test.WriteUint32s(values);
+ repeated_test.WriteUint32s(values)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
constexpr uint8_t expected_proto[] = {0x0a, 0x04, 0x00, 0x10, 0x20, 0x30};
ConstByteSpan result = writer.WrittenData();
@@ -268,7 +292,8 @@
RepeatedTest::StreamEncoder repeated_test(writer, ByteSpan());
constexpr const char* strings[] = {"the", "quick", "brown", "fox"};
for (const char* s : strings) {
- repeated_test.WriteStrings(s);
+ repeated_test.WriteStrings(s)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
constexpr uint8_t expected_proto[] = {
@@ -287,8 +312,10 @@
RepeatedTest::MemoryEncoder repeated_test(encode_buffer);
for (int i = 0; i < 3; ++i) {
auto structs = repeated_test.GetStructsEncoder();
- structs.WriteOne(i * 1);
- structs.WriteTwo(i * 2);
+ structs.WriteOne(i * 1)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ structs.WriteTwo(i * 2)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
// clang-format off
@@ -308,13 +335,14 @@
std::byte encode_buffer[64];
Foo::MemoryEncoder foo(encode_buffer);
- foo.WriteInt(3);
+ foo.WriteInt(3).IgnoreError(); // TODO(pwbug/387): Handle Status properly
{
constexpr std::byte data[] = {
std::byte(0xde), std::byte(0xad), std::byte(0xbe), std::byte(0xef)};
Bar::StreamEncoder bar = foo.GetBarEncoder();
- bar.WriteData(data);
+ bar.WriteData(data)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
constexpr uint8_t expected_proto[] = {
@@ -333,14 +361,18 @@
Period::MemoryEncoder period(encode_buffer);
{
imported::Timestamp::StreamEncoder start = period.GetStartEncoder();
- start.WriteSeconds(1589501793);
- start.WriteNanoseconds(511613110);
+ start.WriteSeconds(1589501793)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ start.WriteNanoseconds(511613110)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
{
imported::Timestamp::StreamEncoder end = period.GetEndEncoder();
- end.WriteSeconds(1589501841);
- end.WriteNanoseconds(490367432);
+ end.WriteSeconds(1589501841)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ end.WriteNanoseconds(490367432)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
EXPECT_EQ(period.status(), OkStatus());
@@ -352,8 +384,10 @@
std::array<const int64_t, 2> repeated = {0, 1};
stream::MemoryWriter writer(encode_buffer);
Packed::StreamEncoder packed(writer, ByteSpan());
- packed.WriteRep(std::span<const int64_t>(repeated));
- packed.WritePacked("packed");
+ packed.WriteRep(std::span<const int64_t>(repeated))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ packed.WritePacked("packed")
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(packed.status(), OkStatus());
}
diff --git a/pw_protobuf/decoder_test.cc b/pw_protobuf/decoder_test.cc
index c77e990..90d644a 100644
--- a/pw_protobuf/decoder_test.cc
+++ b/pw_protobuf/decoder_test.cc
@@ -28,22 +28,28 @@
switch (field_number) {
case 1:
- decoder.ReadInt32(&test_int32);
+ decoder.ReadInt32(&test_int32)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case 2:
- decoder.ReadSint32(&test_sint32);
+ decoder.ReadSint32(&test_sint32)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case 3:
- decoder.ReadBool(&test_bool);
+ decoder.ReadBool(&test_bool)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case 4:
- decoder.ReadDouble(&test_double);
+ decoder.ReadDouble(&test_double)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case 5:
- decoder.ReadFixed32(&test_fixed32);
+ decoder.ReadFixed32(&test_fixed32)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case 6:
- decoder.ReadString(&str);
+ decoder.ReadString(&str)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
std::memcpy(test_string, str.data(), str.size());
test_string[str.size()] = '\0';
break;
diff --git a/pw_protobuf/encoder.cc b/pw_protobuf/encoder.cc
index c98ce85..6dac677f 100644
--- a/pw_protobuf/encoder.cc
+++ b/pw_protobuf/encoder.cc
@@ -112,15 +112,18 @@
PW_TRY(UpdateStatusForWrite(
field_number, WireType::kVarint, varint::EncodedSize(value)));
- WriteVarint(MakeKey(field_number, WireType::kVarint));
+ WriteVarint(MakeKey(field_number, WireType::kVarint))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return WriteVarint(value);
}
Status StreamEncoder::WriteLengthDelimitedField(uint32_t field_number,
ConstByteSpan data) {
PW_TRY(UpdateStatusForWrite(field_number, WireType::kDelimited, data.size()));
- WriteVarint(MakeKey(field_number, WireType::kDelimited));
- WriteVarint(data.size_bytes());
+ WriteVarint(MakeKey(field_number, WireType::kDelimited))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ WriteVarint(data.size_bytes())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
if (Status status = writer_.Write(data); !status.ok()) {
status_ = status;
}
@@ -133,7 +136,8 @@
PW_TRY(UpdateStatusForWrite(field_number, type, data.size()));
- WriteVarint(MakeKey(field_number, type));
+ WriteVarint(MakeKey(field_number, type))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
if (Status status = writer_.Write(data); !status.ok()) {
status_ = status;
}
@@ -174,8 +178,10 @@
PW_TRY(UpdateStatusForWrite(
field_number, WireType::kDelimited, values.size_bytes()));
- WriteVarint(MakeKey(field_number, WireType::kDelimited));
- WriteVarint(values.size_bytes());
+ WriteVarint(MakeKey(field_number, WireType::kDelimited))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ WriteVarint(values.size_bytes())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
for (auto val_start = values.begin(); val_start != values.end();
val_start += elem_size) {
diff --git a/pw_protobuf/encoder_fuzzer.cc b/pw_protobuf/encoder_fuzzer.cc
index 34cab1f..d8e5760 100644
--- a/pw_protobuf/encoder_fuzzer.cc
+++ b/pw_protobuf/encoder_fuzzer.cc
@@ -150,112 +150,166 @@
while (provider.remaining_bytes() != 0) {
switch (provider.ConsumeEnum<FieldType>()) {
case kUint32:
- encoder.WriteUint32(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeIntegral<uint32_t>());
+ encoder
+ .WriteUint32(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeIntegral<uint32_t>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedUint32:
- encoder.WritePackedUint32(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<uint32_t>(&provider, &u32s));
+ encoder
+ .WritePackedUint32(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<uint32_t>(&provider, &u32s))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kUint64:
- encoder.WriteUint64(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeIntegral<uint64_t>());
+ encoder
+ .WriteUint64(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeIntegral<uint64_t>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedUint64:
- encoder.WritePackedUint64(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<uint64_t>(&provider, &u64s));
+ encoder
+ .WritePackedUint64(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<uint64_t>(&provider, &u64s))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kInt32:
- encoder.WriteInt32(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeIntegral<int32_t>());
+ encoder
+ .WriteInt32(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeIntegral<int32_t>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedInt32:
- encoder.WritePackedInt32(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<int32_t>(&provider, &s32s));
+ encoder
+ .WritePackedInt32(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<int32_t>(&provider, &s32s))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kInt64:
- encoder.WriteInt64(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeIntegral<int64_t>());
+ encoder
+ .WriteInt64(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeIntegral<int64_t>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedInt64:
- encoder.WritePackedInt64(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<int64_t>(&provider, &s64s));
+ encoder
+ .WritePackedInt64(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<int64_t>(&provider, &s64s))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kSint32:
- encoder.WriteSint32(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeIntegral<int32_t>());
+ encoder
+ .WriteSint32(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeIntegral<int32_t>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedSint32:
- encoder.WritePackedSint32(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<int32_t>(&provider, &s32s));
+ encoder
+ .WritePackedSint32(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<int32_t>(&provider, &s32s))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kSint64:
- encoder.WriteSint64(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeIntegral<int64_t>());
+ encoder
+ .WriteSint64(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeIntegral<int64_t>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedSint64:
- encoder.WritePackedSint64(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<int64_t>(&provider, &s64s));
+ encoder
+ .WritePackedSint64(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<int64_t>(&provider, &s64s))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kBool:
- encoder.WriteBool(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeBool());
+ encoder
+ .WriteBool(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeBool())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kFixed32:
- encoder.WriteFixed32(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeIntegral<uint32_t>());
+ encoder
+ .WriteFixed32(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeIntegral<uint32_t>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedFixed32:
- encoder.WritePackedFixed32(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<uint32_t>(&provider, &u32s));
+ encoder
+ .WritePackedFixed32(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<uint32_t>(&provider, &u32s))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kFixed64:
- encoder.WriteFixed64(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeIntegral<uint64_t>());
+ encoder
+ .WriteFixed64(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeIntegral<uint64_t>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedFixed64:
- encoder.WritePackedFixed64(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<uint64_t>(&provider, &u64s));
+ encoder
+ .WritePackedFixed64(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<uint64_t>(&provider, &u64s))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kSfixed32:
- encoder.WriteSfixed32(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeIntegral<int32_t>());
+ encoder
+ .WriteSfixed32(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeIntegral<int32_t>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedSfixed32:
- encoder.WritePackedSfixed32(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<int32_t>(&provider, &s32s));
+ encoder
+ .WritePackedSfixed32(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<int32_t>(&provider, &s32s))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kSfixed64:
- encoder.WriteSfixed64(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeIntegral<int64_t>());
+ encoder
+ .WriteSfixed64(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeIntegral<int64_t>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedSfixed64:
- encoder.WritePackedSfixed64(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<int64_t>(&provider, &s64s));
+ encoder
+ .WritePackedSfixed64(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<int64_t>(&provider, &s64s))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kFloat:
- encoder.WriteFloat(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeFloatingPoint<float>());
+ encoder
+ .WriteFloat(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeFloatingPoint<float>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedFloat:
- encoder.WritePackedFloat(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<float>(&provider, &floats));
+ encoder
+ .WritePackedFloat(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<float>(&provider, &floats))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kDouble:
- encoder.WriteDouble(provider.ConsumeIntegral<uint32_t>(),
- provider.ConsumeFloatingPoint<double>());
+ encoder
+ .WriteDouble(provider.ConsumeIntegral<uint32_t>(),
+ provider.ConsumeFloatingPoint<double>())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPackedDouble:
- encoder.WritePackedDouble(provider.ConsumeIntegral<uint32_t>(),
- ConsumeSpan<double>(&provider, &doubles));
+ encoder
+ .WritePackedDouble(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeSpan<double>(&provider, &doubles))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kBytes:
- encoder.WriteBytes(provider.ConsumeIntegral<uint32_t>(),
- ConsumeBytes(&provider, &bytes));
+ encoder
+ .WriteBytes(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeBytes(&provider, &bytes))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kString:
- encoder.WriteString(provider.ConsumeIntegral<uint32_t>(),
- ConsumeString(&provider, &strings));
+ encoder
+ .WriteString(provider.ConsumeIntegral<uint32_t>(),
+ ConsumeString(&provider, &strings))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case kPush:
// Special "field". The marks the start of a nested message.
@@ -265,7 +319,8 @@
// Special "field". this marks the end of a nested message. No attempt
// is made to match pushes to pops, in order to test that the encoder
// behaves correctly when they are mismatched.
- encoder.Finalize();
+ encoder.Finalize()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
}
}
diff --git a/pw_protobuf/encoder_test.cc b/pw_protobuf/encoder_test.cc
index 66d3730..b6bc1b2 100644
--- a/pw_protobuf/encoder_test.cc
+++ b/pw_protobuf/encoder_test.cc
@@ -254,7 +254,8 @@
// repeated uint32 values = 1;
constexpr uint32_t values[] = {0, 50, 100, 150, 200};
for (int i = 0; i < 5; ++i) {
- encoder.WriteUint32(1, values[i]);
+ encoder.WriteUint32(1, values[i])
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
constexpr uint8_t encoded_proto[] = {
@@ -273,7 +274,8 @@
// repeated uint32 values = 1;
constexpr uint32_t values[] = {0, 50, 100, 150, 200};
- encoder.WritePackedUint32(1, values);
+ encoder.WritePackedUint32(1, values)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
constexpr uint8_t encoded_proto[] = {
0x0a, 0x07, 0x00, 0x32, 0x64, 0x96, 0x01, 0xc8, 0x01};
@@ -291,7 +293,8 @@
MemoryEncoder encoder(encode_buffer);
constexpr uint32_t values[] = {0, 50, 100, 150, 200};
- encoder.WritePackedUint32(1, values);
+ encoder.WritePackedUint32(1, values)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(encoder.status(), Status::ResourceExhausted());
}
@@ -302,11 +305,13 @@
// repeated fixed32 values = 1;
constexpr uint32_t values[] = {0, 50, 100, 150, 200};
- encoder.WritePackedFixed32(1, values);
+ encoder.WritePackedFixed32(1, values)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// repeated fixed64 values64 = 2;
constexpr uint64_t values64[] = {0x0102030405060708};
- encoder.WritePackedFixed64(2, values64);
+ encoder.WritePackedFixed64(2, values64)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
constexpr uint8_t encoded_proto[] = {
0x0a, 0x14, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x64,
@@ -326,7 +331,8 @@
// repeated sint32 values = 1;
constexpr int32_t values[] = {-100, -25, -1, 0, 1, 25, 100};
- encoder.WritePackedSint32(1, values);
+ encoder.WritePackedSint32(1, values)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
constexpr uint8_t encoded_proto[] = {
0x0a, 0x09, 0xc7, 0x01, 0x31, 0x01, 0x00, 0x02, 0x32, 0xc8, 0x01};
@@ -389,7 +395,7 @@
MemoryEncoder parent(encode_buffer);
{
StreamEncoder child = parent.GetNestedEncoder(kTestProtoNestedField);
- child.Finalize();
+ child.Finalize().IgnoreError(); // TODO(pwbug/387): Handle Status properly
ASSERT_EQ(child.status(), Status::Unavailable());
}
}
diff --git a/pw_protobuf/find_test.cc b/pw_protobuf/find_test.cc
index 1dd4789..669e7d0 100644
--- a/pw_protobuf/find_test.cc
+++ b/pw_protobuf/find_test.cc
@@ -45,7 +45,8 @@
FindDecodeHandler finder(3);
decoder.set_handler(&finder);
- decoder.Decode(std::as_bytes(std::span(encoded_proto)));
+ decoder.Decode(std::as_bytes(std::span(encoded_proto)))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_TRUE(finder.found());
EXPECT_TRUE(decoder.cancelled());
@@ -56,7 +57,8 @@
FindDecodeHandler finder(8);
decoder.set_handler(&finder);
- decoder.Decode(std::as_bytes(std::span(encoded_proto)));
+ decoder.Decode(std::as_bytes(std::span(encoded_proto)))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_FALSE(finder.found());
EXPECT_FALSE(decoder.cancelled());
@@ -68,7 +70,8 @@
FindDecodeHandler finder(7, &nested_finder);
decoder.set_handler(&finder);
- decoder.Decode(std::as_bytes(std::span(encoded_proto)));
+ decoder.Decode(std::as_bytes(std::span(encoded_proto)))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_TRUE(finder.found());
EXPECT_TRUE(nested_finder.found());
@@ -81,7 +84,8 @@
FindDecodeHandler finder(7, &nested_finder);
decoder.set_handler(&finder);
- decoder.Decode(std::as_bytes(std::span(encoded_proto)));
+ decoder.Decode(std::as_bytes(std::span(encoded_proto)))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_TRUE(finder.found());
EXPECT_FALSE(nested_finder.found());
diff --git a/pw_protobuf/public/pw_protobuf/encoder.h b/pw_protobuf/public/pw_protobuf/encoder.h
index 7bb1877..457709f 100644
--- a/pw_protobuf/public/pw_protobuf/encoder.h
+++ b/pw_protobuf/public/pw_protobuf/encoder.h
@@ -78,7 +78,9 @@
parent_(nullptr),
nested_field_number_(0),
memory_writer_(scratch_buffer) {}
- ~StreamEncoder() { Finalize(); }
+ ~StreamEncoder() {
+ Finalize().IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ }
// Disallow copy/assign to avoid confusion about who owns the buffer.
StreamEncoder& operator=(const StreamEncoder& other) = delete;
@@ -88,7 +90,8 @@
// parent_ pointer to become invalid.
StreamEncoder& operator=(StreamEncoder&& other) = delete;
- // Forwards the conservative write limit of the underlying pw::stream::Writer.
+ // Forwards the conservative write limit of the underlying
+ // pw::stream::Writer.
//
// Precondition: Encoder has no active child encoder.
size_t ConservativeWriteLimit() const {
@@ -452,13 +455,17 @@
return status_;
}
- WriteVarint(MakeKey(field_number, WireType::kDelimited));
- WriteVarint(payload_size);
+ WriteVarint(MakeKey(field_number, WireType::kDelimited))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ WriteVarint(payload_size)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
for (T value : values) {
if (encode_type == VarintEncodeType::kZigZag) {
- WriteZigzagVarint(static_cast<std::make_signed_t<T>>(value));
+ WriteZigzagVarint(static_cast<std::make_signed_t<T>>(value))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
} else {
- WriteVarint(value);
+ WriteVarint(value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
@@ -530,7 +537,9 @@
class MemoryEncoder : public StreamEncoder {
public:
constexpr MemoryEncoder(ByteSpan dest) : StreamEncoder(*this, dest) {}
- ~MemoryEncoder() { Finalize(); }
+ ~MemoryEncoder() {
+ Finalize().IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ }
// Disallow copy/assign to avoid confusion about who owns the buffer.
MemoryEncoder(const MemoryEncoder& other) = delete;
diff --git a/pw_protobuf/varint_size_test.cc b/pw_protobuf/varint_size_test.cc
index d651cb7..d8e48df 100644
--- a/pw_protobuf/varint_size_test.cc
+++ b/pw_protobuf/varint_size_test.cc
@@ -31,7 +31,7 @@
StreamEncoder nested = encoder.GetNestedEncoder(1);
// 1 byte key + 1 byte size + 125 byte value = 127 byte nested length.
EXPECT_EQ(nested.WriteBytes(2, bytes::Initialized<125>(0xaa)), OkStatus());
- nested.Finalize();
+ nested.Finalize().IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(encoder.status(), OkStatus());
}
@@ -47,7 +47,7 @@
EXPECT_EQ(nested.WriteBytes(2, bytes::Initialized<126>(0xaa)),
Status::ResourceExhausted());
EXPECT_EQ(nested.WriteUint32(3, 42), Status::ResourceExhausted());
- nested.Finalize();
+ nested.Finalize().IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(encoder.status(), Status::ResourceExhausted());
}
@@ -64,7 +64,7 @@
EXPECT_EQ(nested.WriteBytes(3, bytes::Initialized<60>(0xaa)), OkStatus());
EXPECT_EQ(nested.WriteBytes(4, bytes::Initialized<60>(0xaa)),
Status::ResourceExhausted());
- nested.Finalize();
+ nested.Finalize().IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(encoder.status(), Status::ResourceExhausted());
}
diff --git a/pw_ring_buffer/prefixed_entry_ring_buffer.cc b/pw_ring_buffer/prefixed_entry_ring_buffer.cc
index f98a4d3..5596fd5 100644
--- a/pw_ring_buffer/prefixed_entry_ring_buffer.cc
+++ b/pw_ring_buffer/prefixed_entry_ring_buffer.cc
@@ -216,7 +216,8 @@
// Otherwise, pop the readers that have the largest value.
for (Reader& reader : readers_) {
if (reader.entry_count_ == entry_count) {
- reader.PopFront();
+ reader.PopFront()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
}
diff --git a/pw_ring_buffer/prefixed_entry_ring_buffer_test.cc b/pw_ring_buffer/prefixed_entry_ring_buffer_test.cc
index feb13e8..a372455 100644
--- a/pw_ring_buffer/prefixed_entry_ring_buffer_test.cc
+++ b/pw_ring_buffer/prefixed_entry_ring_buffer_test.cc
@@ -334,7 +334,8 @@
// wrapped.
for (i = 0; i < (kTotalEntryCount * (main_loop_count % 64u)); i++) {
memset(single_entry_buffer, i, sizeof(single_entry_buffer));
- ring.PushBack(single_entry_buffer);
+ ring.PushBack(single_entry_buffer)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
@@ -352,7 +353,8 @@
}
// The ring buffer internally pushes the varint size byte.
- ring.PushBack(single_entry_buffer);
+ ring.PushBack(single_entry_buffer)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
// Check values before doing the dering.
diff --git a/pw_ring_buffer/public/pw_ring_buffer/prefixed_entry_ring_buffer.h b/pw_ring_buffer/public/pw_ring_buffer/prefixed_entry_ring_buffer.h
index 2aefba4..3556773 100644
--- a/pw_ring_buffer/public/pw_ring_buffer/prefixed_entry_ring_buffer.h
+++ b/pw_ring_buffer/public/pw_ring_buffer/prefixed_entry_ring_buffer.h
@@ -476,7 +476,8 @@
public:
PrefixedEntryRingBuffer(bool user_preamble = false)
: PrefixedEntryRingBufferMulti(user_preamble) {
- AttachReader(*this);
+ AttachReader(*this)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
};
diff --git a/pw_ring_buffer/size_report/ring_buffer_multi.cc b/pw_ring_buffer/size_report/ring_buffer_multi.cc
index 1e2eb72..5570469 100644
--- a/pw_ring_buffer/size_report/ring_buffer_multi.cc
+++ b/pw_ring_buffer/size_report/ring_buffer_multi.cc
@@ -35,7 +35,8 @@
// Attach readers.
pw::ring_buffer::PrefixedEntryRingBufferMulti::Reader readers[kReaderCount];
for (auto& reader : readers) {
- ring.AttachReader(reader);
+ ring.AttachReader(reader)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
// Push entries until the buffer is full.
@@ -92,7 +93,8 @@
}
for (auto& reader : readers) {
- ring.DetachReader(reader);
+ ring.DetachReader(reader)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
ring.Clear();
return 0;
diff --git a/pw_rpc/base_client_call.cc b/pw_rpc/base_client_call.cc
index 3c5409a..103ae03 100644
--- a/pw_rpc/base_client_call.cc
+++ b/pw_rpc/base_client_call.cc
@@ -34,7 +34,9 @@
// If the call being assigned is active, replace it in the client's list
// with a reference to the current object.
other.Unregister();
- other.channel_->client()->RegisterCall(*this);
+ other.channel_->client()
+ ->RegisterCall(*this)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
return *this;
@@ -42,7 +44,8 @@
void BaseClientCall::Cancel() {
if (active()) {
- channel_->Send(NewPacket(PacketType::CANCEL));
+ channel_->Send(NewPacket(PacketType::CANCEL))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
@@ -69,7 +72,11 @@
return Packet(type, channel_->id(), service_id_, method_id_, payload);
}
-void BaseClientCall::Register() { channel_->client()->RegisterCall(*this); }
+void BaseClientCall::Register() {
+ channel_->client()
+ ->RegisterCall(*this)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+}
void BaseClientCall::Unregister() {
if (active()) {
diff --git a/pw_rpc/base_client_call_test.cc b/pw_rpc/base_client_call_test.cc
index b13a1e4..0930e95 100644
--- a/pw_rpc/base_client_call_test.cc
+++ b/pw_rpc/base_client_call_test.cc
@@ -97,7 +97,8 @@
[](BaseClientCall&, const Packet&) {});
constexpr std::byte payload[]{std::byte{0x08}, std::byte{0x39}};
- call.SendPacket(payload);
+ call.SendPacket(payload)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(context.output().packet_count(), 1u);
Packet packet = context.output().sent_packet();
diff --git a/pw_rpc/benchmark.cc b/pw_rpc/benchmark.cc
index ca20c78..7f5b93a 100644
--- a/pw_rpc/benchmark.cc
+++ b/pw_rpc/benchmark.cc
@@ -44,7 +44,8 @@
reader_writer_.set_on_next([this](ConstByteSpan request) {
Status status = reader_writer_.Write(request);
if (!status.ok()) {
- reader_writer_.Finish(status);
+ reader_writer_.Finish(status)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
});
}
diff --git a/pw_rpc/client.cc b/pw_rpc/client.cc
index b49a9a3..ead04c1 100644
--- a/pw_rpc/client.cc
+++ b/pw_rpc/client.cc
@@ -62,7 +62,8 @@
if (call == calls_.end()) {
PW_LOG_WARN("RPC client received a packet for a request it did not make");
- channel->Send(Packet::ClientError(packet, Status::FailedPrecondition()));
+ channel->Send(Packet::ClientError(packet, Status::FailedPrecondition()))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return Status::NotFound();
}
diff --git a/pw_rpc/packet.cc b/pw_rpc/packet.cc
index a6b98aa..7337b90 100644
--- a/pw_rpc/packet.cc
+++ b/pw_rpc/packet.cc
@@ -32,30 +32,36 @@
switch (field) {
case RpcPacket::Fields::TYPE: {
uint32_t value;
- decoder.ReadUint32(&value);
+ decoder.ReadUint32(&value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
packet.set_type(static_cast<PacketType>(value));
break;
}
case RpcPacket::Fields::CHANNEL_ID:
- decoder.ReadUint32(&packet.channel_id_);
+ decoder.ReadUint32(&packet.channel_id_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case RpcPacket::Fields::SERVICE_ID:
- decoder.ReadFixed32(&packet.service_id_);
+ decoder.ReadFixed32(&packet.service_id_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case RpcPacket::Fields::METHOD_ID:
- decoder.ReadFixed32(&packet.method_id_);
+ decoder.ReadFixed32(&packet.method_id_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case RpcPacket::Fields::PAYLOAD:
- decoder.ReadBytes(&packet.payload_);
+ decoder.ReadBytes(&packet.payload_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case RpcPacket::Fields::STATUS: {
uint32_t value;
- decoder.ReadUint32(&value);
+ decoder.ReadUint32(&value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
packet.set_status(static_cast<Status::Code>(value));
break;
}
@@ -74,18 +80,24 @@
// The payload is encoded first, as it may share the encode buffer.
if (!payload_.empty()) {
- rpc_packet.WritePayload(payload_);
+ rpc_packet.WritePayload(payload_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
- rpc_packet.WriteType(type_);
- rpc_packet.WriteChannelId(channel_id_);
- rpc_packet.WriteServiceId(service_id_);
- rpc_packet.WriteMethodId(method_id_);
+ rpc_packet.WriteType(type_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ rpc_packet.WriteChannelId(channel_id_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ rpc_packet.WriteServiceId(service_id_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ rpc_packet.WriteMethodId(method_id_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Status code 0 is OK. In protobufs, 0 is the default int value, so skip
// encoding it to save two bytes in the output.
if (status_.code() != 0) {
- rpc_packet.WriteStatus(status_.code());
+ rpc_packet.WriteStatus(status_.code())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
if (rpc_packet.status().ok()) {
diff --git a/pw_rpc/public/pw_rpc/channel.h b/pw_rpc/public/pw_rpc/channel.h
index 6394b55..d86649a 100644
--- a/pw_rpc/public/pw_rpc/channel.h
+++ b/pw_rpc/public/pw_rpc/channel.h
@@ -53,7 +53,8 @@
virtual Status SendAndReleaseBuffer(std::span<const std::byte> buffer) = 0;
void DiscardBuffer(std::span<const std::byte> buffer) {
- SendAndReleaseBuffer(buffer.first(0));
+ SendAndReleaseBuffer(buffer.first(0))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
private:
diff --git a/pw_rpc/public/pw_rpc/internal/responder.h b/pw_rpc/public/pw_rpc/internal/responder.h
index 52d4af0..09d5f08 100644
--- a/pw_rpc/public/pw_rpc/internal/responder.h
+++ b/pw_rpc/public/pw_rpc/internal/responder.h
@@ -48,7 +48,10 @@
public:
Responder(const Responder&) = delete;
- ~Responder() { CloseAndSendResponse(OkStatus()).IgnoreError(); }
+ ~Responder() {
+ CloseAndSendResponse(OkStatus())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ }
Responder& operator=(const Responder&) = delete;
@@ -60,8 +63,8 @@
uint32_t method_id() const;
// Closes the Responder and sends a RESPONSE packet, if it is open. Returns
- // the status from sending the packet, or FAILED_PRECONDITION if the Responder
- // is not open.
+ // the status from sending the packet, or FAILED_PRECONDITION if the
+ // Responder is not open.
Status CloseAndSendResponse(std::span<const std::byte> response,
Status status);
diff --git a/pw_rpc/public/pw_rpc/internal/test_method_context.h b/pw_rpc/public/pw_rpc/internal/test_method_context.h
index 1b23324..1b283c0 100644
--- a/pw_rpc/public/pw_rpc/internal/test_method_context.h
+++ b/pw_rpc/public/pw_rpc/internal/test_method_context.h
@@ -48,49 +48,57 @@
void SendClientError(Status error) {
std::byte packet[kNoPayloadPacketSizeBytes];
- server_.ProcessPacket(Packet(PacketType::CLIENT_ERROR,
- channel_.id(),
- service_.id(),
- kMethodId,
- {},
- error)
- .Encode(packet)
- .value(),
- output_);
+ server_
+ .ProcessPacket(Packet(PacketType::CLIENT_ERROR,
+ channel_.id(),
+ service_.id(),
+ kMethodId,
+ {},
+ error)
+ .Encode(packet)
+ .value(),
+ output_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
void SendCancel() {
std::byte packet[kNoPayloadPacketSizeBytes];
- server_.ProcessPacket(
- Packet(PacketType::CANCEL, channel_.id(), service_.id(), kMethodId)
- .Encode(packet)
- .value(),
- output_);
+ server_
+ .ProcessPacket(
+ Packet(PacketType::CANCEL, channel_.id(), service_.id(), kMethodId)
+ .Encode(packet)
+ .value(),
+ output_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
protected:
template <size_t kMaxPayloadSize = 32>
void SendClientStream(ConstByteSpan payload) {
std::byte packet[kNoPayloadPacketSizeBytes + 3 + kMaxPayloadSize];
- server_.ProcessPacket(Packet(PacketType::CLIENT_STREAM,
- channel_.id(),
- service_.id(),
- kMethodId,
- payload)
- .Encode(packet)
- .value(),
- output_);
+ server_
+ .ProcessPacket(Packet(PacketType::CLIENT_STREAM,
+ channel_.id(),
+ service_.id(),
+ kMethodId,
+ payload)
+ .Encode(packet)
+ .value(),
+ output_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
void SendClientStreamEnd() {
std::byte packet[kNoPayloadPacketSizeBytes];
- server_.ProcessPacket(Packet(PacketType::CLIENT_STREAM_END,
- channel_.id(),
- service_.id(),
- kMethodId)
- .Encode(packet)
- .value(),
- output_);
+ server_
+ .ProcessPacket(Packet(PacketType::CLIENT_STREAM_END,
+ channel_.id(),
+ service_.id(),
+ kMethodId)
+ .Encode(packet)
+ .value(),
+ output_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
template <typename... Args>
diff --git a/pw_rpc/raw/codegen_test.cc b/pw_rpc/raw/codegen_test.cc
index 889f863..6d7de57 100644
--- a/pw_rpc/raw/codegen_test.cc
+++ b/pw_rpc/raw/codegen_test.cc
@@ -26,8 +26,10 @@
Vector<std::byte, 64> buffer(64);
test::TestRequest::MemoryEncoder test_request(buffer);
- test_request.WriteInteger(integer);
- test_request.WriteStatusCode(status.code());
+ test_request.WriteInteger(integer)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_request.WriteStatusCode(status.code())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(OkStatus(), test_request.status());
buffer.resize(test_request.size());
@@ -38,7 +40,8 @@
Vector<std::byte, 64> buffer(64);
test::TestStreamResponse::MemoryEncoder test_response(buffer);
- test_response.WriteNumber(number);
+ test_response.WriteNumber(number)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(OkStatus(), test_response.status());
buffer.resize(test_response.size());
@@ -62,7 +65,8 @@
}
TestResponse::MemoryEncoder test_response(response);
- test_response.WriteValue(integer + 1);
+ test_response.WriteValue(integer + 1)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return StatusWithSize(status, test_response.size());
}
@@ -78,19 +82,24 @@
ByteSpan buffer = writer.PayloadBuffer();
TestStreamResponse::MemoryEncoder test_stream_response(buffer);
- test_stream_response.WriteNumber(i);
- writer.Write(test_stream_response);
+ test_stream_response.WriteNumber(i)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ writer.Write(test_stream_response)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
- writer.Finish(status);
+ writer.Finish(status)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
void TestClientStreamRpc(ServerContext&, RawServerReader& reader) {
last_reader_ = std::move(reader);
last_reader_.set_on_next([this](ConstByteSpan payload) {
- last_reader_.Finish(EncodeResponse(ReadInteger(payload)),
- Status::Unauthenticated());
+ last_reader_
+ .Finish(EncodeResponse(ReadInteger(payload)),
+ Status::Unauthenticated())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
});
}
@@ -99,8 +108,10 @@
last_reader_writer_ = std::move(reader_writer);
last_reader_writer_.set_on_next([this](ConstByteSpan payload) {
- last_reader_writer_.Write(EncodeResponse(ReadInteger(payload)));
- last_reader_writer_.Finish(Status::NotFound());
+ last_reader_writer_.Write(EncodeResponse(ReadInteger(payload)))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ last_reader_writer_.Finish(Status::NotFound())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
});
}
@@ -181,7 +192,8 @@
switch (static_cast<test::TestResponse::Fields>(decoder.FieldNumber())) {
case test::TestResponse::Fields::VALUE: {
int32_t value;
- decoder.ReadInt32(&value);
+ decoder.ReadInt32(&value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(value, 124);
break;
}
@@ -203,7 +215,8 @@
static_cast<test::TestStreamResponse::Fields>(decoder.FieldNumber())) {
case test::TestStreamResponse::Fields::NUMBER: {
int32_t value;
- decoder.ReadInt32(&value);
+ decoder.ReadInt32(&value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_EQ(value, 4);
break;
}
@@ -221,7 +234,8 @@
switch (
static_cast<test::TestStreamResponse::Fields>(decoder.FieldNumber())) {
case test::TestStreamResponse::Fields::NUMBER: {
- decoder.ReadInt32(&value);
+ decoder.ReadInt32(&value)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
}
default:
diff --git a/pw_rpc/raw/method.cc b/pw_rpc/raw/method.cc
index a86c2f1..bda16e0 100644
--- a/pw_rpc/raw/method.cc
+++ b/pw_rpc/raw/method.cc
@@ -40,7 +40,9 @@
PW_LOG_WARN("Failed to send response packet for channel %u",
unsigned(call.channel().id()));
- call.channel().Send(Packet::ServerError(request, Status::Internal()));
+ call.channel()
+ .Send(Packet::ServerError(request, Status::Internal()))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
void RawMethod::UnaryRequestInvoker(const Method& method,
diff --git a/pw_rpc/raw/method_test.cc b/pw_rpc/raw/method_test.cc
index 0a225ad..29770de 100644
--- a/pw_rpc/raw/method_test.cc
+++ b/pw_rpc/raw/method_test.cc
@@ -111,10 +111,12 @@
switch (field) {
case TestRequest::Fields::INTEGER:
- decoder.ReadInt64(&last_request.integer);
+ decoder.ReadInt64(&last_request.integer)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case TestRequest::Fields::STATUS_CODE:
- decoder.ReadUint32(&last_request.status_code);
+ decoder.ReadUint32(&last_request.status_code)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
}
}
@@ -126,7 +128,8 @@
DecodeRawTestRequest(request);
TestResponse::MemoryEncoder test_response(response);
- test_response.WriteValue(last_request.integer + 5);
+ test_response.WriteValue(last_request.integer + 5)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
ConstByteSpan payload(test_response);
return StatusWithSize::Unauthenticated(payload.size());
@@ -153,8 +156,10 @@
std::byte buffer[16];
stream::MemoryWriter writer(buffer);
TestRequest::StreamEncoder test_request(writer, ByteSpan());
- test_request.WriteInteger(456);
- test_request.WriteStatusCode(7);
+ test_request.WriteInteger(456)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_request.WriteStatusCode(7)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
const RawMethod& method = std::get<0>(FakeService::kMethods).raw_method();
ServerContextForTest<FakeService> context(method);
@@ -177,8 +182,10 @@
std::byte buffer[16];
stream::MemoryWriter writer(buffer);
TestRequest::StreamEncoder test_request(writer, ByteSpan());
- test_request.WriteInteger(777);
- test_request.WriteStatusCode(2);
+ test_request.WriteInteger(777)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_request.WriteStatusCode(2)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
const RawMethod& method = std::get<1>(FakeService::kMethods).raw_method();
ServerContextForTest<FakeService> context(method);
diff --git a/pw_rpc/raw/method_union_test.cc b/pw_rpc/raw/method_union_test.cc
index 5a7019b..a62b6ea 100644
--- a/pw_rpc/raw/method_union_test.cc
+++ b/pw_rpc/raw/method_union_test.cc
@@ -65,7 +65,8 @@
DecodeRawTestRequest(request);
TestResponse::MemoryEncoder test_response(response);
- test_response.WriteValue(last_request.integer + 5);
+ test_response.WriteValue(last_request.integer + 5)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
ConstByteSpan payload(test_response);
return StatusWithSize::Unauthenticated(payload.size());
@@ -88,10 +89,12 @@
switch (field) {
case TestRequest::Fields::INTEGER:
- decoder.ReadInt64(&last_request.integer);
+ decoder.ReadInt64(&last_request.integer)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case TestRequest::Fields::STATUS_CODE:
- decoder.ReadUint32(&last_request.status_code);
+ decoder.ReadUint32(&last_request.status_code)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
}
}
@@ -102,8 +105,10 @@
std::byte buffer[16];
TestRequest::MemoryEncoder test_request(buffer);
- test_request.WriteInteger(456);
- test_request.WriteStatusCode(7);
+ test_request.WriteInteger(456)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_request.WriteStatusCode(7)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
const Method& method =
std::get<1>(FakeGeneratedServiceImpl::kMethods).method();
@@ -127,8 +132,10 @@
std::byte buffer[16];
TestRequest::MemoryEncoder test_request(buffer);
- test_request.WriteInteger(777);
- test_request.WriteStatusCode(2);
+ test_request.WriteInteger(777)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_request.WriteStatusCode(2)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
const Method& method =
std::get<2>(FakeGeneratedServiceImpl::kMethods).method();
diff --git a/pw_rpc/raw/public/pw_rpc/raw/server_reader_writer.h b/pw_rpc/raw/public/pw_rpc/raw/server_reader_writer.h
index ed5d111..ee8b335 100644
--- a/pw_rpc/raw/public/pw_rpc/raw/server_reader_writer.h
+++ b/pw_rpc/raw/public/pw_rpc/raw/server_reader_writer.h
@@ -61,7 +61,10 @@
ByteSpan PayloadBuffer() { return AcquirePayloadBuffer(); }
// Releases a buffer acquired from PayloadBuffer() without sending any data.
- void ReleaseBuffer() { ReleasePayloadBuffer(); }
+ void ReleaseBuffer() {
+ ReleasePayloadBuffer()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ }
// Sends a response packet with the given raw payload. The payload can either
// be in the buffer previously acquired from PayloadBuffer(), or an arbitrary
diff --git a/pw_rpc/raw/server_reader_writer.cc b/pw_rpc/raw/server_reader_writer.cc
index 59f98ca..a39e979 100644
--- a/pw_rpc/raw/server_reader_writer.cc
+++ b/pw_rpc/raw/server_reader_writer.cc
@@ -30,7 +30,8 @@
std::span<std::byte> buffer = AcquirePayloadBuffer();
if (response.size() > buffer.size()) {
- ReleasePayloadBuffer();
+ ReleasePayloadBuffer()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return Status::OutOfRange();
}
diff --git a/pw_rpc/responder.cc b/pw_rpc/responder.cc
index 063934a..5b13a6a 100644
--- a/pw_rpc/responder.cc
+++ b/pw_rpc/responder.cc
@@ -55,7 +55,8 @@
Responder& Responder::operator=(Responder&& other) {
// If this RPC was running, complete it before moving in the other RPC.
- CloseAndSendResponse(OkStatus()).IgnoreError();
+ CloseAndSendResponse(OkStatus())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Move the state variables, which may change when the other client closes.
rpc_state_ = other.rpc_state_;
@@ -96,7 +97,8 @@
// If the Responder implementer or user forgets to release an acquired buffer
// before finishing, release it here.
if (!response_.empty()) {
- ReleasePayloadBuffer();
+ ReleasePayloadBuffer()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
Close();
diff --git a/pw_rpc/server.cc b/pw_rpc/server.cc
index 26874ed..ef08915 100644
--- a/pw_rpc/server.cc
+++ b/pw_rpc/server.cc
@@ -48,7 +48,8 @@
// Only send an ERROR response if a valid channel ID was provided.
if (packet.channel_id() != Channel::kUnassignedChannelId) {
internal::Channel temp_channel(packet.channel_id(), &interface);
- temp_channel.Send(Packet::ServerError(packet, Status::DataLoss()));
+ temp_channel.Send(Packet::ServerError(packet, Status::DataLoss()))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
return false;
}
@@ -62,7 +63,9 @@
// Since the responders remove themselves from the server in
// CloseAndSendResponse(), close responders until no responders remain.
while (!responders_.empty()) {
- responders_.front().CloseAndSendResponse(OkStatus());
+ responders_.front()
+ .CloseAndSendResponse(OkStatus())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
@@ -84,16 +87,18 @@
if (channel == nullptr) {
// If a channel can't be assigned, send a RESOURCE_EXHAUSTED error.
internal::Channel temp_channel(packet.channel_id(), &interface);
- temp_channel.Send(
- Packet::ServerError(packet, Status::ResourceExhausted()));
- return OkStatus(); // OK since the packet was handled
+ temp_channel
+ .Send(Packet::ServerError(packet, Status::ResourceExhausted()))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ return OkStatus(); // OK since the packet was handled
}
}
const auto [service, method] = FindMethod(packet);
if (method == nullptr) {
- channel->Send(Packet::ServerError(packet, Status::NotFound()));
+ channel->Send(Packet::ServerError(packet, Status::NotFound()))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return OkStatus();
}
@@ -132,7 +137,8 @@
HandleClientStreamPacket(packet, *channel, responder);
break;
default:
- channel->Send(Packet::ServerError(packet, Status::Unimplemented()));
+ channel->Send(Packet::ServerError(packet, Status::Unimplemented()))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
PW_LOG_WARN("Unable to handle packet of type %u",
unsigned(packet.type()));
}
@@ -159,17 +165,20 @@
if (responder == responders_.end()) {
PW_LOG_DEBUG(
"Received client stream packet for method that is not pending");
- channel.Send(Packet::ServerError(packet, Status::FailedPrecondition()));
+ channel.Send(Packet::ServerError(packet, Status::FailedPrecondition()))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return;
}
if (!responder->has_client_stream()) {
- channel.Send(Packet::ServerError(packet, Status::InvalidArgument()));
+ channel.Send(Packet::ServerError(packet, Status::InvalidArgument()))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return;
}
if (!responder->client_stream_open()) {
- channel.Send(Packet::ServerError(packet, Status::FailedPrecondition()));
+ channel.Send(Packet::ServerError(packet, Status::FailedPrecondition()))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return;
}
@@ -184,7 +193,8 @@
internal::Channel& channel,
ResponderIterator responder) const {
if (responder == responders_.end()) {
- channel.Send(Packet::ServerError(packet, Status::FailedPrecondition()));
+ channel.Send(Packet::ServerError(packet, Status::FailedPrecondition()))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
PW_LOG_DEBUG("Received CANCEL packet for method that is not pending");
} else {
responder->HandleError(Status::Cancelled());
diff --git a/pw_rpc/size_report/base.cc b/pw_rpc/size_report/base.cc
index e0fe44b..76043ab 100644
--- a/pw_rpc/size_report/base.cc
+++ b/pw_rpc/size_report/base.cc
@@ -27,8 +27,10 @@
PW_LOG_INFO("We care about optimizing: %d", *unoptimizable);
std::byte packet_buffer[128];
- pw::sys_io::ReadBytes(packet_buffer);
- pw::sys_io::WriteBytes(packet_buffer);
+ pw::sys_io::ReadBytes(packet_buffer)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ pw::sys_io::WriteBytes(packet_buffer)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return static_cast<int>(packet_buffer[92]);
}
diff --git a/pw_rpc/size_report/server_only.cc b/pw_rpc/size_report/server_only.cc
index 9fbc768..27e0c7d 100644
--- a/pw_rpc/size_report/server_only.cc
+++ b/pw_rpc/size_report/server_only.cc
@@ -51,10 +51,13 @@
PW_LOG_INFO("We care about optimizing: %d", *unoptimizable);
std::byte packet_buffer[128];
- pw::sys_io::ReadBytes(packet_buffer);
- pw::sys_io::WriteBytes(packet_buffer);
+ pw::sys_io::ReadBytes(packet_buffer)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ pw::sys_io::WriteBytes(packet_buffer)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
- my_product::server.ProcessPacket(packet_buffer, my_product::output);
+ my_product::server.ProcessPacket(packet_buffer, my_product::output)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return static_cast<int>(packet_buffer[92]);
}
diff --git a/pw_rpc/test_rpc_server.cc b/pw_rpc/test_rpc_server.cc
index 7289eae..6d000f2 100644
--- a/pw_rpc/test_rpc_server.cc
+++ b/pw_rpc/test_rpc_server.cc
@@ -29,7 +29,8 @@
pw::rpc::system_server::Server().RegisterService(benchmark_service);
PW_LOG_INFO("Starting pw_rpc server");
- pw::rpc::system_server::Start();
+ pw::rpc::system_server::Start()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return 0;
}
diff --git a/pw_snapshot/cpp_compile_test.cc b/pw_snapshot/cpp_compile_test.cc
index 457a23f..f9bec87 100644
--- a/pw_snapshot/cpp_compile_test.cc
+++ b/pw_snapshot/cpp_compile_test.cc
@@ -31,11 +31,16 @@
{
Metadata::StreamEncoder metadata_encoder =
snapshot_encoder.GetMetadataEncoder();
- metadata_encoder.WriteReason(
- std::as_bytes(std::span("It just died, I didn't do anything")));
- metadata_encoder.WriteFatal(true);
- metadata_encoder.WriteProjectName(std::as_bytes(std::span("smart-shoe")));
- metadata_encoder.WriteDeviceName(std::as_bytes(std::span("smart-shoe-p1")));
+ metadata_encoder
+ .WriteReason(
+ std::as_bytes(std::span("It just died, I didn't do anything")))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ metadata_encoder.WriteFatal(true)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ metadata_encoder.WriteProjectName(std::as_bytes(std::span("smart-shoe")))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ metadata_encoder.WriteDeviceName(std::as_bytes(std::span("smart-shoe-p1")))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
ASSERT_TRUE(snapshot_encoder.status().ok());
}
diff --git a/pw_status/BUILD.gn b/pw_status/BUILD.gn
index 0b51fd0..157472b 100644
--- a/pw_status/BUILD.gn
+++ b/pw_status/BUILD.gn
@@ -46,7 +46,7 @@
}
config("check_if_used_config") {
- defines = [ "PW_STATUS_CHECK_IF_USED=1" ]
+ defines = [ "PW_STATUS_CFG_CHECK_IF_USED=1" ]
visibility = [ ":*" ]
}
diff --git a/pw_status/docs.rst b/pw_status/docs.rst
index 45c3975..69560b7 100644
--- a/pw_status/docs.rst
+++ b/pw_status/docs.rst
@@ -222,14 +222,12 @@
Unused result warnings
----------------------
-If the ``PW_STATUS_CHECK_IF_USED`` option is enabled, ``pw::Status`` objects
+If the ``PW_STATUS_CFG_CHECK_IF_USED`` option is enabled, ``pw::Status`` objects
returned from function calls must be used or it is a compilation error. To
silence these warnings call ``IgnoreError()`` on the returned status object.
-
-``PW_STATUS_CHECK_IF_USED`` defaults to off. Pigweed and projects that use it
+``PW_STATUS_CFG_CHECK_IF_USED`` defaults to off. Pigweed and projects that use it
will be updated to compile with this option enabled. After all projects have
-migrated, unused result warnings will be enabled unconditionally. See
-`pwbug/387 <https://bugs.chromium.org/p/pigweed/issues/detail?id=387>`_.
+migrated, unused result warnings will be enabled unconditionally.
C compatibility
---------------
diff --git a/pw_string/size_report/format_many_without_error_handling.cc b/pw_string/size_report/format_many_without_error_handling.cc
index 7a5ab2d..915e935 100644
--- a/pw_string/size_report/format_many_without_error_handling.cc
+++ b/pw_string/size_report/format_many_without_error_handling.cc
@@ -26,7 +26,9 @@
#include "pw_string/format.h"
-#define FORMAT_CASE(...) pw::string::Format(buffer, __VA_ARGS__)
+#define FORMAT_CASE(...) \
+ pw::string::Format(buffer, __VA_ARGS__) \
+ .IgnoreError() // TODO(pwbug/387): Handle Status properly
#else // std::snprintf
diff --git a/pw_trace/example/sample_app.cc b/pw_trace/example/sample_app.cc
index 8edefa9..aad1771 100644
--- a/pw_trace/example/sample_app.cc
+++ b/pw_trace/example/sample_app.cc
@@ -78,7 +78,8 @@
// Buffer is used for the job queue.
std::span<std::byte> buf_span = std::span<std::byte>(
reinterpret_cast<std::byte*>(jobs_buffer_), sizeof(jobs_buffer_));
- jobs_.SetBuffer(buf_span);
+ jobs_.SetBuffer(buf_span)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
const char* Name() const override { return "Processing Task"; }
bool ShouldRun() override { return jobs_.EntryCount() > 0; }
@@ -90,8 +91,9 @@
size_t entry_count = jobs_.EntryCount();
// Get the next job from the queue.
- jobs_.PeekFront(job_bytes.bytes, &bytes_read);
- jobs_.PopFront();
+ jobs_.PeekFront(job_bytes.bytes, &bytes_read)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ jobs_.PopFront().IgnoreError(); // TODO(pwbug/387): Handle Status properly
Job& job = job_bytes.job;
// Process the job
@@ -135,7 +137,8 @@
}
void AddJobInternal(uint32_t job_id, uint8_t value) {
JobBytes job{.job = {.job_id = job_id, .value = value}};
- jobs_.PushBack(job.bytes);
+ jobs_.PushBack(job.bytes)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
} processing_task;
diff --git a/pw_trace_tokenized/example/filter.cc b/pw_trace_tokenized/example/filter.cc
index 573823a..3a5c5c36 100644
--- a/pw_trace_tokenized/example/filter.cc
+++ b/pw_trace_tokenized/example/filter.cc
@@ -55,7 +55,9 @@
}
// Register filter callback
- pw::trace::Callbacks::Instance().RegisterEventCallback(TraceEventCallback);
+ pw::trace::Callbacks::Instance()
+ .RegisterEventCallback(TraceEventCallback)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
PW_TRACE_SET_ENABLED(true); // Start with tracing enabled
diff --git a/pw_trace_tokenized/example/public/pw_trace_tokenized/example/trace_to_file.h b/pw_trace_tokenized/example/public/pw_trace_tokenized/example/trace_to_file.h
index 5c2d783..7527143 100644
--- a/pw_trace_tokenized/example/public/pw_trace_tokenized/example/trace_to_file.h
+++ b/pw_trace_tokenized/example/public/pw_trace_tokenized/example/trace_to_file.h
@@ -29,16 +29,20 @@
class TraceToFile {
public:
TraceToFile(const char* file_name) {
- Callbacks::Instance().RegisterSink(TraceSinkStartBlock,
- TraceSinkAddBytes,
- TraceSinkEndBlock,
- &out_,
- &sink_handle_);
+ Callbacks::Instance()
+ .RegisterSink(TraceSinkStartBlock,
+ TraceSinkAddBytes,
+ TraceSinkEndBlock,
+ &out_,
+ &sink_handle_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
out_.open(file_name, std::ios::out | std::ios::binary);
}
~TraceToFile() {
- Callbacks::Instance().UnregisterSink(sink_handle_);
+ Callbacks::Instance()
+ .UnregisterSink(sink_handle_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
out_.close();
}
diff --git a/pw_trace_tokenized/example/trigger.cc b/pw_trace_tokenized/example/trigger.cc
index 011ec5f..91c83ff 100644
--- a/pw_trace_tokenized/example/trigger.cc
+++ b/pw_trace_tokenized/example/trigger.cc
@@ -77,8 +77,10 @@
}
// Register trigger callback
- pw::trace::Callbacks::Instance().RegisterEventCallback(
- TraceEventCallback, pw::trace::CallbacksImpl::kCallOnEveryEvent);
+ pw::trace::Callbacks::Instance()
+ .RegisterEventCallback(TraceEventCallback,
+ pw::trace::CallbacksImpl::kCallOnEveryEvent)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Ensure tracing is off at start, the trigger will turn it on.
PW_TRACE_SET_ENABLED(false);
diff --git a/pw_trace_tokenized/public/pw_trace_tokenized/trace_callback.h b/pw_trace_tokenized/public/pw_trace_tokenized/trace_callback.h
index 90d119d..6d9f23d 100644
--- a/pw_trace_tokenized/public/pw_trace_tokenized/trace_callback.h
+++ b/pw_trace_tokenized/public/pw_trace_tokenized/trace_callback.h
@@ -212,18 +212,20 @@
CallbacksImpl::CallOnEveryEvent called_on_every_event =
CallbacksImpl::kCallOnlyWhenEnabled,
void* user_data = nullptr) {
- Callbacks::Instance().RegisterEventCallback(
- event_callback, called_on_every_event, user_data);
+ Callbacks::Instance()
+ .RegisterEventCallback(event_callback, called_on_every_event, user_data)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
RegisterCallbackWhenCreated(CallbacksImpl::SinkStartBlock sink_start,
CallbacksImpl::SinkAddBytes sink_add_bytes,
CallbacksImpl::SinkEndBlock sink_end,
void* user_data = nullptr) {
- Callbacks::Instance().RegisterSink(
- sink_start, sink_add_bytes, sink_end, user_data);
+ Callbacks::Instance()
+ .RegisterSink(sink_start, sink_add_bytes, sink_end, user_data)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
};
} // namespace trace
} // namespace pw
-#endif // __cplusplus
\ No newline at end of file
+#endif // __cplusplus
diff --git a/pw_trace_tokenized/trace.cc b/pw_trace_tokenized/trace.cc
index 3769ca2..a3b9a66 100644
--- a/pw_trace_tokenized/trace.cc
+++ b/pw_trace_tokenized/trace.cc
@@ -229,7 +229,8 @@
pw::Status CallbacksImpl::UnregisterAllSinks() {
for (size_t sink_idx = 0; sink_idx < PW_TRACE_CONFIG_MAX_SINKS; sink_idx++) {
- UnregisterSink(sink_idx);
+ UnregisterSink(sink_idx)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
return PW_STATUS_OK;
}
@@ -281,7 +282,8 @@
pw::Status CallbacksImpl::UnregisterAllEventCallbacks() {
for (size_t i = 0; i < PW_TRACE_CONFIG_MAX_EVENT_CALLBACKS; i++) {
- UnregisterEventCallback(i);
+ UnregisterEventCallback(i)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
return PW_STATUS_OK;
}
diff --git a/pw_trace_tokenized/trace_buffer.cc b/pw_trace_tokenized/trace_buffer.cc
index 2a5fc5b..fc13103 100644
--- a/pw_trace_tokenized/trace_buffer.cc
+++ b/pw_trace_tokenized/trace_buffer.cc
@@ -27,9 +27,12 @@
class TraceBuffer {
public:
TraceBuffer() {
- ring_buffer_.SetBuffer(raw_buffer_);
- Callbacks::Instance().RegisterSink(
- TraceSinkStartBlock, TraceSinkAddBytes, TraceSinkEndBlock, this);
+ ring_buffer_.SetBuffer(raw_buffer_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ Callbacks::Instance()
+ .RegisterSink(
+ TraceSinkStartBlock, TraceSinkAddBytes, TraceSinkEndBlock, this)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
static void TraceSinkStartBlock(void* user_data, size_t size) {
@@ -59,8 +62,10 @@
if (buffer->block_idx_ != buffer->block_size_) {
return; // Block is too large, skipping.
}
- buffer->ring_buffer_.PushBack(std::span<const std::byte>(
- &buffer->current_block_[0], buffer->block_size_));
+ buffer->ring_buffer_
+ .PushBack(std::span<const std::byte>(&buffer->current_block_[0],
+ buffer->block_size_))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
pw::ring_buffer::PrefixedEntryRingBuffer& RingBuffer() {
@@ -88,4 +93,4 @@
}
} // namespace trace
-} // namespace pw
\ No newline at end of file
+} // namespace pw
diff --git a/pw_trace_tokenized/trace_buffer_log.cc b/pw_trace_tokenized/trace_buffer_log.cc
index adaf17a..325b57b 100644
--- a/pw_trace_tokenized/trace_buffer_log.cc
+++ b/pw_trace_tokenized/trace_buffer_log.cc
@@ -55,7 +55,8 @@
PW_LOG_INFO("[TRACE] begin");
while (trace_buffer->PeekFront(std::span(entry_buffer).subspan(1),
&bytes_read) != pw::Status::OutOfRange()) {
- trace_buffer->PopFront();
+ trace_buffer->PopFront()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
entry_buffer[0] = static_cast<std::byte>(bytes_read);
// The entry buffer is formatted as (size, entry) with an extra byte as
// a header to the entry. The calcuation of bytes_read + 1 represents
diff --git a/pw_trace_tokenized/trace_buffer_log_test.cc b/pw_trace_tokenized/trace_buffer_log_test.cc
index e2327e2..20c9366 100644
--- a/pw_trace_tokenized/trace_buffer_log_test.cc
+++ b/pw_trace_tokenized/trace_buffer_log_test.cc
@@ -27,7 +27,8 @@
PW_TRACE_SET_ENABLED(true);
PW_TRACE_INSTANT("test1");
PW_TRACE_INSTANT("test2");
- pw::trace::DumpTraceBufferToLog();
+ pw::trace::DumpTraceBufferToLog()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
TEST(TokenizedTrace, DumpLargeBuffer) {
@@ -39,5 +40,6 @@
for (int i = 0; i < 100; i++) {
PW_TRACE_INSTANT("test");
}
- pw::trace::DumpTraceBufferToLog();
+ pw::trace::DumpTraceBufferToLog()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
diff --git a/pw_trace_tokenized/trace_test.cc b/pw_trace_tokenized/trace_test.cc
index 616d908..d2dd316 100644
--- a/pw_trace_tokenized/trace_test.cc
+++ b/pw_trace_tokenized/trace_test.cc
@@ -56,21 +56,27 @@
TraceTestInterface() {
PW_TRACE_SET_ENABLED(true);
- pw::trace::Callbacks::Instance().RegisterSink(TraceSinkStartBlock,
- TraceSinkAddBytes,
- TraceSinkEndBlock,
- this,
- &sink_handle_);
- pw::trace::Callbacks::Instance().RegisterEventCallback(
- TraceEventCallback,
- pw::trace::CallbacksImpl::kCallOnlyWhenEnabled,
- this,
- &event_callback_handle_);
+ pw::trace::Callbacks::Instance()
+ .RegisterSink(TraceSinkStartBlock,
+ TraceSinkAddBytes,
+ TraceSinkEndBlock,
+ this,
+ &sink_handle_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ pw::trace::Callbacks::Instance()
+ .RegisterEventCallback(TraceEventCallback,
+ pw::trace::CallbacksImpl::kCallOnlyWhenEnabled,
+ this,
+ &event_callback_handle_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
~TraceTestInterface() {
- pw::trace::Callbacks::Instance().UnregisterSink(sink_handle_);
- pw::trace::Callbacks::Instance().UnregisterEventCallback(
- event_callback_handle_);
+ pw::trace::Callbacks::Instance()
+ .UnregisterSink(sink_handle_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ pw::trace::Callbacks::Instance()
+ .UnregisterEventCallback(event_callback_handle_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
// ActionOnEvent will perform a specific action within the callback when an
// event matches one of the characteristics of event_match_.
@@ -568,7 +574,8 @@
constexpr size_t kQueueSize = 5;
pw::trace::internal::TraceQueue<kQueueSize> queue;
constexpr size_t kTestNum = 1;
- queue.TryPushBack(QUEUE_TESTS_ARGS(kTestNum));
+ queue.TryPushBack(QUEUE_TESTS_ARGS(kTestNum))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
EXPECT_FALSE(queue.IsEmpty());
EXPECT_FALSE(queue.IsFull());
EXPECT_TRUE(QUEUE_CHECK_RESULT(kQueueSize, queue.PeekFront(), kTestNum));
diff --git a/pw_transfer/chunk.cc b/pw_transfer/chunk.cc
index e1181e1..70e8863 100644
--- a/pw_transfer/chunk.cc
+++ b/pw_transfer/chunk.cc
@@ -80,28 +80,36 @@
Result<ConstByteSpan> EncodeChunk(const Chunk& chunk, ByteSpan buffer) {
ProtoChunk::MemoryEncoder encoder(buffer);
- encoder.WriteTransferId(chunk.transfer_id);
+ encoder.WriteTransferId(chunk.transfer_id)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
if (chunk.pending_bytes.has_value()) {
- encoder.WritePendingBytes(chunk.pending_bytes.value());
+ encoder.WritePendingBytes(chunk.pending_bytes.value())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
if (chunk.max_chunk_size_bytes.has_value()) {
- encoder.WriteMaxChunkSizeBytes(chunk.max_chunk_size_bytes.value());
+ encoder.WriteMaxChunkSizeBytes(chunk.max_chunk_size_bytes.value())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
if (chunk.min_delay_microseconds.has_value()) {
- encoder.WriteMinDelayMicroseconds(chunk.min_delay_microseconds.value());
+ encoder.WriteMinDelayMicroseconds(chunk.min_delay_microseconds.value())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
if (chunk.offset != 0) {
- encoder.WriteOffset(chunk.offset);
+ encoder.WriteOffset(chunk.offset)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
if (!chunk.data.empty()) {
- encoder.WriteData(chunk.data);
+ encoder.WriteData(chunk.data)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
if (chunk.remaining_bytes.has_value()) {
- encoder.WriteRemainingBytes(chunk.remaining_bytes.value());
+ encoder.WriteRemainingBytes(chunk.remaining_bytes.value())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
if (chunk.status.has_value()) {
- encoder.WriteStatus(chunk.status.value().code());
+ encoder.WriteStatus(chunk.status.value().code())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
PW_TRY(encoder.status());
diff --git a/pw_transfer/test_rpc_server.cc b/pw_transfer/test_rpc_server.cc
index 41a8949..56ce685 100644
--- a/pw_transfer/test_rpc_server.cc
+++ b/pw_transfer/test_rpc_server.cc
@@ -94,7 +94,8 @@
rpc::system_server::Server().RegisterService(transfer_service);
PW_LOG_INFO("Starting pw_rpc server");
- rpc::system_server::Start();
+ rpc::system_server::Start()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
} // namespace
diff --git a/pw_transfer/transfer.cc b/pw_transfer/transfer.cc
index a036430..9d68d58 100644
--- a/pw_transfer/transfer.cc
+++ b/pw_transfer/transfer.cc
@@ -44,7 +44,8 @@
if (type_ == kRead) {
handler_->FinalizeRead(status);
} else {
- handler_->FinalizeWrite(status);
+ handler_->FinalizeWrite(status)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
handler_ = nullptr;
@@ -63,7 +64,8 @@
void TransferService::Write(ServerContext&,
RawServerReaderWriter& reader_writer) {
// TODO(frolv): Implement server-side write transfers.
- reader_writer.Finish(Status::Unimplemented());
+ reader_writer.Finish(Status::Unimplemented())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
void TransferService::SendStatusChunk(RawServerReaderWriter& stream,
@@ -76,7 +78,8 @@
Result<ConstByteSpan> result =
internal::EncodeChunk(chunk, stream.PayloadBuffer());
if (result.ok()) {
- stream.Write(result.value());
+ stream.Write(result.value())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
@@ -90,8 +93,10 @@
// Begin by doing a partial encode of all the metadata fields, leaving the
// buffer with usable space for the chunk data at the end.
Chunk::MemoryEncoder encoder(buffer);
- encoder.WriteTransferId(context.transfer_id());
- encoder.WriteOffset(context.offset());
+ encoder.WriteTransferId(context.transfer_id())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ encoder.WriteOffset(context.offset())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Reserve space for the data proto field overhead and use the remainder of
// the buffer for the chunk data.
@@ -108,13 +113,15 @@
Result<ByteSpan> data = context.reader().Read(data_buffer);
if (data.status().IsOutOfRange()) {
// No more data to read.
- encoder.WriteRemainingBytes(0);
+ encoder.WriteRemainingBytes(0)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
context.set_pending_bytes(0);
} else if (!data.ok()) {
read_stream_.ReleaseBuffer();
return false;
} else {
- encoder.WriteData(data.value());
+ encoder.WriteData(data.value())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
context.set_offset(context.offset() + data.value().size());
context.set_pending_bytes(context.pending_bytes() - data.value().size());
}
diff --git a/pw_unit_test/public/pw_unit_test/unit_test_service.h b/pw_unit_test/public/pw_unit_test/unit_test_service.h
index 81018e0..7d7708b 100644
--- a/pw_unit_test/public/pw_unit_test/unit_test_service.h
+++ b/pw_unit_test/public/pw_unit_test/unit_test_service.h
@@ -37,7 +37,8 @@
Event::MemoryEncoder event(writer_.PayloadBuffer());
event_writer(event);
if (event.status().ok()) {
- writer_.Write(event);
+ writer_.Write(event)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
diff --git a/pw_unit_test/test_rpc_server.cc b/pw_unit_test/test_rpc_server.cc
index 6dbad78..571c9db 100644
--- a/pw_unit_test/test_rpc_server.cc
+++ b/pw_unit_test/test_rpc_server.cc
@@ -72,7 +72,8 @@
pw::rpc::system_server::Server().RegisterService(unit_test_service);
PW_LOG_INFO("Starting pw_rpc server");
- pw::rpc::system_server::Start();
+ pw::rpc::system_server::Start()
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return 0;
}
diff --git a/pw_unit_test/unit_test_service.cc b/pw_unit_test/unit_test_service.cc
index 43bc1fd..6567216 100644
--- a/pw_unit_test/unit_test_service.cc
+++ b/pw_unit_test/unit_test_service.cc
@@ -38,7 +38,8 @@
while ((status = decoder.Next()).ok()) {
switch (static_cast<TestRunRequest::Fields>(decoder.FieldNumber())) {
case TestRunRequest::Fields::REPORT_PASSED_EXPECTATIONS:
- decoder.ReadBool(&verbose_);
+ decoder.ReadBool(&verbose_)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
break;
case TestRunRequest::Fields::TEST_SUITE: {
@@ -52,7 +53,8 @@
} else {
PW_LOG_ERROR("Maximum of %u test suite filters supported",
static_cast<unsigned>(suites_to_run.max_size()));
- writer_.Finish(Status::InvalidArgument());
+ writer_.Finish(Status::InvalidArgument())
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return;
}
@@ -62,7 +64,8 @@
}
if (status != Status::OutOfRange()) {
- writer_.Finish(status);
+ writer_.Finish(status)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
return;
}
@@ -80,7 +83,7 @@
PW_LOG_INFO("Unit test run complete");
- writer_.Finish();
+ writer_.Finish().IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
void UnitTestService::WriteTestRunStart() {
@@ -92,10 +95,14 @@
void UnitTestService::WriteTestRunEnd(const RunTestsSummary& summary) {
WriteEvent([&](Event::StreamEncoder& event) {
TestRunEnd::StreamEncoder test_run_end = event.GetTestRunEndEncoder();
- test_run_end.WritePassed(summary.passed_tests);
- test_run_end.WriteFailed(summary.failed_tests);
- test_run_end.WriteSkipped(summary.skipped_tests);
- test_run_end.WriteDisabled(summary.disabled_tests);
+ test_run_end.WritePassed(summary.passed_tests)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_run_end.WriteFailed(summary.failed_tests)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_run_end.WriteSkipped(summary.skipped_tests)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_run_end.WriteDisabled(summary.disabled_tests)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
});
}
@@ -103,15 +110,19 @@
WriteEvent([&](Event::StreamEncoder& event) {
TestCaseDescriptor::StreamEncoder descriptor =
event.GetTestCaseStartEncoder();
- descriptor.WriteSuiteName(test_case.suite_name);
- descriptor.WriteTestName(test_case.test_name);
- descriptor.WriteFileName(test_case.file_name);
+ descriptor.WriteSuiteName(test_case.suite_name)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ descriptor.WriteTestName(test_case.test_name)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ descriptor.WriteFileName(test_case.file_name)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
});
}
void UnitTestService::WriteTestCaseEnd(TestResult result) {
WriteEvent([&](Event::StreamEncoder& event) {
- event.WriteTestCaseEnd(static_cast<TestCaseResult>(result));
+ event.WriteTestCaseEnd(static_cast<TestCaseResult>(result))
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
});
}
@@ -119,9 +130,12 @@
WriteEvent([&](Event::StreamEncoder& event) {
TestCaseDescriptor::StreamEncoder descriptor =
event.GetTestCaseDisabledEncoder();
- descriptor.WriteSuiteName(test_case.suite_name);
- descriptor.WriteTestName(test_case.test_name);
- descriptor.WriteFileName(test_case.file_name);
+ descriptor.WriteSuiteName(test_case.suite_name)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ descriptor.WriteTestName(test_case.test_name)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ descriptor.WriteFileName(test_case.file_name)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
});
}
@@ -134,11 +148,15 @@
WriteEvent([&](Event::StreamEncoder& event) {
TestCaseExpectation::StreamEncoder test_case_expectation =
event.GetTestCaseExpectationEncoder();
- test_case_expectation.WriteExpression(expectation.expression);
- test_case_expectation.WriteEvaluatedExpression(
- expectation.evaluated_expression);
- test_case_expectation.WriteLineNumber(expectation.line_number);
- test_case_expectation.WriteSuccess(expectation.success);
+ test_case_expectation.WriteExpression(expectation.expression)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_case_expectation
+ .WriteEvaluatedExpression(expectation.evaluated_expression)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_case_expectation.WriteLineNumber(expectation.line_number)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ test_case_expectation.WriteSuccess(expectation.success)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
});
}
diff --git a/pw_work_queue/work_queue_test.cc b/pw_work_queue/work_queue_test.cc
index d4a67c8..6b793e0 100644
--- a/pw_work_queue/work_queue_test.cc
+++ b/pw_work_queue/work_queue_test.cc
@@ -40,16 +40,21 @@
for (int i = 0; i < kPingPongs; ++i) {
// Ping: throw work at the queue that will increment our counter.
- work_queue.PushWork([&context] {
- context.counter++;
- PW_LOG_INFO("Send pong...");
- context.worker_ping.release();
- });
+ work_queue
+ .PushWork([&context] {
+ context.counter++;
+ PW_LOG_INFO("Send pong...");
+ context.worker_ping.release();
+ })
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Throw a distraction in the queue.
- work_queue.PushWork([] {
- PW_LOG_INFO("I'm a random task in the work queue; nothing to see here!");
- });
+ work_queue
+ .PushWork([] {
+ PW_LOG_INFO(
+ "I'm a random task in the work queue; nothing to see here!");
+ })
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Pong: wait for the callback to notify us from the worker thread.
context.worker_ping.acquire();
@@ -79,26 +84,34 @@
// Run a bunch of work items in the queue.
for (int i = 0; i < kPingPongs; ++i) {
// Other requests...
- work_queue.PushWork([] { PW_LOG_INFO("Chopping onions"); });
+ work_queue.PushWork([] { PW_LOG_INFO("Chopping onions"); })
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Ping A: throw work at the queue that will increment our counter.
- work_queue.PushWork([&context_a] {
- context_a.counter++;
- context_a.worker_ping.release();
- });
+ work_queue
+ .PushWork([&context_a] {
+ context_a.counter++;
+ context_a.worker_ping.release();
+ })
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Other requests...
- work_queue.PushWork([] { PW_LOG_INFO("Dicing carrots"); });
- work_queue.PushWork([] { PW_LOG_INFO("Blanching spinach"); });
+ work_queue.PushWork([] { PW_LOG_INFO("Dicing carrots"); })
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
+ work_queue.PushWork([] { PW_LOG_INFO("Blanching spinach"); })
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Ping B: throw work at the queue that will increment our counter.
- work_queue.PushWork([&context_b] {
- context_b.counter++;
- context_b.worker_ping.release();
- });
+ work_queue
+ .PushWork([&context_b] {
+ context_b.counter++;
+ context_b.worker_ping.release();
+ })
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Other requests...
- work_queue.PushWork([] { PW_LOG_INFO("Peeling potatoes"); });
+ work_queue.PushWork([] { PW_LOG_INFO("Peeling potatoes"); })
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
// Pong A & B: wait for the callbacks to notify us from the worker thread.
context_a.worker_ping.acquire();
diff --git a/targets/host/system_rpc_server.cc b/targets/host/system_rpc_server.cc
index 507f246..0e2d0bc 100644
--- a/targets/host/system_rpc_server.cc
+++ b/targets/host/system_rpc_server.cc
@@ -50,7 +50,8 @@
void Init() {
log_basic::SetOutput([](std::string_view log) {
std::fprintf(stderr, "%.*s\n", static_cast<int>(log.size()), log.data());
- hdlc::WriteUIFrame(1, std::as_bytes(std::span(log)), socket_stream);
+ hdlc::WriteUIFrame(1, std::as_bytes(std::span(log)), socket_stream)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
});
PW_CHECK_OK(socket_stream.Serve(socket_port));
@@ -71,7 +72,8 @@
if (auto result = decoder.Process(byte); result.ok()) {
hdlc::Frame& frame = result.value();
if (frame.address() == hdlc::kDefaultRpcAddress) {
- server.ProcessPacket(frame.data(), hdlc_channel_output);
+ server.ProcessPacket(frame.data(), hdlc_channel_output)
+ .IgnoreError(); // TODO(pwbug/387): Handle Status properly
}
}
}