Skip to content

Commit edb9c5f

Browse files
Merge branch 'master' into idm-4.2-troubleshoot
2 parents 657771c + 5e37260 commit edb9c5f

File tree

185 files changed

+3564
-1022
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

185 files changed

+3564
-1022
lines changed

.github/workflows/examples-linux-arm.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ jobs:
6767
--target linux-arm64-light-rpc-ipv6only-clang \
6868
--target linux-arm64-thermostat-no-ble-clang \
6969
--target linux-arm64-lit-icd-no-ble-clang \
70+
--target linux-arm64-fabric-admin-clang-rpc \
71+
--target linux-arm64-fabric-bridge-no-ble-clang-rpc \
7072
build \
7173
"
7274
- name: Bloat report - chip-tool

.github/workflows/examples-linux-standalone.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -202,21 +202,21 @@ jobs:
202202
run: |
203203
./scripts/run_in_build_env.sh \
204204
"./scripts/build/build_examples.py \
205-
--target linux-x64-fabric-admin \
205+
--target linux-x64-fabric-admin-rpc \
206206
build"
207207
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
208208
linux debug fabric-admin \
209-
out/linux-x64-fabric-admin/fabric-admin \
209+
out/linux-x64-fabric-admin-rpc/fabric-admin \
210210
/tmp/bloat_reports/
211211
- name: Build example Fabric Bridge App
212212
run: |
213213
./scripts/run_in_build_env.sh \
214214
"./scripts/build/build_examples.py \
215-
--target linux-x64-fabric-bridge \
215+
--target linux-x64-fabric-bridge-no-ble-rpc \
216216
build"
217217
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
218218
linux debug fabric-bridge-app \
219-
out/linux-x64-fabric-bridge/fabric-bridge-app \
219+
out/linux-x64-fabric-bridge-no-ble-rpc/fabric-bridge-app \
220220
/tmp/bloat_reports/
221221
- name: Uploading Size Reports
222222
uses: ./.github/actions/upload-size-reports

.pullapprove.yml

+8
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,14 @@ groups:
173173
teams: [reviewers-nordic]
174174
reviews:
175175
request: 10
176+
shared-reviewers-nxp:
177+
type: optional
178+
conditions:
179+
- files.include('*')
180+
reviewers:
181+
teams: [reviewers-nxp]
182+
reviews:
183+
request: 10
176184
shared-reviewers-samsung:
177185
type: optional
178186
conditions:

docs/testing/python.md

+65-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ Python tests located in src/python_testing
1919

2020
## Writing Python tests
2121

