summaryrefslogtreecommitdiff
path: root/app/scripts
diff options
context:
space:
mode:
authorOkke Formsma <okke@formsma.nl>2020-11-14 19:39:01 +0100
committerPete Johanson <peter@peterjohanson.com>2020-11-21 14:47:01 -0500
commitc067629c83651c98154bef44a23ec7e5d81be179 (patch)
treed28b0bcea613a32242cc72dbadce80e7bb8e32f5 /app/scripts
parent5d0532c6d939fa40cb18b395a18a1b020f8300d3 (diff)
Create `west test` command to run zmk testsuite.
Diffstat (limited to 'app/scripts')
-rw-r--r--app/scripts/west-commands.yml9
-rw-r--r--app/scripts/west_commands/test.py33
2 files changed, 42 insertions, 0 deletions
diff --git a/app/scripts/west-commands.yml b/app/scripts/west-commands.yml
new file mode 100644
index 0000000..98e2899
--- /dev/null
+++ b/app/scripts/west-commands.yml
@@ -0,0 +1,9 @@
+# Copyright (c) 2020, ZMK Contributors
+# SPDX-License-Identifier: MIT
+
+west-commands:
+ - file: scripts/west_commands/test.py
+ commands:
+ - name: test
+ class: Test
+ help: run zmk testsuite \ No newline at end of file
diff --git a/app/scripts/west_commands/test.py b/app/scripts/west_commands/test.py
new file mode 100644
index 0000000..26f95f7
--- /dev/null
+++ b/app/scripts/west_commands/test.py
@@ -0,0 +1,33 @@
+# Copyright (c) 2020 The ZMK Contributors
+#
+# SPDX-License-Identifier: MIT
+'''Test runner for ZMK.'''
+
+import os
+from textwrap import dedent # just for nicer code indentation
+
+from west.commands import WestCommand
+from west import log # use this for user output
+
+
+class Test(WestCommand):
+ def __init__(self):
+ super().__init__(
+ 'test', # gets stored as self.name
+ 'run zmk testsuite', # self.help
+ # self.description:
+ dedent('''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 # gets stored as self.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')
+ exit(os.system(f'{self.topdir}/app/run-test.sh {args.test_path}'))