mirror of https://github.com/ARMmbed/mbed-os.git
Description =========== Added thread model for function SingleTest::execute where for each target we have separate thread. Added new experimental feature. Currently we are only building in parallel mbed SDK and libraries with dependencies. Each MUT is flashed separately, but with this new feature we are able to flash multiple boards at the same time and get results in parallel. Test execution time is reduced by n where n is number of MUTs (MUT: mbed under test). using --parallel means that: * separate thread will be spawned to build mbed SDK and dependencies (libraries) for each unique target with all declared toolchains. E.g: Thread(n==1): LPC1768: ARM, uARM, GCC_ARM Thread(n==2): K64F: ARM, GCC_ARM Thread(n==3): NUCLEO_X: uARM . . . Thread(4): for toolchain in NUCLEO_Z[toolchains] -> build mbed SDK -> build libs -> build project -> run MUT testrunner return test results for NUCLEO_Z[toolchain] Done: 1. Added option --parallel. 2. Decoupled execute function so it can be run in parallel with other execute functions. 3. Thread join via Queue, not Thread::Join() to avoid deadlocks or waits for particular thread to finish. 4. All builds are in parallel, but because each target and library for each toolchain have different directory we do not worry about building in parallel and compiler collisions. Missing: 1. No sync for 'print' (TODO). 2. No sync on test result structures - not needed because we only append to them (?). Experimental --parallel bugfix: self.test_suite_properties_ext dict was not populated with target name. |
||
---|---|---|
.. | ||
buildbot | ||
data | ||
dev | ||
export | ||
host_tests | ||
toolchains | ||
__init__.py | ||
build.py | ||
build_api.py | ||
build_release.py | ||
build_travis.py | ||
export_test.py | ||
hooks.py | ||
libraries.py | ||
make.py | ||
options.py | ||
patch.py | ||
paths.py | ||
project.py | ||
settings.py | ||
singletest.py | ||
size.py | ||
synch.py | ||
targets.py | ||
test_api.py | ||
test_db.py | ||
test_exporters.py | ||
test_mysql.py | ||
test_webapi.py | ||
tests.py | ||
utils.py |