[roll third_party/pigweed] pw_rpc: Fix responding with empty buffers

The Channel::OutputBuffer::Contains() method previously did not check if
the OutputBuffer itself was empty. An empty span sent as a raw response
would appear as a span within the OutputBuffer, even though the
OutputBuffer was never allocated. Instead of allocating an OutputBuffer
for the RPC packet, the responder would attempt to encode it into the
empty OutputBuffer, which would fail.

- Update Contains() so it returns false on an empty OutputBuffer.
- Add tests for OutputBuffer::Contains() and sending an empty response.

Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/53420

third_party/pigweed Rolled-Commits: 5f15bfd071edb14..68daa72bb4ac9a8
Roller-URL: https://ci.chromium.org/b/8841510847015520080
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8841510847015520080
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: If7dbe482fe39cece22e0df506f35bf9c49c70b5a
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/53528
Reviewed-by: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
Commit-Queue: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
1 file changed
tree: c869a56a2b90fc1eed925b6cd32357a5ab351ae9
  1. applications/
  2. build_overrides/
  3. pw_board_led/
  4. pw_board_led_arduino/
  5. pw_board_led_host/
  6. pw_board_led_stm32cubef4/
  7. pw_board_led_stm32f429i_disc1/
  8. pw_spin_delay/
  9. pw_spin_delay_arduino/
  10. pw_spin_delay_host/
  11. pw_spin_delay_stm32cubef4/
  12. pw_spin_delay_stm32f429i_disc1/
  13. pw_sys_io_stm32cubef4/
  14. targets/
  15. third_party/
  16. tools/
  17. .gitattributes
  18. .gitignore
  19. .gitmodules
  20. .gn
  21. activate.bat
  22. banner.txt
  23. bootstrap.bat
  24. bootstrap.sh
  25. BUILD.gn
  26. BUILDCONFIG.gn
  27. env_setup.json
  28. navbar.md
  29. PW_PLUGINS
  30. README.md
README.md

Pigweed Experimental

This repository contains experimental pigweed modules.

Repository setup

Clone this repo with --recursive to get all required submodules.

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental

This will pull the Pigweed source repository into third_party/pigweed. If you already cloned but forgot to --recursive run git submodule update --init to pull all submodules.