twister: move more code from main script
Move code from twister script into respective classes. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
f539f1dc48
commit
57dbaa3da3
3 changed files with 44 additions and 34 deletions
|
@ -207,3 +207,29 @@ class Gcovr(CoverageTool):
|
||||||
"--html-details"] + tracefiles +
|
"--html-details"] + tracefiles +
|
||||||
["-o", os.path.join(subdir, "index.html")],
|
["-o", os.path.join(subdir, "index.html")],
|
||||||
stdout=coveragelog)
|
stdout=coveragelog)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def run_coverage(testplan, options):
|
||||||
|
if not options.gcov_tool:
|
||||||
|
use_system_gcov = False
|
||||||
|
|
||||||
|
for plat in options.coverage_platform:
|
||||||
|
ts_plat = testplan.get_platform(plat)
|
||||||
|
if ts_plat and (ts_plat.type in {"native", "unit"}):
|
||||||
|
use_system_gcov = True
|
||||||
|
|
||||||
|
if use_system_gcov or "ZEPHYR_SDK_INSTALL_DIR" not in os.environ:
|
||||||
|
options.gcov_tool = "gcov"
|
||||||
|
else:
|
||||||
|
options.gcov_tool = os.path.join(os.environ["ZEPHYR_SDK_INSTALL_DIR"],
|
||||||
|
"x86_64-zephyr-elf/bin/x86_64-zephyr-elf-gcov")
|
||||||
|
|
||||||
|
logger.info("Generating coverage files...")
|
||||||
|
coverage_tool = CoverageTool.factory(options.coverage_tool)
|
||||||
|
coverage_tool.gcov_tool = options.gcov_tool
|
||||||
|
coverage_tool.base_dir = os.path.abspath(options.coverage_basedir)
|
||||||
|
coverage_tool.add_ignore_file('generated')
|
||||||
|
coverage_tool.add_ignore_directory('tests')
|
||||||
|
coverage_tool.add_ignore_directory('samples')
|
||||||
|
coverage_tool.generate(options.outdir)
|
||||||
|
|
|
@ -186,6 +186,18 @@ class HardwareMap:
|
||||||
d.fixtures.extend(self.options.fixture)
|
d.fixtures.extend(self.options.fixture)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
def summary(self, selected_platforms):
|
||||||
|
print("\nHardware distribution summary:\n")
|
||||||
|
table = []
|
||||||
|
header = ['Board', 'ID', 'Counter']
|
||||||
|
for d in self.duts:
|
||||||
|
if d.connected and d.platform in selected_platforms:
|
||||||
|
row = [d.platform, d.id, d.counter]
|
||||||
|
table.append(row)
|
||||||
|
print(tabulate(table, headers=header, tablefmt="github"))
|
||||||
|
|
||||||
|
|
||||||
def add_device(self, serial, platform, pre_script, is_pty, baud=None):
|
def add_device(self, serial, platform, pre_script, is_pty, baud=None):
|
||||||
device = DUT(platform=platform, connected=True, pre_script=pre_script, serial_baud=baud)
|
device = DUT(platform=platform, connected=True, pre_script=pre_script, serial_baud=baud)
|
||||||
|
|
||||||
|
|
|
@ -199,11 +199,10 @@ except ImportError:
|
||||||
sys.path.insert(0, os.path.join(ZEPHYR_BASE, "scripts/pylib/twister"))
|
sys.path.insert(0, os.path.join(ZEPHYR_BASE, "scripts/pylib/twister"))
|
||||||
|
|
||||||
from twister.testplan import TestPlan
|
from twister.testplan import TestPlan
|
||||||
from twister.runner import ExecutionCounter
|
from twister.enviornment import TwisterEnv
|
||||||
from twister.enviornment import TwisterEnv, canonical_zephyr_base
|
|
||||||
from twister.reports import Reporting
|
from twister.reports import Reporting
|
||||||
from twister.hardwaremap import HardwareMap
|
from twister.hardwaremap import HardwareMap
|
||||||
from twister.coverage import CoverageTool
|
from twister.coverage import run_coverage
|
||||||
from twister.runner import TwisterRunner
|
from twister.runner import TwisterRunner
|
||||||
|
|
||||||
logger = logging.getLogger('twister')
|
logger = logging.getLogger('twister')
|
||||||
|
@ -890,11 +889,12 @@ def main():
|
||||||
env.discover()
|
env.discover()
|
||||||
|
|
||||||
hwm = HardwareMap(env)
|
hwm = HardwareMap(env)
|
||||||
env.hwm = hwm
|
|
||||||
ret = hwm.discover()
|
ret = hwm.discover()
|
||||||
if ret == 0:
|
if ret == 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
env.hwm = hwm
|
||||||
|
|
||||||
tplan = TestPlan(options.board_root, options.testsuite_root, env, options.outdir)
|
tplan = TestPlan(options.board_root, options.testsuite_root, env, options.outdir)
|
||||||
try:
|
try:
|
||||||
tplan.discover()
|
tplan.discover()
|
||||||
|
@ -977,38 +977,10 @@ def main():
|
||||||
report.summary(runner.results, options.disable_unrecognized_section_test, duration)
|
report.summary(runner.results, options.disable_unrecognized_section_test, duration)
|
||||||
|
|
||||||
if options.coverage:
|
if options.coverage:
|
||||||
if not options.gcov_tool:
|
run_coverage(tplan, options)
|
||||||
use_system_gcov = False
|
|
||||||
|
|
||||||
for plat in options.coverage_platform:
|
|
||||||
ts_plat = tplan.get_platform(plat)
|
|
||||||
if ts_plat and (ts_plat.type in {"native", "unit"}):
|
|
||||||
use_system_gcov = True
|
|
||||||
|
|
||||||
if use_system_gcov or "ZEPHYR_SDK_INSTALL_DIR" not in os.environ:
|
|
||||||
options.gcov_tool = "gcov"
|
|
||||||
else:
|
|
||||||
options.gcov_tool = os.path.join(os.environ["ZEPHYR_SDK_INSTALL_DIR"],
|
|
||||||
"x86_64-zephyr-elf/bin/x86_64-zephyr-elf-gcov")
|
|
||||||
|
|
||||||
logger.info("Generating coverage files...")
|
|
||||||
coverage_tool = CoverageTool.factory(options.coverage_tool)
|
|
||||||
coverage_tool.gcov_tool = options.gcov_tool
|
|
||||||
coverage_tool.base_dir = os.path.abspath(options.coverage_basedir)
|
|
||||||
coverage_tool.add_ignore_file('generated')
|
|
||||||
coverage_tool.add_ignore_directory('tests')
|
|
||||||
coverage_tool.add_ignore_directory('samples')
|
|
||||||
coverage_tool.generate(options.outdir)
|
|
||||||
|
|
||||||
if options.device_testing and not options.build_only:
|
if options.device_testing and not options.build_only:
|
||||||
print("\nHardware distribution summary:\n")
|
hwm.summary(tplan.selected_platforms)
|
||||||
table = []
|
|
||||||
header = ['Board', 'ID', 'Counter']
|
|
||||||
for d in hwm.duts:
|
|
||||||
if d.connected and d.platform in tplan.selected_platforms:
|
|
||||||
row = [d.platform, d.id, d.counter]
|
|
||||||
table.append(row)
|
|
||||||
print(tabulate(table, headers=header, tablefmt="github"))
|
|
||||||
|
|
||||||
report.save_reports(options.report_name,
|
report.save_reports(options.report_name,
|
||||||
options.report_suffix,
|
options.report_suffix,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue