Setup
Intro + setup.
Getting to blinky.
Writing tests.
Calling RPCs.
Key Value Store.
Testing in the factory.
Instructions are the same as flashing blinky but passing in a different .elf
.
Run the compile with pw watch out
or ninja -C out
.
Flash the test .elf
arduino_unit_test_runner --config out/arduino_debug/gen/arduino_builder_config.json --upload-tool teensyloader --verbose --flash-only out/arduino_debug/obj/workshop/02-string-functions/bin/string_demo.elf
Tail the output with miniterm
, (use Ctrl-]
to quit).
python -m serial.tools.miniterm --raw - 115200
You should see something like:
$ python -m serial.tools.miniterm --raw - 115200 --- Available ports: --- 1: /dev/ttyACM0 'USB Serial' --- Enter port index or full name: 1 --- Miniterm on /dev/ttyACM0 115200,8,N,1 --- --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- INF Teensy Time: RTC has set the system time. INF Offs. 0 1 2 3 4 5 6 7 8 9 a b c d e f Text INF 0000: 53 75 70 65 72 20 53 69 6d 70 6c 65 20 54 69 6d Super Simple Tim INF 0010: 65 20 4c 6f 67 67 69 6e 67 21 00 e Logging!. INF 2020-11-04 14:35:35 INF 2020-11-04 14:35:36 INF 2020-11-04 14:35:37 INF 2020-11-04 14:35:38 INF 2020-11-04 14:35:39 --- exit ---
All tests are set to use plain text logging. This is specified by the pw_log_BACKEND
variable in the target_toolchain.gni
files. For example the arduino_debug_tests
toolchain in $dir_pigweed_experimental/targets/arduino/target_toolchains.gni
defines: pw_log_BACKEND = "$dir_pw_log_basic"
Goal: Write a test for the GetStatusString()
function.
It can be added to /workshop/02-string-functions/system_status_test.cc.
After compiling use arduino_unit_test_runner
to flash and check test output.
Teensy
arduino_unit_test_runner --config out/arduino_debug/gen/arduino_builder_config.json --upload-tool teensyloader --verbose out/arduino_debug/obj/workshop/02-string-functions/test/system_status_test.elf
stm32f429i_disc1
stm32f429i_disc1_unit_test_runner --verbose out/stm32f429i_disc1_debug/obj/workshop/02-string-functions/test/system_status_test.elf
Make sure the pw_arduino_use_test_server=true
build arg is set.
Start the unit test server for your board.
Teensy
arduino_test_server --verbose --config-file ./out/arduino_debug/gen/arduino_builder_config.json
stm32f429i_disc1
stm32f429i_disc1_test_server --verbose
In a separate terminal start pw watch.
pw watch out