* Add Cortex-M4 toolchains with floating point hardware instructions.
* Update stm32f429i-disc1 to use hardware fpu toolchain by default.
* Add code to enable FPU in pw_dumb_io.
Verified tests that use floating point operations continue to pass.
Change-Id: I76bc7eeaf457eca1abacbc60992648d63dc85bf2
Creates a new section in the docs for target documentation, and adds
some documentation for the stm32f429i-disc1 target.
Change-Id: I0ffbfa56a97458d850834fc0f670b32885b0d2b5
- Evaluate each unique path filter once before running the checks.
- Do not output results for skipped checks.
- Add a message that calls out when no files are being checked.
Change-Id: I0d8debd50e7b5838e837693d46e29cc6d9da447e
- Update the PATH to include the new CIPD directories.
- With the current Python test finding approach, Python tests must be
run from the package directory. Update the presubmit check to do this.
Change-Id: Ie1cdf61875643d435608597b27d03695bf46d3c3
pigweed.ensure will need to be installed on swarming bots but
luci.ensure will already be installed on them.
Change-Id: Ieca28dafc6f3d68d7226e93d32d9c18ff32ffe0c
- Glob for */docs.rst in the modules.rst toctree to avoid needing to
list each module's docs entry in three places. Globbing also
automatically maintains alphabetical order.
- Rename a few doc files to docs.rst.
Change-Id: I4ff9a83184d326441b426afea6879a4a7b6740eb
This adds some basic documentation about the Pigweed module structure.
Much more will need to get added, such as rationale and more.
Change-Id: I7b2b16319bc3461ba66db29e9d64a72c862fb157
Add/update docs for the pw_dumb_io facade and backends. Configures GN
build files such that all the backend docs are built even if the backend
isn't in use.
Change-Id: I91fca1cb2d3f5d4b57ae1f6991a89270a35be1c6
- Fix Go formatting, which was accidentally using clang-format.
- Update source_is_in_build_files to query the build system rather than
check build file contents.
- Remove pylint_errors_only check since full pylint is running.
- Add log_run wrapper that logs at debug then calls subprocess.run.
Change-Id: I1a335e2999b5aabcb2a39a2d8bc9fbe43d6dd75b
- Remove the path filter for init_virtualenv since the build depends on
Python.
- Add --clean-py option for cleaning only the Python venv.
- Rename --continue to --keep-going for consistency with Bazel.
- Make updates to Git path handling to correctly handle absolute versus
relative paths.
- Make the .presubmit directory relative to the root of the repo.
Change-Id: I9b2ce32dd4e1a9c993a10f37c252a685625c46ad
Introduce automatic STM32F429I-DISC1 board detection on linux, and
integrate it with the test target runer so the com port doesn't need to
be specified.
Change-Id: I2d8aa67bd03501934e9f2404f8afcef75e7d6aca
This change adds a pw_test_server module which implements a gRPC server
for queueing and distributing unit tests across multiple test runners.
The server is implemented as a Go library which can be imported and used
by developers to build a custom unit test running infrastructure.
To use the server, a UnitTestRunner interface that processes requests to
run unit tests must be implemented and registered with the server. An
implementation of this interface which runs unit test executables
through an external command is provided alongside the server.
An example program that uses the server library to run a unit test
server is also provided within the module. This program uses the
command-based test runners to run unit tests on a local machine. It is
configurable through a config file, allowing multiple workers to be
registered with the server. The program additionally doubles as a gRPC
client for the server which can be invoked with the path to a unit test
executable to schedule it to be run.
Change-Id: I347d230370620395de09e277f9763d7df1c4abad
- Check that all C, C++ sources appear in BUILD and BUILD.gn files.
- Check that all .rst files appear in BUILD.gn files.
- Make the pylint check fatal. The full presubmit will fail until some
issues are fixed. Incremental presubmits (e.g. with the pre-push hook
or pw presubmit --base master) will pass (unless there are errors).
Change-Id: Id42cc2e06278d0e56017a2008676db8e77ba6c20
- Switch many print statements to log statements.
- Only show command output when commands fail or debug logging is
enabled.
- Add a wrapper class for check functions to consolidate running
and logging logic for presubmit checks.
Change-Id: I72e155d602135b60c18f8973a778f40e65bb40da
- pw format (or pw_presubmit/format_code.py) supports checking and
fixing the format of Python, C/C++, GN, and Go code.
- Move code format presubmit checks into format_code.py.
- Accept paths not in a Git repository for pw format.
- Add an explicit check that pw presubmit is run from a Git repo.
Change-Id: I74bf54057bd5ace70a90271f7d1343711455792a
- Rename format_cc.py to format_code.py to make it language-agnostic.
- Exclude non-existing paths in the presubmit to handle deletions.
Change-Id: If07decfd9fe11539bd5ccc74243f00cbf33736b8
Bootstrap scripts now use '#!/usr/bin/env python' instead of
'#!/usr/bin/env python3' which should let them work on a wider variety
of systems. Tested again with python 2 and made a couple minor changes
for compatibility.
Added check_auth() function to update.py. If it fails, it prints a
useful error message and gets ABORT_PW_ENVSETUP=1 added to the
environment. This is a cue to env_setup/setup.sh to not continue so the
error is prominent on the terminal. (env_setup/setup.sh clears this
variable so it won't persist into the next time env_setup/setup.sh is
sourced.)
Change-Id: Ib4a694178f1dce8971302914651feea3c727ea15
This switches the test runner to use Python's logging module instead of
directly printing. Additionally, this switches the default logging to
only log errors and not the contents of every command.
Change-Id: I1d2b69cdd682fca6e4c9a6ffe2d121db60f065dd
snprintf should return a negative number if there is a formatting error.
Limited snprintf implementations may not detect these errors. This
caused the test to fail on the STM32 Discovery F429i.
Change-Id: I1da8593c258508c0d3e2fa6c440a58493ce15597
Add new checkers to 'pw module-check'
- Enforce public include directories as <module>/public/<module>
- Enforce alternate name 'public_overrides/' for headers that don't
match the pattern.
Change-Id: I7bb7823921c921baaae8e46934b5b0b063849850