pw_rpc: Responder & testing improvements

- Fill out remaining server-side Nanopb client & bidirectional streaming
  features and add tests.
- Use MethodType instead of a custom HasClientStream in Responder.
- Expose RawFakeChannelOutput and NanopbFakeChannelOutput for testing
  use.
- Reorganize test utils headers to avoid the need to add "." as an
  include path.

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

See our website: http://pigweed.dev