Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating unit test runner script for EFR32 and associated documentation. #36893

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 26 additions & 73 deletions src/test_driver/efr32/README.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,30 @@
#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)

<hr>

- [Introduction](#introduction)
- [Building](#building)
- [Running The Tests](#running-the-tests)

<hr>

<a name="introduction"></a>

## 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.

<a name="building"></a>

## 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/`.)

- Download and install a suitable ARM gcc tool chain (For most Host, the
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:

Expand All @@ -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:

<a name="running-the-tests"></a>

## Running The Tests

Build the runner using gn:

```
cd <connectedhomeip>/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 <connectedhomeip>
./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
3 changes: 1 addition & 2 deletions src/test_driver/efr32/py/pw_test_runner/pw_test_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Loading