mirror of
https://git.rtems.org/rtems-tools/
synced 2025-10-18 23:09:36 +08:00
Coverage: Add support for TSIM format
This commit is contained in:

committed by
Chris Johns

parent
4828c19d38
commit
f6d30db99b
@@ -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();
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user