diff --git a/workspace_tools/build_api.py b/workspace_tools/build_api.py index 26828ed7bd..2b5f349cee 100644 --- a/workspace_tools/build_api.py +++ b/workspace_tools/build_api.py @@ -45,7 +45,7 @@ def prep_report(report, target_name, toolchain_name, id_name): if not id_name in report[target_name][toolchain_name]: report[target_name][toolchain_name][id_name] = [] -def prep_properties(properties, target_name, toolchain_name, id_name): +def prep_properties(properties, target_name, toolchain_name, vendor_label): # Setup test properties if not target_name in properties: properties[target_name] = {} @@ -54,6 +54,7 @@ def prep_properties(properties, target_name, toolchain_name, id_name): properties[target_name][toolchain_name] = {} properties[target_name][toolchain_name]["target"] = target_name + properties[target_name][toolchain_name]["vendor"] = vendor_label properties[target_name][toolchain_name]["toolchain"] = toolchain_name def create_result(target_name, toolchain_name, id_name, description): @@ -105,12 +106,13 @@ def build_project(src_path, build_path, target, toolchain_name, start = time() id_name = project_id.upper() description = project_description + vendor_label = target.extra_labels[0] cur_result = None prep_report(report, target.name, toolchain_name, id_name) cur_result = create_result(target.name, toolchain_name, id_name, description) if properties != None: - prep_properties(properties, target.name, toolchain_name, id_name) + prep_properties(properties, target.name, toolchain_name, vendor_label) try: # Scan src_path and libraries_paths for resources @@ -200,12 +202,13 @@ def build_library(src_paths, build_path, target, toolchain_name, start = time() id_name = name.upper() description = name + vendor_label = target.extra_labels[0] cur_result = None prep_report(report, target.name, toolchain_name, id_name) cur_result = create_result(target.name, toolchain_name, id_name, description) if properties != None: - prep_properties(properties, target.name, toolchain_name, id_name) + prep_properties(properties, target.name, toolchain_name, vendor_label) for src_path in src_paths: if not exists(src_path): @@ -328,12 +331,13 @@ def build_mbed_libs(target, toolchain_name, options=None, verbose=False, clean=F start = time() id_name = "MBED" description = "mbed SDK" + vendor_label = target.extra_labels[0] cur_result = None prep_report(report, target.name, toolchain_name, id_name) cur_result = create_result(target.name, toolchain_name, id_name, description) if properties != None: - prep_properties(properties, target.name, toolchain_name, id_name) + prep_properties(properties, target.name, toolchain_name, vendor_label) # Check toolchain support if toolchain_name not in target.supported_toolchains: diff --git a/workspace_tools/test_api.py b/workspace_tools/test_api.py index 9b10a66a55..530e113c86 100644 --- a/workspace_tools/test_api.py +++ b/workspace_tools/test_api.py @@ -312,12 +312,15 @@ class SingleTestRunner(object): for toolchain in toolchains: tt_id = "%s::%s" % (toolchain, target) + T = TARGET_MAP[target] + # print target, toolchain # Test suite properties returned to external tools like CI test_suite_properties = { 'jobs': self.opts_jobs, 'clean': clean, 'target': target, + 'vendor': T.extra_labels[0], 'test_ids': ', '.join(test_ids), 'toolchain': toolchain, 'shuffle_random_seed': self.shuffle_random_seed @@ -330,7 +333,6 @@ class SingleTestRunner(object): print self.logger.log_line(self.logger.LogType.NOTIF, 'Skipped tests for %s target. Target platform not found'% (target)) continue - T = TARGET_MAP[target] build_mbed_libs_options = ["analyze"] if self.opts_goanna_for_mbed_sdk else None clean_mbed_libs_options = True if self.opts_goanna_for_mbed_sdk or clean or self.opts_clean else None diff --git a/workspace_tools/upload_results.py b/workspace_tools/upload_results.py index 8b77541b86..9ee88c0155 100644 --- a/workspace_tools/upload_results.py +++ b/workspace_tools/upload_results.py @@ -115,6 +115,7 @@ def add_project_runs(args): project_run_data = {} project_run_data['projectRuns'] = {} project_run_data['platforms_set'] = set() + project_run_data['vendors_set'] = set() project_run_data['toolchains_set'] = set() project_run_data['names_set'] = set() project_run_data['hostOses_set'] = set() @@ -140,6 +141,7 @@ def format_project_run_data(project_run_data): ts_data['projectRuns'].append(project) ts_data['platforms'] = list(project_run_data['platforms_set']) + ts_data['vendors'] = list(project_run_data['vendors_set']) ts_data['toolchains'] = list(project_run_data['toolchains_set']) ts_data['names'] = list(project_run_data['names_set']) ts_data['hostOses'] = list(project_run_data['hostOses_set']) @@ -203,6 +205,7 @@ def add_report(project_run_data, report_file, is_build, build_id, host_os): for test_suite in test_suites: platform = "" toolchain = "" + vendor = "" for properties in test_suite.findall('properties'): for property in properties.findall('property'): if property.attrib['name'] == 'target': @@ -211,6 +214,9 @@ def add_report(project_run_data, report_file, is_build, build_id, host_os): elif property.attrib['name'] == 'toolchain': toolchain = property.attrib['value'] project_run_data['toolchains_set'].add(toolchain) + elif property.attrib['name'] == 'vendor': + vendor = property.attrib['value'] + project_run_data['vendors_set'].add(vendor) for test_case in test_suite.findall('testcase'): projectRun = {} @@ -219,6 +225,7 @@ def add_report(project_run_data, report_file, is_build, build_id, host_os): projectRun['platform'] = platform projectRun['toolchain'] = toolchain projectRun['project'] = test_case.attrib['classname'].split('.')[-1] + projectRun['vendor'] = vendor project_run_data['names_set'].add(projectRun['project'])