pw_rpc: Test raw client & bidirectional streaming

- Expand RawTestMethodClient and NanopbTestMethodClient to support
  client and bidirectional streaming methods. Move shared functionality
  to a common InvocationContext base class.
- Add tests for raw client & bidirectional streaming methods.

Change-Id: I26f5d0608f6215bc846e69d89b3c9735595a7930
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/52523
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
12 files changed
tree: aede98abeb8f1e49cae9b018f04381863a147617
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_arduino_build/
  7. pw_assert/
  8. pw_assert_basic/
  9. pw_assert_log/
  10. pw_base64/
  11. pw_bloat/
  12. pw_blob_store/
  13. pw_boot_armv7m/
  14. pw_build/
  15. pw_bytes/
  16. pw_checksum/
  17. pw_chrono/
  18. pw_chrono_embos/
  19. pw_chrono_freertos/
  20. pw_chrono_stl/
  21. pw_chrono_threadx/
  22. pw_cli/
  23. pw_console/
  24. pw_containers/
  25. pw_cpu_exception/
  26. pw_cpu_exception_cortex_m/
  27. pw_docgen/
  28. pw_doctor/
  29. pw_env_setup/
  30. pw_function/
  31. pw_fuzzer/
  32. pw_hdlc/
  33. pw_hex_dump/
  34. pw_i2c/
  35. pw_interrupt/
  36. pw_interrupt_cortex_m/
  37. pw_kvs/
  38. pw_libc/
  39. pw_log/
  40. pw_log_basic/
  41. pw_log_multisink/
  42. pw_log_null/
  43. pw_log_rpc/
  44. pw_log_sink/
  45. pw_log_tokenized/
  46. pw_malloc/
  47. pw_malloc_freelist/
  48. pw_metric/
  49. pw_minimal_cpp_stdlib/
  50. pw_module/
  51. pw_multisink/
  52. pw_package/
  53. pw_persistent_ram/
  54. pw_polyfill/
  55. pw_preprocessor/
  56. pw_presubmit/
  57. pw_protobuf/
  58. pw_protobuf_compiler/
  59. pw_random/
  60. pw_result/
  61. pw_ring_buffer/
  62. pw_router/
  63. pw_rpc/
  64. pw_snapshot/
  65. pw_span/
  66. pw_status/
  67. pw_stm32cube_build/
  68. pw_stream/
  69. pw_string/
  70. pw_sync/
  71. pw_sync_baremetal/
  72. pw_sync_embos/
  73. pw_sync_freertos/
  74. pw_sync_stl/
  75. pw_sync_threadx/
  76. pw_sys_io/
  77. pw_sys_io_arduino/
  78. pw_sys_io_baremetal_lm3s6965evb/
  79. pw_sys_io_baremetal_stm32f429/
  80. pw_sys_io_stdio/
  81. pw_target_runner/
  82. pw_thread/
  83. pw_thread_embos/
  84. pw_thread_freertos/
  85. pw_thread_stl/
  86. pw_thread_threadx/
  87. pw_tls_client/
  88. pw_tls_client_boringssl/
  89. pw_tls_client_mbedtls/
  90. pw_tokenizer/
  91. pw_tool/
  92. pw_toolchain/
  93. pw_trace/
  94. pw_trace_tokenized/
  95. pw_transfer/
  96. pw_unit_test/
  97. pw_varint/
  98. pw_watch/
  99. pw_web_ui/
  100. targets/
  101. third_party/
  102. .bazelignore
  103. .bazelrc
  104. .clang-format
  105. .eslintrc.json
  106. .gitattributes
  107. .gitignore
  108. .gn
  109. .prettierrc.js
  110. .pylintrc
  111. activate.bat
  112. AUTHORS
  113. bootstrap.bat
  114. bootstrap.sh
  115. BUILD
  116. BUILD.gn
  117. BUILDCONFIG.gn
  118. CMakeLists.txt
  119. LICENSE
  120. modules.gni
  121. OWNERS
  122. package.json
  123. PW_PLUGINS
  124. README.md
  125. tsconfig.json
  126. WORKSPACE
  127. yarn.lock
README.md

See our website: http://pigweed.dev