This document describes interactive and automated testing for the all-devices-app simulator.
This application is used as a test target for Python integration scripts and chip-tool.
chip-toolBefore interactive testing, compile both the simulator and chip-tool from source:
source scripts/activate.sh ./scripts/build/build_examples.py --target linux-x64-all-devices-clang build ./scripts/build/build_examples.py --target linux-x64-chip-tool-clang build
Use chip-tool to commission the simulator and execute Interaction Model commands.
Clean up persistent storage and launch a multi-endpoint topology (e.g., an Occupancy Sensor on Endpoint 1 and a Chime on Endpoint 2):
source scripts/activate.sh rm -rf /tmp/chip_all_devices_kvs ./out/linux-x64-all-devices-clang/all-devices-app \ --device occupancy-sensor:1 \ --device chime:2 \ --KVS /tmp/chip_all_devices_kvs \ --discriminator 3840
Commission the simulator with chip-tool (assigning Node ID 1):
source scripts/activate.sh ./out/linux-x64-chip-tool-clang/chip-tool pairing onnetwork 1 20202021
Interact with Code-Driven clusters on specific endpoints:
Occupancy Sensor (Endpoint 1):
# Read the current operational Occupancy state ./out/linux-x64-chip-tool-clang/chip-tool occupancy-sensing read occupancy 1 1
Chime (Endpoint 2):
# Invoke the Chime sound playback command (ChimeID 0 = Ding Dong) ./out/linux-x64-chip-tool-clang/chip-tool chime play-chime-sound 1 2 --ChimeID 0
src/python_testing/)The SDK executes Python integration and certification test scripts against all-devices-app.
Before running tests, compile and activate the Python virtual environment:
./scripts/build_python.sh -i out/venv --enable_ipv4 true source out/venv/bin/activate
local.py)The automated test runner parses target definitions from test headers. Supply the binary override path:
./scripts/tests/local.py python-tests \ --test-filter TC_IDM_2_3 \ --override-binary-path ALL_DEVICES_APP ./out/linux-x64-all-devices-clang/all-devices-app
run_python_test.py)To execute tests without CI metadata headers, invoke run_python_test.py:
./scripts/tests/run_python_test.py \ --factory-reset \ --app ./out/linux-x64-all-devices-clang/all-devices-app \ --app-args "--device contact-sensor:1 --discriminator 1234 --KVS /tmp/chip_test_kvs" \ --script src/python_testing/TC_IDM_2_3.py \ --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --PICS src/app/tests/suites/certification/ci-pics-values"
For direct GDB attachment or live logging observation, execute the app and script separately:
1. Launch the Target under Test:
./out/linux-x64-all-devices-clang/all-devices-app --device on-off-light:1 --discriminator 1234 --KVS /tmp/test_kvs
2. Execute the verification script:
source out/venv/bin/activate python3 src/python_testing/TC_IDM_2_3.py \ --storage-path admin_storage.json \ --commissioning-method on-network \ --discriminator 1234 \ --passcode 20202021 \ --endpoint 1