c61c2a63d0
Unit test runner expects to see the test name echoed after test selection is made. If the unit test immediately goes into sleep mode, UART output will not be complete, and test runner will not see the test name. This flushes the stream buffer and waits for UART FIFO to be empty before starting the test. Additionally some parts of code used unity_printf and some used printf. Since unity_printf was only useful during very early tests when newlib was not available, replace all its usages with printf.
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-appdirectory make menuconfigto configure the Unit Test App.make TEST_COMPONENTS=withTEST_COMPONENTSset to names of the components to be included in the test app. Ormake TESTS_ALL=1to build the test app with all the tests for components havingtestsubdirectory.- 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