From f6d30db99bcf98065e13a3e5ab41c0760573d956 Mon Sep 17 00:00:00 2001 From: Vijay Kumar Banerjee Date: Fri, 1 Feb 2019 01:01:42 +0530 Subject: Coverage: Add support for TSIM format --- tester/rt/coverage.py | 35 ++++++++++++++++++----------- tester/rtems/testing/bsps/leon3-sis-cov.ini | 12 +++++----- tester/rtems/testing/defaults.mc | 4 ++++ 3 files changed, 33 insertions(+), 18 deletions(-) diff --git a/tester/rt/coverage.py b/tester/rt/coverage.py index 9fc9b64..eef88f7 100644 --- a/tester/rt/coverage.py +++ b/tester/rt/coverage.py @@ -45,6 +45,7 @@ from rtemstoolkit import path from rtemstoolkit import log from rtemstoolkit import execute from rtemstoolkit import macros +from rtemstoolkit import version import options @@ -288,14 +289,20 @@ class covoar(object): ''' Covoar runner ''' - def __init__(self, base_result_dir, config_dir, executables, explanations_txt, trace, prefix): + def __init__(self, + base_result_dir, + config_dir, + executables, + trace, + prefix, + covoar_cmd): self.base_result_dir = base_result_dir self.config_dir = config_dir self.executables = ' '.join(executables) - self.explanations_txt = explanations_txt - self.project_name = 'RTEMS-5' + self.project_name = 'RTEMS-' + str(version.version()) self.trace = trace self.prefix = prefix + self.covoar_cmd = covoar_cmd def _find_covoar(self): covoar_exe = 'covoar' @@ -316,10 +323,11 @@ class covoar(object): if not path.exists(symbol_file): raise error.general('coverage: no symbol set file: %s'% (symbol_file)) exe = self._find_covoar() - command = exe + ' -S ' + symbol_file + \ - ' -O ' + covoar_result_dir + \ - ' -E ' + self.explanations_txt + \ - ' -p ' + self.project_name + ' ' + self.executables + command = exe + ' -O ' + covoar_result_dir + \ + ' -p ' + self.project_name + \ + ' ' + self.executables + ' ' + command += self.covoar_cmd + log.notice() log.notice('Running coverage analysis: %s (%s)' % (set_name, covoar_result_dir)) start_time = datetime.datetime.now() @@ -344,7 +352,6 @@ class coverage_run(object): self.trace = trace self.macros = macros_ self.build_dir = self.macros['_cwd'] - self.explanations_txt = self.macros.expand(self.macros['cov_explanations']) self.test_dir = path.join(self.build_dir, self.macros['bsp'] + '-coverage') if not path.exists(self.test_dir): path.mkdir(self.test_dir) @@ -353,8 +360,7 @@ class coverage_run(object): self.coverage_config_path = path.join(self.rtscripts, 'coverage') self.symbol_config_path = path.join(self.coverage_config_path, 'symbol-sets.ini') - self.symbol_select_path = path.join(self.coverage_config_path, - self.macros['bsp'] + '-symbols.ini') + self.symbol_select_path = self.macros.expand(self.macros['bsp_symbol_path']) self.executables = executables self.symbol_sets = [] self.no_clean = int(self.macros['_no_clean']) @@ -364,6 +370,7 @@ class coverage_run(object): self.bsp_name = self.macros['bsp'].split('-')[0] self.prefix = prefix self.macros.define('coverage') + self.covoar_cmd = self.macros.expand(self.macros['bsp_covoar_cmd']) def run(self): try: @@ -379,10 +386,12 @@ class coverage_run(object): symbol_sets = parser.parse() for sset in symbol_sets: parser.write_ini(sset) - covoar_runner = covoar(self.test_dir, self.symbol_select_path, - self.executables, self.explanations_txt, + covoar_runner = covoar(self.test_dir, + self.symbol_select_path, + self.executables, self.trace, - self.prefix) + self.prefix, + self.covoar_cmd) covoar_runner.run(sset, self.symbol_select_path) self._generate_reports(symbol_sets); self._summarize(); diff --git a/tester/rtems/testing/bsps/leon3-sis-cov.ini b/tester/rtems/testing/bsps/leon3-sis-cov.ini index f0a2ab9..626d314 100644 --- a/tester/rtems/testing/bsps/leon3-sis-cov.ini +++ b/tester/rtems/testing/bsps/leon3-sis-cov.ini @@ -32,8 +32,10 @@ # The leon3 BSP on sis with coverage # [leon3-sis-cov] -bsp = leon3 -arch = sparc -tester = %{_rtscripts}/run.cfg -bsp_run_cmd = %{rtems_tools}/%{bsp_arch}-rtems%{rtems_version}-sis -bsp_run_opts = -leon3 -nouartrx -r -tlim 200 s -cov +bsp = leon3-sis +arch = sparc +tester = %{_rtscripts}/run.cfg +target = sparc-rtems5 +bsp_run_cmd = %{rtems_tools}/%{bsp_arch}-rtems%{rtems_version}-sis +bsp_run_opts = -leon3 -nouartrx -r -tlim 200 s -cov +bsp_covoar_cmd = -S %{bsp_symbol_path} -E %{cov_explanations} -f TSIM diff --git a/tester/rtems/testing/defaults.mc b/tester/rtems/testing/defaults.mc index 54212e0..d3e16a9 100644 --- a/tester/rtems/testing/defaults.mc +++ b/tester/rtems/testing/defaults.mc @@ -122,5 +122,9 @@ _rtbase: none, none, '%{_rtdir}' _rttesting: none, none, '%{_rtbase}/rtems/testing' _configdir: none, none, '%{_rtbase}/config:%{_rttesting}' +#Coverage macros +bsp_symbol_path: none, none, '%{_rtscripts}/coverage/%{bsp}-symbols.ini' +project_name: none, none, 'RTEMS-%{rtems_version}' + # Include the testing macros. %include %{_rttesting}/testing.mc -- cgit v1.2.3