You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.1 KiB
65 lines
2.1 KiB
# Copyright (c) 2024 Antmicro <www.antmicro.com> |
|
# |
|
# SPDX-License-Identifier: Apache-2.0 |
|
|
|
'''Runner stub for renode-test.''' |
|
|
|
import subprocess |
|
|
|
from runners.core import RunnerCaps, ZephyrBinaryRunner |
|
|
|
|
|
class RenodeRobotRunner(ZephyrBinaryRunner): |
|
'''Place-holder for Renode runner customizations.''' |
|
|
|
def __init__(self, cfg, args): |
|
super().__init__(cfg) |
|
self.testsuite = args.testsuite |
|
self.renode_robot_arg = args.renode_robot_arg |
|
self.renode_robot_help = args.renode_robot_help |
|
|
|
@classmethod |
|
def name(cls): |
|
return 'renode-robot' |
|
|
|
@classmethod |
|
def capabilities(cls): |
|
return RunnerCaps(commands={'robot'}, hide_load_files=True) |
|
|
|
@classmethod |
|
def do_add_parser(cls, parser): |
|
parser.add_argument('--testsuite', |
|
metavar='SUITE', |
|
action='append', |
|
help='path to Robot test suite') |
|
parser.add_argument('--renode-robot-arg', |
|
metavar='ARG', |
|
action='append', |
|
help='additional argument passed to renode-test') |
|
parser.add_argument('--renode-robot-help', |
|
default=False, |
|
action='store_true', |
|
help='print all possible `renode-test` arguments') |
|
|
|
@classmethod |
|
def do_create(cls, cfg, args): |
|
return RenodeRobotRunner(cfg, args) |
|
|
|
def do_run(self, command, **kwargs): |
|
self.run_test(**kwargs) |
|
|
|
def run_test(self, **kwargs): |
|
cmd = ['renode-test'] |
|
if self.renode_robot_help is True: |
|
cmd.append('--help') |
|
else: |
|
if self.renode_robot_arg is not None: |
|
for arg in self.renode_robot_arg: |
|
cmd.append(arg) |
|
if self.testsuite is not None: |
|
for suite in self.testsuite: |
|
cmd.append(suite) |
|
else: |
|
self.logger.error("No Robot testsuite passed to renode-test! " |
|
"Use the `--testsuite` argument to provide one.") |
|
subprocess.run(cmd, check=True)
|
|
|