Merge pull request #2712 from bridadan/test-building-and-config

Fixing constant cleaning when compiling tests
pull/2813/head
Martin Kojtal 2016-09-26 09:54:33 +01:00 committed by GitHub
commit 93e9b486aa
2 changed files with 16 additions and 1 deletions

View File

@ -10,6 +10,7 @@ The way tests are run and compiled in mbed OS 5 is substantially different from
- [Test names](#test-names)
- [Building tests](#building-tests)
- [Building process](#building-process)
- [App config](#app-config)
- [Running tests](#running-tests)
- [Writing tests](#writing-tests)
- [Debugging tests](#debugging-tests)
@ -73,6 +74,12 @@ The full build process is:
1. For each discovered test, build all of its source files and link it with the non-test code that was built in step 1.
1. If specified, create a test specification file and place it in the given directory for use by testing tools. This is placed in the build directory by default when using mbed CLI.
#### App config
When building an mbed application, the presence of a `mbed_app.json` file allows you to set or override different config settings from libraries and targets. However, because the tests share a common build, this can cause issues when tests have different configurations that affect the OS.
If you need to use app config, this must be set via the `--app-config` option when calling `mbed test`. **If this option is not specified, the build system will ignore all `mbed_app.json` files and use the default config values.**
### Running tests
Automated tests can be run easily through mbed CLI. For information on using mbed CLI, please see its documentation.

View File

@ -121,6 +121,15 @@ if __name__ == '__main__':
"Currently set search path: %s"
% (toolchain, search_path))
# App config
# Disable finding `mbed_app.json` files in the source tree if not
# explicitly defined on the command line. Config system searches for
# `mbed_app.json` files if `app_config` is None, but will set the
# app config data to an empty dictionary if the path value is another
# falsey value besides None.
if options.app_config is None:
options.app_config = ''
# Find all tests in the relevant paths
for path in all_paths:
all_tests.update(find_tests(path, mcu, toolchain, options.options,
@ -184,7 +193,6 @@ if __name__ == '__main__':
verbose=options.verbose,
notify=notify,
archive=False,
remove_config_header_file=True,
app_config=options.app_config)
library_build_success = True