diff options
author | Wyatt Hepler <hepler@google.com> | 2021-09-23 09:10:12 -0700 |
---|---|---|
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2021-10-19 17:38:27 +0000 |
commit | 82db4b10973d45a004954e8b6c712f8075b28cc9 (patch) | |
tree | 937b7f571ce894e81d8acc6830629753761f84f8 /pw_log_rpc | |
parent | 75ab80a23a7a7c1ddc0a7d4b595cbfbec5aa47f8 (diff) | |
download | pigweed-82db4b10973d45a004954e8b6c712f8075b28cc9.tar.gz |
pw_rpc: Rework C++ client; implement raw client
- Rework the Client class to share code with the Server class.
- Replace BaseClientCall with a call object also derived from the
internal::Call used for server calls.
- Implement a system for testing RPC client invocations.
- Implement the raw RPC client API and codegen.
- Reimplement the Nanopb RPC client API and codegen to share code.
- Implement Nanopb client & bidirectional streaming.
- Add an integration test that calls RPCs on a C++ server from a C++
client.
Requires: pigweed-internal:16720
Change-Id: Id3a0fd31bb3b3259fb9386dae617e68b9bfe6985
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/65745
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
Diffstat (limited to 'pw_log_rpc')
-rw-r--r-- | pw_log_rpc/log_service_test.cc | 14 | ||||
-rw-r--r-- | pw_log_rpc/rpc_log_drain_test.cc | 4 |
2 files changed, 10 insertions, 8 deletions
diff --git a/pw_log_rpc/log_service_test.cc b/pw_log_rpc/log_service_test.cc index 75b0ad8ce..9c04caf92 100644 --- a/pw_log_rpc/log_service_test.cc +++ b/pw_log_rpc/log_service_test.cc @@ -414,7 +414,7 @@ TEST_F(LogServiceTest, InterruptedLogStreamSendsDropCount) { LogService log_service(drain_map_); const uint32_t output_buffer_size = 100; - rpc::RawFakeChannelOutput<output_buffer_size, 10, 512> output; + rpc::RawFakeChannelOutput<10, output_buffer_size, 512> output; rpc::Channel channel(rpc::Channel::Create<drain_channel_id>(&output)); rpc::Server server(std::span(&channel, 1)); @@ -438,7 +438,7 @@ TEST_F(LogServiceTest, InterruptedLogStreamSendsDropCount) { EXPECT_TRUE(output.done()); // Make sure not all packets were sent. - ASSERT_EQ(output.total_stream_packets(), successful_packets_sent); + ASSERT_EQ(output.payloads<Logs::Listen>().size(), successful_packets_sent); // Verify data in responses. Vector<ConstByteSpan, total_entries> message_stack; @@ -491,7 +491,7 @@ TEST_F(LogServiceTest, InterruptedLogStreamIgnoresErrors) { LogService log_service(drain_map_); const uint32_t output_buffer_size = 100; - rpc::RawFakeChannelOutput<output_buffer_size, 10, 768> output; + rpc::RawFakeChannelOutput<10, output_buffer_size, 768> output; rpc::Channel channel(rpc::Channel::Create<drain_channel_id>(&output)); rpc::Server server(std::span(&channel, 1)); @@ -515,7 +515,7 @@ TEST_F(LogServiceTest, InterruptedLogStreamIgnoresErrors) { EXPECT_FALSE(output.done()); // Make some packets were sent. - ASSERT_GE(output.total_stream_packets(), min_packets_sent); + ASSERT_GE(output.payloads<Logs::Listen>().size(), min_packets_sent); // Verify that not all the entries were sent. size_t entries_found = 0; @@ -554,11 +554,13 @@ TEST_F(LogServiceTest, InterruptedLogStreamIgnoresErrors) { } // More calls to flush with errors will not affect this stubborn drain. - const size_t previous_stream_packet_count = output.total_stream_packets(); + const size_t previous_stream_packet_count = + output.payloads<Logs::Listen>().size(); output.set_send_status(Status::Unavailable()); EXPECT_EQ(drain.value()->Flush(), OkStatus()); EXPECT_FALSE(output.done()); - ASSERT_EQ(output.total_stream_packets(), previous_stream_packet_count); + ASSERT_EQ(output.payloads<Logs::Listen>().size(), + previous_stream_packet_count); output.clear(); EXPECT_EQ(drain.value()->Close(), OkStatus()); diff --git a/pw_log_rpc/rpc_log_drain_test.cc b/pw_log_rpc/rpc_log_drain_test.cc index 517ddd001..aec161732 100644 --- a/pw_log_rpc/rpc_log_drain_test.cc +++ b/pw_log_rpc/rpc_log_drain_test.cc @@ -105,7 +105,7 @@ TEST(RpcLogDrain, FlushingDrainWithOpenWriter) { RpcLogDrainMap drain_map(drains); LogService log_service(drain_map); - rpc::RawFakeChannelOutput<128, 3> output; + rpc::RawFakeChannelOutput<3, 128> output; rpc::Channel channel(rpc::Channel::Create<drain_id>(&output)); rpc::Server server(std::span(&channel, 1)); @@ -144,7 +144,7 @@ TEST(RpcLogDrain, TryReopenOpenedDrain) { RpcLogDrainMap drain_map(drains); LogService log_service(drain_map); - rpc::RawFakeChannelOutput<128, 1> output; + rpc::RawFakeChannelOutput<1, 128> output; rpc::Channel channel(rpc::Channel::Create<drain_id>(&output)); rpc::Server server(std::span(&channel, 1)); |