Browse Source

Create `west test` command to run zmk testsuite.

xmkb
Okke Formsma 4 years ago committed by Pete Johanson
parent
commit
c067629c83
  1. 2
      .github/workflows/test.yml
  2. 9
      app/scripts/west-commands.yml
  3. 33
      app/scripts/west_commands/test.py
  4. 2
      app/west.yml
  5. 4
      docs/docs/development/tests.md

2
.github/workflows/test.yml

@ -61,7 +61,7 @@ jobs:
id: west-build id: west-build
with: with:
entrypoint: /bin/bash entrypoint: /bin/bash
args: '-c "cd app && ./run-test.sh all"' args: '-c "west test"'
- name: Archive Build - name: Archive Build
if: ${{ always() }} if: ${{ always() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2

9
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

33
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}'))

2
app/west.yml

@ -37,4 +37,4 @@ manifest:
remote: microsoft remote: microsoft
path: tools/uf2 path: tools/uf2
self: self:
path: zmk west-commands: scripts/west-commands.yml

4
docs/docs/development/tests.md

@ -4,7 +4,9 @@ sidebar_label: Tests
--- ---
Running tests requires [native posix support](posix-board). Any folder under `/app/tests` Running tests requires [native posix support](posix-board). Any folder under `/app/tests`
containing `native_posix.keymap` will be selected when running `./run-test.sh all`. containing `native_posix.keymap` will be selected when running `west test`.
Run a single test with `west test <testname>`, like `west test tests/toggle-layer/normal`.
## Creating a New Test Set ## Creating a New Test Set

Loading…
Cancel
Save