Merge pull request #1452 from bridadan/vendor-report-info

Adding vendor property to reports
pull/1462/head
Martin Kojtal 2015-12-01 09:41:36 +01:00
commit eb05ae47ec
3 changed files with 18 additions and 5 deletions

View File

@ -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:

View File

@ -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

View File

@ -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'])