22+
- Defining arguments in the test script
23+
- In order to streamline the configuration and execution of tests, it is
24+
essential to define arguments at the top of the test script. This
25+
section should include various parameters and their respective values,
26+
which will guide the test runner on how to execute the tests.
2227
- All test classes inherit from MatterBaseTest in
2328
[matter_testing_support.py](https://github.com/project-chip/connectedhomeip/blob/master/src/python_testing/matter_testing_support.py)
2429
- support for commissioning using the python controller
@@ -36,11 +41,17 @@ Python tests located in src/python_testing
3641
- Use Mobly assertions for failing tests
3742
- self.step() along with a steps\_ function to mark test plan steps for cert
3843
tests
39-
-
4044

4145
### A simple test
4246

4347
```
48+
# test-runner-runs: run1
49+
# test-runner-run/run1/app: ${ALL_CLUSTERS_APP}
50+
# test-runner-run/run1/factoryreset: True
51+
# test-runner-run/run1/quiet: True
52+
# test-runner-run/run1/app-args: --discriminator 1234 --KVS kvs1 --trace-to json:${TRACE_APP}.json
53+
# test-runner-run/run1/script-args: --storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --trace-to json:${TRACE_TEST_JSON}.json --trace-to perfetto:${TRACE_TEST_PERFETTO}.perfetto
54+
4455
class TC_MYTEST_1_1(MatterBaseTest):
4556
4657
@async_test_body
@@ -74,6 +85,59 @@ The default_matter_test_main() function is used to run the test on the command
7485
line. These two lines should appear verbatim at the bottom of every python test
7586
file.
7687

88+
## Defining the test arguments
89+
90+
Below is the format:
91+
92+
```
93+
# test-runner-runs: <run_identifier>
94+
# test-runner-run/<run_identifier>/app: ${TYPE_OF_APP}
95+
# test-runner-run/<run_identifier>/factoryreset: <True|False>
96+
# test-runner-run/<run_identifier>/quiet: <True|False>
97+
# test-runner-run/<run_identifier>/app-args: <app_arguments>
98+
# test-runner-run/<run_identifier>/script-args: <script_arguments>
99+
```
100+
101+
### Description of Parameters
102+
103+
- test-runner-runs: Specifies the identifier for the run. This can be any
104+
unique identifier.
105+
106+
- Example: run1
107+
108+
- test-runner-run/<run_identifier>/app: Indicates the application to be used
109+
in the test. Different app types as needed could be referenced from section
110+
[name: Generate an argument environment file ] of the file
111+
[.github/workflows/tests.yaml](https://github.com/project-chip/connectedhomeip/blob/master/.github/workflows/tests.yaml)
112+
113+
- Example: \${TYPE_OF_APP}
114+
115+
- test-runner-run/<run_identifier>/factoryreset: Determines whether a factory
116+
reset should be performed before the test.
117+
118+
- Example: True
119+
120+
- test-runner-run/<run_identifier>/quiet: Sets the verbosity level of the test
121+
run. When set to True, the test run will be quieter.
122+
123+
- Example: True
124+
125+
- test-runner-run/<run_identifier>/app-args: Specifies the arguments to be
126+
passed to the application during the test.
127+
128+
- Example: --discriminator 1234 --KVS kvs1 --trace-to
129+
json:\${TRACE_APP}.json
130+
131+
- test-runner-run/<run_identifier>/script-args: Specifies the arguments to be
132+
passed to the test script.
133+
- Example: --storage-path admin_storage.json --commissioning-method
134+
on-network --discriminator 1234 --passcode 20202021 --trace-to
135+
json:${TRACE_TEST_JSON}.json --trace-to perfetto:${TRACE_TEST_PERFETTO}.perfetto
136+
137+
This structured format ensures that all necessary configurations are clearly
138+
defined and easily understood, allowing for consistent and reliable test
139+
execution.
140+
77141
## Cluster Codegen
78142

79143
- [Objects.py](https://github.com/project-chip/connectedhomeip/blob/master/src/controller/python/chip/clusters/Objects.py)

examples/air-purifier-app/air-purifier-common/air-purifier-app.matter

+1-1
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ cluster BasicInformation = 40 {
241241
readonly attribute optional char_string<32> serialNumber = 15;
242242
attribute access(write: manage) optional boolean localConfigDisabled = 16;
243243
readonly attribute optional boolean reachable = 17;
244-
readonly attribute optional char_string<32> uniqueID = 18;
244+
readonly attribute char_string<32> uniqueID = 18;
245245
readonly attribute CapabilityMinimaStruct capabilityMinima = 19;
246246
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
247247
readonly attribute int32u specificationVersion = 21;

examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter

+1-1
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ cluster BasicInformation = 40 {
241241
readonly attribute optional char_string<32> serialNumber = 15;
242242
attribute access(write: manage) optional boolean localConfigDisabled = 16;
243243
readonly attribute optional boolean reachable = 17;
244-
readonly attribute optional char_string<32> uniqueID = 18;
244+
readonly attribute char_string<32> uniqueID = 18;
245245
readonly attribute CapabilityMinimaStruct capabilityMinima = 19;
246246
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
247247
readonly attribute int32u specificationVersion = 21;

examples/all-clusters-app/all-clusters-common/all-clusters-app.matter

+20-1
Original file line numberDiff line numberDiff line change
@@ -820,7 +820,7 @@ cluster BasicInformation = 40 {
820820
readonly attribute optional char_string<32> serialNumber = 15;
821821
attribute access(write: manage) optional boolean localConfigDisabled = 16;
822822
readonly attribute optional boolean reachable = 17;
823-
readonly attribute optional char_string<32> uniqueID = 18;
823+
readonly attribute char_string<32> uniqueID = 18;
824824
readonly attribute CapabilityMinimaStruct capabilityMinima = 19;
825825
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
826826
readonly attribute int32u specificationVersion = 21;
@@ -5890,6 +5890,17 @@ cluster OccupancySensing = 1030 {
58905890
kPhysicalContact = 3;
58915891
}
58925892

5893+
bitmap Feature : bitmap32 {
5894+
kOther = 0x1;
5895+
kPassiveInfrared = 0x2;
5896+
kUltrasonic = 0x4;
5897+
kPhysicalContact = 0x8;
5898+
kActiveInfrared = 0x10;
5899+
kRadar = 0x20;
5900+
kRFSensing = 0x40;
5901+
kVision = 0x80;
5902+
}
5903+
58935904
bitmap OccupancyBitmap : bitmap8 {
58945905
kOccupied = 0x1;
58955906
}
@@ -5900,9 +5911,17 @@ cluster OccupancySensing = 1030 {
59005911
kPhysicalContact = 0x4;
59015912
}
59025913

5914+
struct HoldTimeLimitsStruct {
5915+
int16u holdTimeMin = 0;
5916+
int16u holdTimeMax = 1;
5917+
int16u holdTimeDefault = 2;
5918+
}
5919+
59035920
readonly attribute OccupancyBitmap occupancy = 0;
59045921
readonly attribute OccupancySensorTypeEnum occupancySensorType = 1;
59055922
readonly attribute OccupancySensorTypeBitmap occupancySensorTypeBitmap = 2;
5923+
attribute access(write: manage) optional int16u holdTime = 3;
5924+
readonly attribute optional HoldTimeLimitsStruct holdTimeLimits = 4;
59065925
attribute access(write: manage) optional int16u PIROccupiedToUnoccupiedDelay = 16;
59075926
attribute access(write: manage) optional int16u PIRUnoccupiedToOccupiedDelay = 17;
59085927
attribute access(write: manage) optional int8u PIRUnoccupiedToOccupiedThreshold = 18;

examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter

+21-1
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,7 @@ cluster BasicInformation = 40 {
713713
readonly attribute optional char_string<32> serialNumber = 15;
714714
attribute access(write: manage) optional boolean localConfigDisabled = 16;
715715
readonly attribute optional boolean reachable = 17;
716-
readonly attribute optional char_string<32> uniqueID = 18;
716+
readonly attribute char_string<32> uniqueID = 18;
717717
readonly attribute CapabilityMinimaStruct capabilityMinima = 19;
718718
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
719719
readonly attribute int32u specificationVersion = 21;
@@ -4438,6 +4438,17 @@ cluster OccupancySensing = 1030 {
44384438
kPhysicalContact = 3;
44394439
}
44404440

4441+
bitmap Feature : bitmap32 {
4442+
kOther = 0x1;
4443+
kPassiveInfrared = 0x2;
4444+
kUltrasonic = 0x4;
4445+
kPhysicalContact = 0x8;
4446+
kActiveInfrared = 0x10;
4447+
kRadar = 0x20;
4448+
kRFSensing = 0x40;
4449+
kVision = 0x80;
4450+
}
4451+
44414452
bitmap OccupancyBitmap : bitmap8 {
44424453
kOccupied = 0x1;
44434454
}
@@ -4448,9 +4459,17 @@ cluster OccupancySensing = 1030 {
44484459
kPhysicalContact = 0x4;
44494460
}
44504461

4462+
struct HoldTimeLimitsStruct {
4463+
int16u holdTimeMin = 0;
4464+
int16u holdTimeMax = 1;
4465+
int16u holdTimeDefault = 2;
4466+
}
4467+
44514468
readonly attribute OccupancyBitmap occupancy = 0;
44524469
readonly attribute OccupancySensorTypeEnum occupancySensorType = 1;
44534470
readonly attribute OccupancySensorTypeBitmap occupancySensorTypeBitmap = 2;
4471+
attribute access(write: manage) optional int16u holdTime = 3;
4472+
readonly attribute optional HoldTimeLimitsStruct holdTimeLimits = 4;
44544473
attribute access(write: manage) optional int16u PIROccupiedToUnoccupiedDelay = 16;
44554474
attribute access(write: manage) optional int16u PIRUnoccupiedToOccupiedDelay = 17;
44564475
attribute access(write: manage) optional int8u PIRUnoccupiedToOccupiedThreshold = 18;
@@ -5964,6 +5983,7 @@ endpoint 0 {
59645983
callback attribute hardwareVersionString;
59655984
callback attribute softwareVersion;
59665985
callback attribute softwareVersionString;
5986+
callback attribute uniqueID;
59675987
callback attribute capabilityMinima;
59685988
callback attribute specificationVersion;
59695989
callback attribute maxPathsPerInvoke;

examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap

+37-21
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@
1919
"package": [
2020
{
2121
"pathRelativity": "relativeToZap",
22-
"path": "../../../src/app/zap-templates/zcl/zcl.json",
23-
"type": "zcl-properties",
22+
"path": "../../../src/app/zap-templates/app-templates.json",
23+
"type": "gen-templates-json",
2424
"category": "matter",
25-
"version": 1,
26-
"description": "Matter SDK ZCL data"
25+
"version": "chip-v1"
2726
},
2827
{
2928
"pathRelativity": "relativeToZap",
30-
"path": "../../../src/app/zap-templates/app-templates.json",
31-
"type": "gen-templates-json",
29+
"path": "../../../src/app/zap-templates/zcl/zcl.json",
30+
"type": "zcl-properties",
3231
"category": "matter",
33-
"version": "chip-v1"
32+
"version": 1,
33+
"description": "Matter SDK ZCL data"
3434
}
3535
],
3636
"endpointTypes": [
@@ -900,6 +900,22 @@
900900
"maxInterval": 65344,
901901
"reportableChange": 0
902902
},
903+
{
904+
"name": "UniqueID",
905+
"code": 18,
906+
"mfgCode": null,
907+
"side": "server",
908+
"type": "char_string",
909+
"included": 1,
910+
"storageOption": "External",
911+
"singleton": 1,
912+
"bounded": 0,
913+
"defaultValue": "",
914+
"reportable": 1,
915+
"minInterval": 1,
916+
"maxInterval": 65534,
917+
"reportableChange": 0
918+
},
903919
{
904920
"name": "CapabilityMinima",
905921
"code": 19,
@@ -9049,6 +9065,14 @@
90499065
"isIncoming": 1,
90509066
"isEnabled": 1
90519067
},
9068+
{
9069+
"name": "StringEchoResponse",
9070+
"code": 13,
9071+
"mfgCode": null,
9072+
"source": "server",
9073+
"isIncoming": 0,
9074+
"isEnabled": 1
9075+
},
90529076
{
90539077
"name": "TestEnumsRequest",
90549078
"code": 14,
@@ -9122,32 +9146,24 @@
91229146
"isEnabled": 1
91239147
},
91249148
{
9125-
"name": "TestDifferentVendorMeiRequest",
9126-
"code": 4294049962,
9149+
"name": "StringEchoRequest",
9150+
"code": 24,
91279151
"mfgCode": null,
91289152
"source": "client",
91299153
"isIncoming": 1,
91309154
"isEnabled": 1
91319155
},
91329156
{
9133-
"name": "TestDifferentVendorMeiResponse",
9134-
"code": 4294049979,
9135-
"mfgCode": null,
9136-
"source": "server",
9137-
"isIncoming": 0,
9138-
"isEnabled": 1
9139-
},
9140-
{
9141-
"name": "StringEchoRequest",
9142-
"code": 24,
9157+
"name": "TestDifferentVendorMeiRequest",
9158+
"code": 4294049962,
91439159
"mfgCode": null,
91449160
"source": "client",
91459161
"isIncoming": 1,
91469162
"isEnabled": 1
91479163
},
91489164
{
9149-
"name": "StringEchoResponse",
9150-
"code": 13,
9165+
"name": "TestDifferentVendorMeiResponse",
9166+
"code": 4294049979,
91519167
"mfgCode": null,
91529168
"source": "server",
91539169
"isIncoming": 0,

examples/bridge-app/bridge-common/bridge-app.matter

+1-1
Original file line numberDiff line numberDiff line change
@@ -711,7 +711,7 @@ cluster BasicInformation = 40 {
711711
readonly attribute optional char_string<32> serialNumber = 15;
712712
attribute access(write: manage) optional boolean localConfigDisabled = 16;
713713
readonly attribute optional boolean reachable = 17;
714-
readonly attribute optional char_string<32> uniqueID = 18;
714+
readonly attribute char_string<32> uniqueID = 18;
715715
readonly attribute CapabilityMinimaStruct capabilityMinima = 19;
716716
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
717717
readonly attribute int32u specificationVersion = 21;

0 commit comments

Comments
 (0)