|
|
|
# Copyright (c) 2020 The ZMK Contributors
|
|
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
"""Test runner for ZMK."""
|
|
|
|
|
|
|
|
import os
|
|
|
|
import subprocess
|
|
|
|
|
|
|
|
from west.commands import WestCommand
|
|
|
|
from west import log # use this for user output
|
|
|
|
|
|
|
|
|
|
|
|
class Test(WestCommand):
|
|
|
|
def __init__(self):
|
|
|
|
super().__init__(
|
|
|
|
name="test",
|
|
|
|
help="run ZMK testsuite",
|
|
|
|
description="Run the ZMK testsuite.",
|
|
|
|
)
|
|
|
|
|
|
|
|
def do_add_parser(self, parser_adder):
|
|
|
|
parser = parser_adder.add_parser(
|
|
|
|
self.name,
|
|
|
|
help=self.help,
|
|
|
|
description=self.description,
|
|
|
|
)
|
|
|
|
|
|
|
|
parser.add_argument(
|
|
|
|
"test_path",
|
|
|
|
default="all",
|
|
|
|
help='The path to the test. Defaults to "all".',
|
|
|
|
nargs="?",
|
|
|
|
)
|
|
|
|
return parser
|
|
|
|
|
|
|
|
def do_run(self, args, unknown_args):
|
|
|
|
# the run-test script assumes the app directory is the current dir.
|
|
|
|
os.chdir(f"{self.topdir}/app")
|
|
|
|
completed_process = subprocess.run(
|
|
|
|
[f"{self.topdir}/app/run-test.sh", args.test_path]
|
|
|
|
)
|
|
|
|
exit(completed_process.returncode)
|