diff --git a/src/test_driver/efr32/README.md b/src/test_driver/efr32/README.md index c846426890abaa..b2f9a527fa05c4 100644 --- a/src/test_driver/efr32/README.md +++ b/src/test_driver/efr32/README.md @@ -1,30 +1,18 @@ -#CHIP EFR32 Test Driver +This is a test driver for the Matter unit tests to be run on an EFR32 device. It +builds a set of test binaries, each of which contains one directory of unit +tests that can be flashed onto a device and run. The device is controlled using +the included RPCs through the python test runner. -This builds and runs the unit tests on the efr32 device. +- [Prerequisites](#prerequisites) +- [Building the Unit Tests](#building-the-unit-tests) +- [Building and Installing the Runner](#building-and-installing-the-runner) +- [Running the Unit Tests](#running-the-unit-tests) -
- -- [Introduction](#introduction) -- [Building](#building) -- [Running The Tests](#running-the-tests) - -
- - - -## Introduction - -This builds a set of test binaries which contain the unit tests and can be -flashed onto a device. The device is controlled using the included RPCs, through -the python test runner. - - - -## Building +## Prerequisites - Download the [Simplicity Commander](https://www.silabs.com/mcu/programming-options) - command line tool, and ensure that `commander` is your shell search path. + command line tool, and ensure that `commander` is in your shell search path. (For Mac OS X, `commander` is located inside `Commander.app/Contents/MacOS/`.) @@ -32,11 +20,11 @@ the python test runner. bootstrap already installs the toolchain): [GNU Arm Embedded Toolchain 12.2 Rel1](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads) -- Install some additional tools(likely already present for CHIP developers): +- Install some additional tools: -#Linux `sudo apt-get install git libwebkitgtk-1.0-0 ninja-build` + For Linux: `sudo apt-get install git libwebkitgtk-1.0-0 ninja-build` -#Mac OS X `brew install ninja` + For Mac OS: `brew install ninja` - Supported hardware: @@ -49,60 +37,25 @@ the python test runner. - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm -OR use GN/Ninja directly - - ``` - cd ~/connectedhomeip/src/test_driver/efr32/ - git submodule update --init - source third_party/connectedhomeip/scripts/activate.sh - export SILABS_BOARD=BRD4187C - gn gen out/debug - ninja -C out/debug - ``` - -- To delete generated executable, libraries and object files use: +## Building the Unit Tests - ``` - cd ~/connectedhomeip/src/test_driver/efr32/ - rm -rf out/ - ``` +The unit tests can be built using gn and ninja: - - -## Running The Tests - -Build the runner using gn: - - ``` - cd /src/test_driver/efr32 + source scripts/activate.sh + cd src/test_driver/efr32 + export SILABS_BOARD=BRD2703A gn gen out/debug - ninja -C out/debug runner - ``` + ninja -C out/debug -Or build using build script from the root +## Building and Installing the Runner - ``` - cd - ./scripts/build/build_examples.py --target linux-x64-pw-test-runner build - ``` +The python wheels for the runner can be built and installed like this: -The runner will be installed into the venv and python wheels will be packaged in -the output folder for deploying. - -Then the python wheels need to installed using pip3. - - ``` - pip3 install out/debug/chip_pw_test_runner_wheels/*.whl - ``` - -Other python libraries may need to be installed such as + ninja -C out/debug runner + pip3 install out/debug/chip_pw_test_runner_wheels/*.whl --force-reinstall - ``` - pip3 install pyserial - ``` +## Running the Unit Tests -- To run all tests: +The unit tests can be run using the test runner python script: - ``` - python -m pw_test_runner.pw_test_runner -d /dev/ttyACM1 -f out/debug/matter-silabs-device_tests.s37 -o out.log - ``` + python -m py.pw_test_runner.pw_test_runner -d /dev/ttyACM1 -f out/debug/tests -o out.log diff --git a/src/test_driver/efr32/py/pw_test_runner/pw_test_runner.py b/src/test_driver/efr32/py/pw_test_runner/pw_test_runner.py index 8e10903920cc77..ed8c43f0190623 100644 --- a/src/test_driver/efr32/py/pw_test_runner/pw_test_runner.py +++ b/src/test_driver/efr32/py/pw_test_runner/pw_test_runner.py @@ -105,8 +105,7 @@ def run(args) -> int: def list_images(flash_directory: str) -> list[str]: - filenames: list[str] = glob.glob(os.path.join(flash_directory, "*.s37")) - return list(map(lambda x: os.path.join(flash_directory, x), filenames)) + return glob.glob(os.path.join(flash_directory, "*.s37")) def main() -> int: