esp-idf/tools/unit-test-app
Angus Gratton 17adb40ca8 bootloader: Calculate SHA256 hash of image on every boot
Makes app image booting more reliable (256-bit rather than 8-bit verification.)

Some measurements, time to boot a 655KB app.bin file and run to app_main() execution.

(All for rev 1 silicon, ie no 340ms spurious WDT delay.)

80MHz QIO mode:
before = 300ms
after = 140ms

40MHz DIO mode:
before = 712ms
after = 577ms

40MHz DIO mode, secure boot enabled
before = 1380ms
after = 934ms

(Secure boot involves two ECC signature verifications (partition table, app) that take approx 300ms each with 80MHz CPU.)
2017-07-19 18:31:59 +10:00
..
components/unity test runner: Print test name when starting, print filter description 2017-06-26 15:38:46 +10:00
main Add libsodium v1.0.12 2017-06-14 15:51:08 +10:00
tools CI: fix bug of duplicated unit test case ID: 2017-06-03 11:38:05 +08:00
Makefile CI: save download config in CI build jobs: 2017-05-02 13:17:56 +08:00
partition_table_unit_test_app.csv unit-test-app: increase space for factory partition to 1280K 2017-06-15 18:15:36 +08:00
README.md unit test runer: Add capability to use ![tag] to run all-tests-except-tag 2017-05-10 17:22:30 +10:00
sdkconfig bootloader: Calculate SHA256 hash of image on every boot 2017-07-19 18:31:59 +10:00

Unit Test App

ESP-IDF unit tests are run using Unit Test App. The app can be built with the unit tests for a specific component. Unit tests are in test subdirectories of respective components.

Building Unit Test App

  • Follow the setup instructions in the top-level esp-idf README.
  • Set IDF_PATH environment variable to point to the path to the esp-idf top-level directory.
  • Change into tools/unit-test-app directory
  • make menuconfig to configure the Unit Test App.
  • make TEST_COMPONENTS= with TEST_COMPONENTS set to names of the components to be included in the test app. Or make TESTS_ALL=1 to build the test app with all the tests for components having test subdirectory.
  • Follow the printed instructions to flash, or run make flash.

Running Unit Tests

The unit test loader will prompt by showing a menu of available tests to run:

  • Type a number to run a single test.
  • * to run all tests.
  • [tagname] to run tests with "tag"
  • ![tagname] to run tests without "tag" (![ignore] is very useful as it runs all CI-enabled tests.)
  • "test name here" to run test with given name