aboutsummaryrefslogtreecommitdiff
path: root/pw_log_rpc
diff options
context:
space:
mode:
authorWyatt Hepler <hepler@google.com>2021-09-23 09:10:12 -0700
committerCQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>2021-10-19 17:38:27 +0000
commit82db4b10973d45a004954e8b6c712f8075b28cc9 (patch)
tree937b7f571ce894e81d8acc6830629753761f84f8 /pw_log_rpc
parent75ab80a23a7a7c1ddc0a7d4b595cbfbec5aa47f8 (diff)
downloadpigweed-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.cc14
-rw-r--r--pw_log_rpc/rpc_log_drain_test.cc4
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));