Build and run unit tests through GN

This change adds a GN template for defining unit test executables.
The template, called pw_test, defines the executable and outputs a JSON
metadata file for the test.

A new build argument is added. This argument determines whether unit
test run targets are supported by the current build target. If this is
set, the pw_test template additionally creates a run target for its test
executable which invokes the executable through a script.

A basic test runner script is added to the pw_unit_test module. This
script currently only runs a single test executable directly.

The unit tests in the pw_preprocessor module are updated to use the
pw_test template.

Change-Id: I3cbde9c19440276dbab80dd2bab5fec87abe6d7e
4 files changed
tree: c9e79cd16f02c984021c403ec2dcedcf4a8c1b06
  1. pw_build/
  2. pw_preprocessor/
  3. pw_status/
  4. pw_toolchain/
  5. pw_unit_test/
  6. .clang-format
  7. .gitignore
  8. .gn
  9. AUTHORS
  10. BUILD.gn
  11. BUILDCONFIG.gn
  12. CONTRIBUTING.md
  13. LICENSE
  14. modules.gni
  15. README.md
README.md

Pigweed embedded oriented software libraries

Pigweed is a collection of embedded-focused libraries, which we call "modules". These modules are designed for small-footprint MMU-less microcontrollers like the ST Micro STM32L452 or the Nordic NRF82832. The modules are designed to facilitate easy integration into existing codebases.

Pigweed is in the early stages of development.