Clone of official tools
Diff: test_api.py
- Revision:
- 40:7d3fa6b99b2b
- Parent:
- 36:96847d42f010
- Child:
- 41:2a77626a4c21
diff -r c98cb013e99f -r 7d3fa6b99b2b test_api.py --- a/test_api.py Wed Jul 19 16:44:30 2017 -0500 +++ b/test_api.py Tue Oct 10 16:56:30 2017 -0500 @@ -365,6 +365,7 @@ clean_mbed_libs_options = True if self.opts_goanna_for_mbed_sdk or clean or self.opts_clean else None profile = extract_profile(self.opts_parser, self.opts, toolchain) + stats_depth = self.opts.stats_depth or 2 try: @@ -481,22 +482,13 @@ project_name = self.opts_firmware_global_name if self.opts_firmware_global_name else None try: - path = build_project(test.source_dir, - join(build_dir, test_id), - T, - toolchain, - test.dependencies, - clean=clean_project_options, - verbose=self.opts_verbose, - name=project_name, - macros=MACROS, - inc_dirs=INC_DIRS, - jobs=self.opts_jobs, - report=build_report, - properties=build_properties, - project_id=test_id, - project_description=test.get_description(), - build_profile=profile) + path = build_project(test.source_dir, join(build_dir, test_id), T, + toolchain, test.dependencies, clean=clean_project_options, + verbose=self.opts_verbose, name=project_name, macros=MACROS, + inc_dirs=INC_DIRS, jobs=self.opts_jobs, report=build_report, + properties=build_properties, project_id=test_id, + project_description=test.get_description(), + build_profile=profile, stats_depth=stats_depth) except Exception, e: project_name_str = project_name if project_name is not None else test_id @@ -1987,6 +1979,12 @@ default=False, action="store_true", help='Prints script version and exits') + + parser.add_argument('--stats-depth', + dest='stats_depth', + default=2, + type=int, + help="Depth level for static memory report") return parser def test_path_to_name(path, base): @@ -2038,7 +2036,7 @@ if path_depth == 2: test_group_directory_path, test_case_directory = os.path.split(d) test_group_directory = os.path.basename(test_group_directory_path) - + # Check to make sure discoverd folder is not in a host test directory if test_case_directory != 'host_tests' and test_group_directory != 'host_tests': test_name = test_path_to_name(d, base_dir) @@ -2122,7 +2120,7 @@ clean=False, notify=None, verbose=False, jobs=1, macros=None, silent=False, report=None, properties=None, continue_on_build_fail=False, app_config=None, - build_profile=None): + build_profile=None, stats_depth=None): """Given the data structure from 'find_tests' and the typical build parameters, build all the tests @@ -2158,7 +2156,7 @@ src_path = base_source_paths + [test_path] bin_file = None test_case_folder_name = os.path.basename(test_path) - + args = (src_path, test_build_path, target, toolchain_name) kwargs = { 'jobs': 1, @@ -2172,9 +2170,10 @@ 'app_config': app_config, 'build_profile': build_profile, 'silent': True, - 'toolchain_paths': TOOLCHAIN_PATHS + 'toolchain_paths': TOOLCHAIN_PATHS, + 'stats_depth': stats_depth } - + results.append(p.apply_async(build_test_worker, args, kwargs)) p.close() @@ -2196,10 +2195,11 @@ results.remove(r) # Take report from the kwargs and merge it into existing report - report_entry = worker_result['kwargs']['report'][target_name][toolchain_name] - for test_key in report_entry.keys(): - report[target_name][toolchain_name][test_key] = report_entry[test_key] - + if report: + report_entry = worker_result['kwargs']['report'][target_name][toolchain_name] + for test_key in report_entry.keys(): + report[target_name][toolchain_name][test_key] = report_entry[test_key] + # Set the overall result to a failure if a build failure occurred if ('reason' in worker_result and not worker_result['reason'] and @@ -2222,7 +2222,8 @@ } test_key = worker_result['kwargs']['project_id'].upper() - print report[target_name][toolchain_name][test_key][0][0]['output'].rstrip() + if report: + print report[target_name][toolchain_name][test_key][0][0]['output'].rstrip() print 'Image: %s\n' % bin_file except: