Commit Graph

10 Commits

Author SHA1 Message Date
Wyatt Hepler
b82f995f2b pw_docgen: Fix paths, multiple sources
- Fix code for remapping paths into the docgen tree. Some path prefixes
  were being incorrectly trimmed, preventing size report inclusion in
  some cases.
- Make Sphinx warnings errors.
- Allow specifying multiple top-level sources to a pw_doc_gen.
- Move documentation for modules to their own table of contents.
- Rename module documentation to the module names.

Change-Id: Ic475019673ccefdb786a28d241a143886af097ab
2019-11-25 14:55:02 -08:00
Paul Mathieu
97b967a692 unit_test: allow targets to specify their own test main
This allows having test-specific, per-target init logic.
Kept the existing test main as default.

Change-Id: I418dc4f9eefe0bc9d66fcb24d6c4573757f37144
2019-11-21 19:15:08 +00:00
Alexei Frolov
a454c68bd8 Define pw_test_group template
This change adds a GN template to the pw_unit_test module which defines
a group of unit tests. The template creates a generated_file target with
JSON metadata for the unit tests and dependencies within the test group.
These metadata files are intended to be parsed by the test runner script
to run unit tests outside of GN.

A pw_test_group target is added to each of the existing modules which
have unit tests.

Change-Id: I363b937da365d0a3482a979feace18ecba1807a9
2019-11-19 20:52:52 +00:00
Rob Mohr
c2787500d5 Move loads to beginning of BUILD files.
Change-Id: Idb918a48cfe6149f624295f6712fbf0a3a36a7ff
2019-11-19 18:20:03 +00:00
Rob Mohr
c70366e906 Simplify bazel build.
Use variables instead of functions, and add wrappers for builtins.

Change-Id: If6e75efe35ce2fe754f2ed7421497bc1f5d47507
2019-11-18 11:24:53 -08:00
Rob Mohr
e8fbe6a882 Add license metadata to bazel files.
Change-Id: Id32c7db700f3fba809d4e90473cbd3e8b8d7ca47
2019-11-15 11:52:14 -08:00
Rob Mohr
be98ead12a Add bazel build system files.
Build everything with 'bazel build //...' and run all tests with
'bazel test //...'.

Change-Id: Ia912e999e33caa9b490002d639dc4c9a80034afc
2019-11-14 07:16:44 -08:00
Alexei Frolov
baaa2d62a6
Add pw_docgen module
This change adds a module which builds documentation using Sphinx.
Documentation files and assets are defined using a pw_doc_group GN
template which lists out all of the sources as metadata. Another GN
template, pw_doc_gen, collects the metadata from pw_doc_group targets
into a JSON file and defines an action that runs a script to build the
HTML docs.

A docgen script is provided by the pw_docgen module. This script reads
the JSON metadata file collected by a pw_doc_gen template, copies all of
the source and resource files into a documentation tree, and runs Sphinx
on the tree to render the docs as HTML.

Change-Id: I97890f05d850d5119cbd3bbf48138cd82f22d56c
2019-11-13 13:28:28 -08:00
Alexei Frolov
925fb8f510 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
2019-11-08 01:16:04 +00:00
Alexei Frolov
c10c81201d Add preprocessor and unit_test modules
This change adds two Pigweed modules: pw_preprocessor and pw_unit_test.
The preprocessor module contains header files providing helpful macros
for the C preprocessor. The unit test module contains a starter
implementation of a unit testing framework for Pigweed.

Change-Id: I46e1a4cae1fd8ce36d7840a2e92f8013fb489cde
2019-11-04 16:07:34 -08:00