Updates pigweed to depend directly on is_host_toolchain provided by the
toolchain. Also adds a toolchain option that controls the extension of
final linked binaries.
Change-Id: Ia9499fe5974997a5bbc0bb9cfb89b5569b987189
Require targets to explicitly import pigweed variable definitions. This
moves out some necessary logic from the BUILDCONFIG.gn file.
Change-Id: If9c9fe5a680cc9d897a0e8a55889873be618ed84
- For run_async, replace the silent option with the log_output option.
With log_output, lines are read one-by-one and logged. Otherwise, the
output is dumped to a temporary file.
- For tests, only log the output on failure. This substantially speeds
up verbose tests. A pw_kvs test went from 38 s to 1.2 s when
passing, or 26 s when failing and printing the output.
Change-Id: Iba18c555c07eeaa9eb5ba79bc8d36d3ef2435485
- Fix several typing issues.
- Disable type checking in several places where mypy wasn't working
correctly.
- Enable mypy.
- Execute individual steps in the same order as they are provided with
--step.
Change-Id: I229cf8ee39a4db5067c1923b4acfc5fcd164f733
Renames occurrences of PW_BOOT_INTERRUPT_VECTOR_TABLE_* to
PW_BOOT_VECTOR_TABLE_* for consistency in naming and to match ARMv7-M
documentation.
Change-Id: Ic34c8b56ee6e87955fe5dd076344f4b648974767
This starts a logging module facade, with a frontend and a dumb IO based
backend. The initial version is lacking many features, like an API to
control enabling or disabling logs.
Change-Id: I3075aed33d9600a1190ca5237b5f7cfcfdc8f2ed
pw_boot_armv7m provides a generic linker script and startup script to
speed up device bringup on ARMv7-M based cores.
Change-Id: Ia4abe78ab1d6bde017608eeb46b2e780bf53dad1
Updates pw_target_runner (and other) docs to reflect the name change
from pw_test_server to pw_target_runner.
Change-Id: Iffa81088b81a1b83c285949c73fbf93e23f478a3
The --verbose flag for stm32f429i_disc1_unit_test_runner wasn't properly
changing log level when run as a standalone utility. This change ensures
the -v/--verbose flag properly sets the logging level to debug.
Change-Id: Icf767b3b31834447b1b5d089b05585bc22061999
Switch to using pyserial's list_ports tool to detect attached
STM32F429I-DISC1 boards. Theoretically, this allows autodetection to
work as expected on macOS/Windows as well.
Change-Id: I8fbde757bbd7a167103b07d6a073bbbbe3053e65
If a host tool is running when the pw_host_tool tries to copy a newer
version into the host_tools/ directory, the copy fails. This change
prints out a user-friendly error indicating the problem.
Change-Id: I7b25f709150f40e1ad9c8c7e63cbfa9f9f9a53e5
This change updates the stm32f429i test server and client scripts to use
pw_target_runner instead of pw_test_server.
Change-Id: I82dd2b043c5517571cecff6c0e306056507fc950
* Correctly specify the path to the client script from GN.
* Use subprocess instead of pw_cli.process to remove dependency on
pw_cli and reduce output log clutter.
* Set test run target as Ninja default.
Change-Id: Iae01eae107a8eb52e26e772120d2f6ed8052ee37
Adds a build argument to the stm32f429i-disc1 target that enables
running tests via the pw_test_server.
Change-Id: I76c98fa25d27c771251e41de8631f156572f7731
This change introduces pw_cpu_exception, a facade that provides a
high-level interface for handling CPU exceptions.
Change-Id: I1f98ac82dd54040448b2e2ac32a392c49cb6dfba
* 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
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
- Try to use pw_cli logger for test output format.
- Log each line of captured subprocess output individually.
- Minor tweaks to log statements.
Example:
...
20191202 14:38:19 OUT [26656] INF [ OK ] Format.ArgumentLargerThanBuffer_ReturnsResourceExhausted
20191202 14:38:19 OUT [26656] INF [ RUN ] Format.CallFormatWithVaList_CallsCorrectFormatOverload
20191202 14:38:19 OUT [26656] INF [ OK ] Format.CallFormatWithVaList_CallsCorrectFormatOverload
20191202 14:38:19 OUT [26656] INF [==========] Done running all tests.
20191202 14:38:19 OUT [26656] INF [ PASSED ] 6 test(s).
20191202 14:38:19 OUT [26656] INF [ FAILED ] 1 test(s).
20191202 14:38:19 OUT [26656] ERR Test suite had one or more failures
20191202 14:38:19 ERR stm32f429i_disc1_unit_test_runner exited with status 1
20191202 14:38:19 INF Test 9/10: [FAIL] format_test
...
Change-Id: I99798f5c7d4770c4cf5def7ae621a374cad7f89b
The stm32f429i-disc1 test runner had some flakiness caused by a race
condition between the device and host. This change ensures all the
device test output is captured.
Change-Id: Ic1c68b2e680ab50536c747d31498ef46442afc41
Adds a script that flashes and runs a test on the stm32f429i-disc1
development board. Requires openocd and pyserial.
Example output:
~/pigweed/pigweed$ stm32f429i_disc1_unit_test_runner out/stm32f429i-disc1/obj/pw_unit_test/framework_test.elf --openocd-config targets/stm32f429i-disc1/openocd_stm32f4xx.cfg --port /dev/ttyACM0
TEST - 2019-11-25 13:50:43 - INFO - Launching test binary out/stm32f429i-disc1/obj/pw_unit_test/framework_test.elf
TEST - 2019-11-25 13:50:43 - INFO - Flashing firmware to device...
TEST - 2019-11-25 13:50:44 - INFO - Successfully flashed firmware to device!
TEST - 2019-11-25 13:50:44 - INFO - Test passed!
Change-Id: I111387bd967700e3eab6764a14b1890caedeb68d