Coverage: Add support for TSIM format

This commit is contained in:
Vijay Kumar Banerjee
2019-02-01 01:01:42 +05:30
committed by Chris Johns
parent 4828c19d38
commit f6d30db99b
3 changed files with 33 additions and 18 deletions

View File

@@ -45,6 +45,7 @@ from rtemstoolkit import path
from rtemstoolkit import log from rtemstoolkit import log
from rtemstoolkit import execute from rtemstoolkit import execute
from rtemstoolkit import macros from rtemstoolkit import macros
from rtemstoolkit import version
import options import options
@@ -288,14 +289,20 @@ class covoar(object):
''' '''
Covoar runner 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.base_result_dir = base_result_dir
self.config_dir = config_dir self.config_dir = config_dir
self.executables = ' '.join(executables) self.executables = ' '.join(executables)
self.explanations_txt = explanations_txt self.project_name = 'RTEMS-' + str(version.version())
self.project_name = 'RTEMS-5'
self.trace = trace self.trace = trace
self.prefix = prefix self.prefix = prefix
self.covoar_cmd = covoar_cmd
def _find_covoar(self): def _find_covoar(self):
covoar_exe = 'covoar' covoar_exe = 'covoar'
@@ -316,10 +323,11 @@ class covoar(object):
if not path.exists(symbol_file): if not path.exists(symbol_file):
raise error.general('coverage: no symbol set file: %s'% (symbol_file)) raise error.general('coverage: no symbol set file: %s'% (symbol_file))
exe = self._find_covoar() exe = self._find_covoar()
command = exe + ' -S ' + symbol_file + \ command = exe + ' -O ' + covoar_result_dir + \
' -O ' + covoar_result_dir + \ ' -p ' + self.project_name + \
' -E ' + self.explanations_txt + \ ' ' + self.executables + ' '
' -p ' + self.project_name + ' ' + self.executables command += self.covoar_cmd
log.notice() log.notice()
log.notice('Running coverage analysis: %s (%s)' % (set_name, covoar_result_dir)) log.notice('Running coverage analysis: %s (%s)' % (set_name, covoar_result_dir))
start_time = datetime.datetime.now() start_time = datetime.datetime.now()
@@ -344,7 +352,6 @@ class coverage_run(object):
self.trace = trace self.trace = trace
self.macros = macros_ self.macros = macros_
self.build_dir = self.macros['_cwd'] 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') self.test_dir = path.join(self.build_dir, self.macros['bsp'] + '-coverage')
if not path.exists(self.test_dir): if not path.exists(self.test_dir):
path.mkdir(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.coverage_config_path = path.join(self.rtscripts, 'coverage')
self.symbol_config_path = path.join(self.coverage_config_path, self.symbol_config_path = path.join(self.coverage_config_path,
'symbol-sets.ini') 'symbol-sets.ini')
self.symbol_select_path = path.join(self.coverage_config_path, self.symbol_select_path = self.macros.expand(self.macros['bsp_symbol_path'])
self.macros['bsp'] + '-symbols.ini')
self.executables = executables self.executables = executables
self.symbol_sets = [] self.symbol_sets = []
self.no_clean = int(self.macros['_no_clean']) 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.bsp_name = self.macros['bsp'].split('-')[0]
self.prefix = prefix self.prefix = prefix
self.macros.define('coverage') self.macros.define('coverage')
self.covoar_cmd = self.macros.expand(self.macros['bsp_covoar_cmd'])
def run(self): def run(self):
try: try:
@@ -379,10 +386,12 @@ class coverage_run(object):
symbol_sets = parser.parse() symbol_sets = parser.parse()
for sset in symbol_sets: for sset in symbol_sets:
parser.write_ini(sset) parser.write_ini(sset)
covoar_runner = covoar(self.test_dir, self.symbol_select_path, covoar_runner = covoar(self.test_dir,
self.executables, self.explanations_txt, self.symbol_select_path,
self.executables,
self.trace, self.trace,
self.prefix) self.prefix,
self.covoar_cmd)
covoar_runner.run(sset, self.symbol_select_path) covoar_runner.run(sset, self.symbol_select_path)
self._generate_reports(symbol_sets); self._generate_reports(symbol_sets);
self._summarize(); self._summarize();

View File

@@ -32,8 +32,10 @@
# The leon3 BSP on sis with coverage # The leon3 BSP on sis with coverage
# #
[leon3-sis-cov] [leon3-sis-cov]
bsp = leon3 bsp = leon3-sis
arch = sparc arch = sparc
tester = %{_rtscripts}/run.cfg tester = %{_rtscripts}/run.cfg
bsp_run_cmd = %{rtems_tools}/%{bsp_arch}-rtems%{rtems_version}-sis target = sparc-rtems5
bsp_run_opts = -leon3 -nouartrx -r -tlim 200 s -cov 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

View File

@@ -122,5 +122,9 @@ _rtbase: none, none, '%{_rtdir}'
_rttesting: none, none, '%{_rtbase}/rtems/testing' _rttesting: none, none, '%{_rtbase}/rtems/testing'
_configdir: none, none, '%{_rtbase}/config:%{_rttesting}' _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 the testing macros.
%include %{_rttesting}/testing.mc %include %{_rttesting}/testing.mc