.. | |||
device | 4 years ago | ||
icetea_plugins | 5 years ago | ||
testcases | 5 years ago | ||
__init__.py | 5 years ago | ||
readme.md | 5 years ago |
Mbed OS has a folder called TEST_APPS
that contains everything related to Icetea testing.
There are currently three folders:
device
- contains all the different test applications you can flash to your board.icetea_plugins
- contains plugins that are being used by some of the testcases, needed for the test execution.testcases
- contains Icetea testcases written in Python.The testcases depend on test applications.
You need Icetea and version 1.8.0 or higher of Mbed CLI installed.
Depending on the device, there might be a default network interface type defined in mbed-os/targets/targets.json
, which you can use to locate a default test-config file.
If the default network interface type is not defined or you want to use a different interface than the default, you need to provide a test-config file to the mbed test with --test-config
option.
The test-config file contains the necessary information for the test application. There are some test-config files located under mbed-os/tools/test_configs
.
Devices that have their network drivers residing inside mbed-os
can use generic test_configs
, such as HeapBlockDeviceAndEthernetInterface.json
and HeapBlockDeviceAndWifiInterface.json
. Otherwise, you need to use a device-specific test-config.
Now that you have selected the interface, you can run the Icetea tests from the mbed-os
root on your command-line by running the following command:
mbed test -m <target> -t <toolchain> --icetea
This command compiles the OS, compiles the test applications, creates a test suite and then starts running the tests.
If you only want to run some specific tests, you can use the -n
option. You can choose multiple tests by separating them with a comma (,
):
mbed test -m <target> -t <toolchain> --icetea -n test1,test2
Some devices may offer multiple network interfaces to operate with. For example, UBLOX_EVK_ODIN_W2
offers ethernet and Wi-Fi capabilities.
The tests can be run for either one of those using already existing test-config -files.
To run the tests with the Wi-Fi interface:
mbed test -m UBLOX_EVK_ODIN_W2 -t <toolchain> --icetea --test-config tools/test_configs/HeapBlockDeviceAndWifiInterface.json
To run the tests with the ethernet interface:
mbed test -m UBLOX_EVK_ODIN_W2 -t <toolchain> --icetea --test-config tools/test_configs/HeapBlockDeviceAndEthernetInterface.json
If you are using the Wi-Fi interface for running the tests, you need to also provide information about the used access point.
The information can be provided in the used test-config file.
Example of access point information:
"target_overrides": { "*": { "target.network-default-interface-type": "WIFI", "nsapi.default-wifi-ssid": "\"ssid\"", "nsapi.default-wifi-password": "\"password\"", "nsapi.default-wifi-security": "WPA_WPA2" } }
Icetea prints the results from the test run to the command-line, and the final result looks similar to this:
+--------------------------------+---------+-------------+-------------+-----------+----------+ | Testcase | Verdict | Fail Reason | Skip Reason | platforms | duration | +--------------------------------+---------+-------------+-------------+-----------+----------+ | test_cmdline | pass | | | K64F | 8.555 | | UDPSOCKET_BIND_PORT | pass | | | K64F | 19.614 | | TCPSOCKET_BIND_PORT | pass | | | K64F | 15.852 | | TCPSERVER_ACCEPT | pass | | | K64F | 41.629 | | TCPSOCKET_ECHOTEST_BURST_SHORT | pass | | | K64F | 19.926 | +--------------------------------+---------+-------------+-------------+-----------+----------+ +---------------+----------------+ | Summary | | +---------------+----------------+ | Final Verdict | PASS | | count | 5 | | passrate | 100.00 % | | pass | 5 | | Duration | 0:01:45.576000 | +---------------+----------------+
You can also find the results from the tests in the mbed-os/log
folder.
You probably want to add the log folder to your .mbedignore
file to prevent issues with build commands becoming too long over the time.