mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Merge pull request #2712 from bridadan/test-building-and-config
Fixing constant cleaning when compiling testspull/2813/head
						commit
						93e9b486aa
					
				| 
						 | 
				
			
			@ -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.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue