Add NuggetClientDebuggable class for testing

This class allows tests that talk over Ultradebug to a dev board
to inspect the Request bytes sent to CallApp() and the Response
bytes returned from it without impacting the behavior. Test
frameworks can use this capability to check for data leaks due to
uninitialized data or stack overflow.

Bug: 175117199
Test: manual
Signed-off-by: Bill Richardson <wfrichar@google.com>
Change-Id: Ifa660c29e2d44b7ecd201926dfd9ea877692321a
Merged-In: Ifa660c29e2d44b7ecd201926dfd9ea877692321a
Reviewed-on: https://nugget-os-review.googlesource.com/c/host/generic/+/38625
Reviewed-by: Tommy Chiu <tommychiu@google.com>
Presubmit-Verified: TreeHugger Robot
(cherry picked from commit d46aa03337996b6bb838e1e51157ed0bf566bf77)
Reviewed-on: https://nugget-os-review.googlesource.com/c/host/generic/+/38877
Reviewed-by: Joseph Jang <josephjang@google.com>
5 files changed
tree: b048acdd4863efa9e78b306708c4c3f32171b16c
  1. libnos/
  2. libnos_datagram/
  3. libnos_transport/
  4. nugget/
  5. .checkpatch.conf
  6. .clang-format
  7. Android.bp
  8. BUILD
  9. LICENSE
  10. METADATA
  11. MODULE_LICENSE_APACHE2
  12. NOTICE
  13. OWNERS
  14. README.md
README.md

Generic host components for Nugget

Nugget will be used in different contexts and with different hosts. This repo contains the components that can be shared between those hosts.

nugget

The nugget directory contains items that are shared between the host and the firmware. Those include:

  • shared headers
  • service protos

libnos

libnos is a C++ library for communication with a Nugget device. It offers an interface to manage a connection and exchange data and a generator for RPC stubs based on service protos.

libnos_datagram

libnos_datagram is a C library for exchanging datagrams with a Nugget device. This directory only contains the API of the library as the different platforms will need to implement it differently.

libnos_transport

libnos_transport is a C library for communicating with a Nugget device via the transport API. This is built on top of the libnos_datagram library for exchanging datagrams.