From 0cf2a89a7b9067b2e46863fb6e75f3d9bfe08df0 Mon Sep 17 00:00:00 2001 From: manjunath-grl Date: Tue, 7 Feb 2023 15:46:56 +0530 Subject: [PATCH 1/6] Modifed scripts: TC-ACL-2.4 TC-ACL-2.7 TC-ACL-2.8 TC-ACL-2.9 TC-ACL-2.10 TC-BRBINFO-2.3 TC-CADMIN-1.15 TC-CADMIN-1.16 TC-G-2.2 TC-G-2.3 TC-TSTAT-2.2 TC-RH-3.1_Simulated Removed tests: TC-ACT-2.2 TC-CGEN-2.4 --- .../certification/Test_TC_ACL_2_10.yaml | 22 +- .../suites/certification/Test_TC_ACL_2_4.yaml | 11 +- .../suites/certification/Test_TC_ACL_2_7.yaml | 23 +- .../suites/certification/Test_TC_ACL_2_8.yaml | 22 +- .../suites/certification/Test_TC_ACL_2_9.yaml | 11 +- .../suites/certification/Test_TC_ACT_2_2.yaml | 539 ------------------ .../certification/Test_TC_BRBINFO_2_3.yaml | 12 - .../certification/Test_TC_CADMIN_1_15.yaml | 4 +- .../certification/Test_TC_CADMIN_1_16.yaml | 4 +- .../certification/Test_TC_CGEN_2_4.yaml | 81 --- .../suites/certification/Test_TC_G_2_2.yaml | 5 +- .../suites/certification/Test_TC_G_2_3.yaml | 17 +- .../Test_TC_RH_3_1_Simulated.yaml | 351 ++++++++++++ .../certification/Test_TC_TSTAT_2_2.yaml | 119 ++++ src/app/tests/suites/manualTests.json | 4 +- 15 files changed, 555 insertions(+), 670 deletions(-) delete mode 100644 src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_CGEN_2_4.yaml diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml index 5c94764acd696d..525ba97ac98b8e 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml @@ -25,12 +25,6 @@ config: nodeId2: type: node_id defaultValue: 0xCAFE - TH1CommissionerNodeId: - type: node_id - defaultValue: 112233 - TH2CommissionerNodeId: - type: node_id - defaultValue: 112233 discriminator: type: int16u defaultValue: 3840 @@ -53,6 +47,14 @@ tests: - name: "nodeId" value: nodeId + - label: "Read the TH1 commissioner node ID" + cluster: "CommissionerCommands" + command: "GetCommissionerNodeId" + response: + values: + - name: "nodeId" + saveAs: TH1CommissionerNodeId + - label: "Step 2:TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute" @@ -93,6 +95,14 @@ tests: - name: "nodeId" value: nodeId2 + - label: "Read the TH2 commissioner node ID" + cluster: "CommissionerCommands" + command: "GetCommissionerNodeId" + response: + values: + - name: "nodeId" + saveAs: TH2CommissionerNodeId + - label: "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml index 38a68b2a8b2da6..14f8bf734ef408 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml @@ -22,9 +22,6 @@ config: nodeId: 0x12344321 cluster: "Access Control" endpoint: 0 - CommissionerNodeId: - type: node_id - defaultValue: 112233 CAT1: type: int64u defaultValue: 65520 @@ -47,6 +44,14 @@ tests: - name: "nodeId" value: nodeId + - label: "Read the commissioner node ID" + cluster: "CommissionerCommands" + command: "GetCommissionerNodeId" + response: + values: + - name: "nodeId" + saveAs: CommissionerNodeId + - label: "Step 2:TH1 reads DUT Endpoint 0 OperationalCredentials cluster CurrentFabricIndex attribute" diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml index 08ae87141f2185..38be34e85320de 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml @@ -25,12 +25,6 @@ config: nodeId2: type: node_id defaultValue: 0xCAFE - TH1CommissionerNodeId: - type: node_id - defaultValue: 112233 - TH2CommissionerNodeId: - type: node_id - defaultValue: 112233 payload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" @@ -50,6 +44,14 @@ tests: - name: "nodeId" value: nodeId + - label: "Read the TH1 commissioner node ID" + cluster: "CommissionerCommands" + command: "GetCommissionerNodeId" + response: + values: + - name: "nodeId" + saveAs: TH1CommissionerNodeId + - label: "Step 2:TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute" @@ -90,6 +92,15 @@ tests: - name: "nodeId" value: nodeId2 + - label: "Read the TH2 commissioner node ID" + identity: "beta" + cluster: "CommissionerCommands" + command: "GetCommissionerNodeId" + response: + values: + - name: "nodeId" + saveAs: TH2CommissionerNodeId + - label: "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml index fe69b83182997d..9200ab0669cc45 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml @@ -24,12 +24,6 @@ config: nodeId2: type: node_id defaultValue: 0xCAFE - TH1CommissionerNodeId: - type: node_id - defaultValue: 112233 - TH2CommissionerNodeId: - type: node_id - defaultValue: 112233 payload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" @@ -43,6 +37,14 @@ tests: - name: "nodeId" value: nodeId + - label: "Read the TH1 commissioner node ID" + cluster: "CommissionerCommands" + command: "GetCommissionerNodeId" + response: + values: + - name: "nodeId" + saveAs: TH1CommissionerNodeId + - label: "TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute" command: "readAttribute" @@ -82,6 +84,14 @@ tests: - name: "nodeId" value: nodeId2 + - label: "Read the TH2 commissioner node ID" + cluster: "CommissionerCommands" + command: "GetCommissionerNodeId" + response: + values: + - name: "nodeId" + saveAs: TH2CommissionerNodeId + - label: "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute" identity: "beta" diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml index 3a573717b5a751..11f6c42de06c80 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml @@ -25,9 +25,6 @@ config: nodeId2: type: node_id defaultValue: 0xCAFE - CommissionerNodeId: - type: node_id - defaultValue: 112233 payload: type: char_string defaultValue: "MT:-24J0AFN00KA0648G00" # This value needs to be generated automatically @@ -41,6 +38,14 @@ tests: - name: "nodeId" value: nodeId + - label: "Read the commissioner node ID" + cluster: "CommissionerCommands" + command: "GetCommissionerNodeId" + response: + values: + - name: "nodeId" + saveAs: CommissionerNodeId + - label: "TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml b/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml deleted file mode 100644 index f717f0615bdff8..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml +++ /dev/null @@ -1,539 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.2. [TC-ACT-2.2] Primary functionality with server as DUT - -PICS: - - ACT.S - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Commission DUT to TH (can be skipped if done in a preceding test)" - verification: | - On DUT side: - sudo ./chip-bridge-app - - - On TH side: - ./chip-tool pairing ethernet 1 20202021 3840 fe80::e65f:1ff:fe0f:2753 5540 - disabled: true - - - label: - "Using the manufacturer provided means, create multiple groups with - each multiple bridged devices (endpoints)" - PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists - verification: | - Create multiple groups with each multiple bridged devices (endpoints) - disabled: true - - - label: "Read EndpointLists attribute" - verification: | - ./chip-tool actions read endpoint-lists 1 1 - - On TH(chip-tool), verify the EndpointListStructs in TH Log: - [1658426570.716289][16527:16532] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 - [1658426570.716404][16527:16532] CHIP:TOO: endpoint list: 2 entries - [1658426570.716465][16527:16532] CHIP:TOO: [1]: { - [1658426570.716507][16527:16532] CHIP:TOO: EndpointListID: 0 - [1658426570.716534][16527:16532] CHIP:TOO: Name: living_room - [1658426570.716559][16527:16532] CHIP:TOO: Type: 1 - [1658426570.716588][16527:16532] CHIP:TOO: Endpoints: 2 entries - [1658426570.716617][16527:16532] CHIP:TOO: [1]: 2 - [1658426570.716646][16527:16532] CHIP:TOO: [2]: 3 - [1658426570.716673][16527:16532] CHIP:TOO: } - [1658426570.717133][16527:16532] CHIP:TOO: [2]: { - [1658426570.717160][16527:16532] CHIP:TOO: EndpointListID: 2 - [1658426570.717185][16527:16532] CHIP:TOO: Name: office - [1658426570.717209][16527:16532] CHIP:TOO: Type: 1 - [1658426570.717236][16527:16532] CHIP:TOO: Endpoints: 1 entries - [1658426570.717265][16527:16532] CHIP:TOO: [1]: 9 - [1658426570.717292][16527:16532] CHIP:TOO: } - disabled: true - - - label: - "Using the manufacturer provided means, update the name of one of the - groups" - PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists - verification: | - press r in bridge-app to rename - (in the example, renamed "office" to "kitchen") - disabled: true - - - label: "Read EndpointLists attribute again" - PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists - verification: | - ./chip-tool actions read endpoint-lists 1 1 - - On TH(chip-tool), verify the EndpointListStructs in below Log: - [1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648 - [1658408033.786954][14495:14500] CHIP:TOO: endpoint list: 2 entries - [1658408033.787044][14495:14500] CHIP:TOO: [1]: { - [1658408033.787100][14495:14500] CHIP:TOO: EndpointListID: 0 - [1658408033.787135][14495:14500] CHIP:TOO: Name: living_room - [1658408033.787183][14495:14500] CHIP:TOO: Type: 1 - [1658408033.787220][14495:14500] CHIP:TOO: Endpoints: 2 entries - [1658408033.787274][14495:14500] CHIP:TOO: [1]: 2 - [1658408033.787312][14495:14500] CHIP:TOO: [2]: 3 - [1658408033.787343][14495:14500] CHIP:TOO: } - [1658408033.787407][14495:14500] CHIP:TOO: [2]: { - [1658408033.788089][14495:14500] CHIP:TOO: EndpointListID: 2 - [1658408033.788123][14495:14500] CHIP:TOO: Name: kitchen - [1658408033.788156][14495:14500] CHIP:TOO: Type: 1 - [1658408033.788191][14495:14500] CHIP:TOO: Endpoints: 1 entries - [1658408033.788243][14495:14500] CHIP:TOO: [1]: 9 - [1658408033.788278][14495:14500] CHIP:TOO: } - disabled: true - - - label: "compare result of step 2d to what was read in step 2b" - PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists - verification: | - compare result of step 2d to what was read in step 2b, Verify name field in relevant EndpointListStruct has been updated and no other changes in EndpointLists attribute - - Step 2d log - On TH(chip-tool), verify the EndpointListStructs: - [1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648 - [1658408033.786954][14495:14500] CHIP:TOO: endpoint list: 2 entries - [1658408033.787044][14495:14500] CHIP:TOO: [1]: { - [1658408033.787100][14495:14500] CHIP:TOO: EndpointListID: 0 - [1658408033.787135][14495:14500] CHIP:TOO: Name: living_room - [1658408033.787183][14495:14500] CHIP:TOO: Type: 1 - [1658408033.787220][14495:14500] CHIP:TOO: Endpoints: 2 entries - [1658408033.787274][14495:14500] CHIP:TOO: [1]: 2 - [1658408033.787312][14495:14500] CHIP:TOO: [2]: 3 - [1658408033.787343][14495:14500] CHIP:TOO: } - [1658408033.787407][14495:14500] CHIP:TOO: [2]: { - [1658408033.788089][14495:14500] CHIP:TOO: EndpointListID: 2 - [1658408033.788123][14495:14500] CHIP:TOO: Name: kitchen - [1658408033.788156][14495:14500] CHIP:TOO: Type: 1 - [1658408033.788191][14495:14500] CHIP:TOO: Endpoints: 1 entries - [1658408033.788243][14495:14500] CHIP:TOO: [1]: 9 - [1658408033.788278][14495:14500] CHIP:TOO: } - - Step 2b log - On TH(chip-tool), verify the EndpointListStructs - [1658426570.716289][16527:16532] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 - [1658426570.716404][16527:16532] CHIP:TOO: endpoint list: 2 entries - [1658426570.716465][16527:16532] CHIP:TOO: [1]: { - [1658426570.716507][16527:16532] CHIP:TOO: EndpointListID: 0 - [1658426570.716534][16527:16532] CHIP:TOO: Name: living_room - [1658426570.716559][16527:16532] CHIP:TOO: Type: 1 - [1658426570.716588][16527:16532] CHIP:TOO: Endpoints: 2 entries - [1658426570.716617][16527:16532] CHIP:TOO: [1]: 2 - [1658426570.716646][16527:16532] CHIP:TOO: [2]: 3 - [1658426570.716673][16527:16532] CHIP:TOO: } - [1658426570.717133][16527:16532] CHIP:TOO: [2]: { - [1658426570.717160][16527:16532] CHIP:TOO: EndpointListID: 2 - [1658426570.717185][16527:16532] CHIP:TOO: Name: office - [1658426570.717209][16527:16532] CHIP:TOO: Type: 1 - [1658426570.717236][16527:16532] CHIP:TOO: Endpoints: 1 entries - [1658426570.717265][16527:16532] CHIP:TOO: [1]: 9 - [1658426570.717292][16527:16532] CHIP:TOO: } - disabled: true - - - label: - "Using the manufacturer provided means, move one of the bridged - devices (one endpoint) from one group to another group" - PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists - verification: | - Press f in bridge app to move one of the bridged devices (one endpoint) from one group to another group - - (in the example, light at ep 3 was moved to kitchen) - disabled: true - - - label: "Read EndpointLists attribute again" - PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists - verification: | - ./chip-tool actions read endpoint-lists 1 1 - - On TH(chip-tool), verify the EndpointListStructs - [1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648 - [1658408033.786954][14495:14500] CHIP:TOO: endpoint list: 2 entries - [1658408033.787044][14495:14500] CHIP:TOO: [1]: { - [1658408033.787100][14495:14500] CHIP:TOO: EndpointListID: 0 - [1658408033.787135][14495:14500] CHIP:TOO: Name: living_room - [1658408033.787183][14495:14500] CHIP:TOO: Type: 1 - [1658408033.787220][14495:14500] CHIP:TOO: Endpoints: 2 entries - [1658408033.787274][14495:14500] CHIP:TOO: [1]: 2 - [1658408033.787343][14495:14500] CHIP:TOO: } - [1658408033.787407][14495:14500] CHIP:TOO: [2]: { - [1658408033.788089][14495:14500] CHIP:TOO: EndpointListID: 2 - [1658408033.788123][14495:14500] CHIP:TOO: Name: kitchen - [1658408033.788156][14495:14500] CHIP:TOO: Type: 1 - [1658408033.788191][14495:14500] CHIP:TOO: Endpoints: 2 entries - [1658408033.788243][14495:14500] CHIP:TOO: [1]: 9 - [1658408033.787312][14495:14500] CHIP:TOO: [2]: 3 - [1658408033.788278][14495:14500] CHIP:TOO: } - disabled: true - - - label: "compare result of step 2g to what was read in step 2d" - PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists - verification: | - compare result of step 2g to what was read in step 2d, Verify one EP (EP 3 in this case) has been moved from one EndpointListStruct to another EndpointListStruct - disabled: true - - - label: "Using the manufacturer provided means, remove one of the groups" - PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists - verification: | - Press i in bridge-ap to remove one of the groups - - in this case, the 2nd group was removed - disabled: true - - - label: "Read EndpointLists attribute again" - PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists - verification: | - ./chip-tool actions read endpoint-lists 1 1 - - On TH(chip-tool), verify the EndpointListStructs - [1658426959.409374][16560:16565] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 - [1658426959.409476][16560:16565] CHIP:TOO: endpoint list: 1 entries - [1658426959.409543][16560:16565] CHIP:TOO: [1]: { - [1658426959.409580][16560:16565] CHIP:TOO: EndpointListID: 0 - [1658426959.409604][16560:16565] CHIP:TOO: Name: living_room - [1658426959.409636][16560:16565] CHIP:TOO: Type: 1 - [1658426959.409691][16560:16565] CHIP:TOO: Endpoints: 1 entries - [1658426959.409730][16560:16565] CHIP:TOO: [1]: 2 - [1658426959.409755][16560:16565] CHIP:TOO: } - disabled: true - - - label: "compare result of step 2j to what was read in step 2g" - PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists - verification: | - compare result of step 2j to what was read in step 2g, Verify one EndpointListStruct (the 2nd one in this example) got removed while the other one(s) did not change - disabled: true - - - label: - "Using the manufacturer provided means, create a new group, which - includes one of the bridged devices also present in another group" - PICS: ACT.S.A0001 && ACT.S.M.OverlappingEndpointLists - verification: | - press l in bridge-app - in this example, a zone was created with same light (ep 2) - disabled: true - - - label: "Read EndpointLists attribute again" - PICS: ACT.S.A0001 && ACT.S.M.OverlappingEndpointLists - verification: | - ./chip-tool actions read endpoint-lists 1 1 - - On TH(chip-tool), verify the EndpointListStructs - 1658427088.316681][16578:16583] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 - [1658427088.316792][16578:16583] CHIP:TOO: endpoint list: 2 entries - [1658427088.316850][16578:16583] CHIP:TOO: [1]: { - [1658427088.316890][16578:16583] CHIP:TOO: EndpointListID: 0 - [1658427088.316915][16578:16583] CHIP:TOO: Name: living_room - [1658427088.316939][16578:16583] CHIP:TOO: Type: 1 - [1658427088.316965][16578:16583] CHIP:TOO: Endpoints: 1 entries - [1658427088.316993][16578:16583] CHIP:TOO: [1]: 2 - [1658427088.317019][16578:16583] CHIP:TOO: } - [1658427088.317558][16578:16583] CHIP:TOO: [2]: { - [1658427088.317583][16578:16583] CHIP:TOO: EndpointListID: 2 - [1658427088.317606][16578:16583] CHIP:TOO: Name: dining - [1658427088.317628][16578:16583] CHIP:TOO: Type: 2 - [1658427088.317652][16578:16583] CHIP:TOO: Endpoints: 1 entries - [1658427088.317679][16578:16583] CHIP:TOO: [1]: 2 - [1658427088.317705][16578:16583] CHIP:TOO: } - disabled: true - - - label: "compare result of step 2m to what was read in step 2j" - PICS: ACT.S.A0001 && ACT.S.M.OverlappingEndpointLists - verification: | - compare result of step 2m to what was read in step 2j. - Verify a new EndpointListStruct got added (the 2nd one in this example) with an EP which is also in one of the other EndpointListStructs (EP2 in this example) - disabled: true - - - label: "Using the manufacturer provided means, create multiple actions" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - no Matter messages - disabled: true - - - label: "Read ActionList attribute" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - ./chip-tool actions read action-list 1 1 - - Verify ActionStructs in TH(chip-tool) Log: - [1658479958.699434][26130:26135] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 - [1658479958.699494][26130:26135] CHIP:TOO: action list: 2 entries - [1658479958.699549][26130:26135] CHIP:TOO: [1]: { - [1658479958.699582][26130:26135] CHIP:TOO: ActionID: 4097 - [1658479958.699597][26130:26135] CHIP:TOO: Name: Room 1 On - [1658479958.699611][26130:26135] CHIP:TOO: Type: 3 - [1658479958.699624][26130:26135] CHIP:TOO: EndpointListID: 57345 - [1658479958.699638][26130:26135] CHIP:TOO: SupportedCommands: 1 - [1658479958.699652][26130:26135] CHIP:TOO: Status: 0 - [1658479958.699665][26130:26135] CHIP:TOO: } - [1658479958.699689][26130:26135] CHIP:TOO: [2]: { - [1658479958.699702][26130:26135] CHIP:TOO: ActionID: 4098 - [1658479958.699715][26130:26135] CHIP:TOO: Name: Turn On Room 2 - [1658479958.699727][26130:26135] CHIP:TOO: Type: 3 - [1658479958.699740][26130:26135] CHIP:TOO: EndpointListID: 57346 - [1658479958.699753][26130:26135] CHIP:TOO: SupportedCommands: 1 - [1658479958.699765][26130:26135] CHIP:TOO: Status: 0 - [1658479958.699777][26130:26135] CHIP:TOO: } - disabled: true - - - label: - "Using the manufacturer provided means, update the name of one of the - actions" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - Press m in bridge-app to update the name of one action - disabled: true - - - label: "Read ActionList attribute again" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - ./chip-tool actions read action-list 1 1 - - Verify ActionStructs in TH(chip-tool) Log: - [1658480004.064867][26153:26158] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 - [1658480004.064928][26153:26158] CHIP:TOO: action list: 2 entries - [1658480004.064992][26153:26158] CHIP:TOO: [1]: { - [1658480004.065024][26153:26158] CHIP:TOO: ActionID: 4097 - [1658480004.065041][26153:26158] CHIP:TOO: Name: Turn On Room 1 - [1658480004.065057][26153:26158] CHIP:TOO: Type: 3 - [1658480004.065073][26153:26158] CHIP:TOO: EndpointListID: 57345 - [1658480004.065090][26153:26158] CHIP:TOO: SupportedCommands: 1 - [1658480004.065105][26153:26158] CHIP:TOO: Status: 0 - [1658480004.065120][26153:26158] CHIP:TOO: } - [1658480004.065148][26153:26158] CHIP:TOO: [2]: { - [1658480004.065165][26153:26158] CHIP:TOO: ActionID: 4098 - [1658480004.065179][26153:26158] CHIP:TOO: Name: Turn On Room 2 - [1658480004.065194][26153:26158] CHIP:TOO: Type: 3 - [1658480004.065209][26153:26158] CHIP:TOO: EndpointListID: 57346 - [1658480004.065223][26153:26158] CHIP:TOO: SupportedCommands: 1 - [1658480004.065238][26153:26158] CHIP:TOO: Status: 0 - [1658480004.065252][26153:26158] CHIP:TOO: } - disabled: true - - - label: "compare result of step 3d to what was read in step 3b" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - Compare step 3d and 3b and verify the name field has been changed - - Step 3d - Verify ActionStructs in TH(chip-tool) Log: - [1658480004.064867][26153:26158] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 - [1658480004.064928][26153:26158] CHIP:TOO: action list: 2 entries - [1658480004.064992][26153:26158] CHIP:TOO: [1]: { - [1658480004.065024][26153:26158] CHIP:TOO: ActionID: 4097 - [1658480004.065041][26153:26158] CHIP:TOO: Name: Turn On Room 1 - [1658480004.065057][26153:26158] CHIP:TOO: Type: 3 - [1658480004.065073][26153:26158] CHIP:TOO: EndpointListID: 57345 - [1658480004.065090][26153:26158] CHIP:TOO: SupportedCommands: 1 - [1658480004.065105][26153:26158] CHIP:TOO: Status: 0 - [1658480004.065120][26153:26158] CHIP:TOO: } - [1658480004.065148][26153:26158] CHIP:TOO: [2]: { - [1658480004.065165][26153:26158] CHIP:TOO: ActionID: 4098 - [1658480004.065179][26153:26158] CHIP:TOO: Name: Turn On Room 2 - [1658480004.065194][26153:26158] CHIP:TOO: Type: 3 - [1658480004.065209][26153:26158] CHIP:TOO: EndpointListID: 57346 - [1658480004.065223][26153:26158] CHIP:TOO: SupportedCommands: 1 - [1658480004.065238][26153:26158] CHIP:TOO: Status: 0 - [1658480004.065252][26153:26158] CHIP:TOO: } - - Step 3b Log: - Verify ActionStructs in TH(chip-tool) Log: - [1658479958.699434][26130:26135] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 - [1658479958.699494][26130:26135] CHIP:TOO: action list: 2 entries - [1658479958.699549][26130:26135] CHIP:TOO: [1]: { - [1658479958.699582][26130:26135] CHIP:TOO: ActionID: 4097 - [1658479958.699597][26130:26135] CHIP:TOO: Name: Room 1 On - [1658479958.699611][26130:26135] CHIP:TOO: Type: 3 - [1658479958.699624][26130:26135] CHIP:TOO: EndpointListID: 57345 - [1658479958.699638][26130:26135] CHIP:TOO: SupportedCommands: 1 - [1658479958.699652][26130:26135] CHIP:TOO: Status: 0 - [1658479958.699665][26130:26135] CHIP:TOO: } - [1658479958.699689][26130:26135] CHIP:TOO: [2]: { - [1658479958.699702][26130:26135] CHIP:TOO: ActionID: 4098 - [1658479958.699715][26130:26135] CHIP:TOO: Name: Turn On Room 2 - [1658479958.699727][26130:26135] CHIP:TOO: Type: 3 - [1658479958.699740][26130:26135] CHIP:TOO: EndpointListID: 57346 - [1658479958.699753][26130:26135] CHIP:TOO: SupportedCommands: 1 - [1658479958.699765][26130:26135] CHIP:TOO: Status: 0 - [1658479958.699777][26130:26135] CHIP:TOO: } - disabled: true - - - label: - "Using the manufacturer provided means, remove one of the exposed - actions" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - press n in bridge-app - disabled: true - - - label: "Read ActionList attribute again" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - ./chip-tool actions read action-list 1 1 - - Verify ActionStructs in TH(chip-tool) Log: - [1658480039.164683][26172:26177] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 - [1658480039.164758][26172:26177] CHIP:TOO: action list: 1 entries - [1658480039.164815][26172:26177] CHIP:TOO: [1]: { - [1658480039.164846][26172:26177] CHIP:TOO: ActionID: 4097 - [1658480039.164872][26172:26177] CHIP:TOO: Name: Turn On Room 1 - [1658480039.164897][26172:26177] CHIP:TOO: Type: 3 - [1658480039.164920][26172:26177] CHIP:TOO: EndpointListID: 57345 - [1658480039.164948][26172:26177] CHIP:TOO: SupportedCommands: 1 - [1658480039.164974][26172:26177] CHIP:TOO: Status: 0 - [1658480039.164997][26172:26177] CHIP:TOO: } - disabled: true - - - label: "compare result of step 3g to what was read in step 3d" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - compare result of step 3g to what was read in step 3d - Verify one Action (4098 in this example) got removed while the other Action(s) (4097 in this case) did not change - disabled: true - - - label: "Using the manufacturer provided means, add a new exposed action" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - press o in bridge-app - disabled: true - - - label: "Read ActionList attribute again" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - ./chip-tool actions read action-list 1 1 - - Verify ActionStructs in TH(chip-tool) Log: - [1658480059.199268][26178:26183] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 - [1658480059.199349][26178:26183] CHIP:TOO: action list: 2 entries - [1658480059.199410][26178:26183] CHIP:TOO: [1]: { - [1658480059.199440][26178:26183] CHIP:TOO: ActionID: 4097 - [1658480059.199457][26178:26183] CHIP:TOO: Name: Turn On Room 1 - [1658480059.199473][26178:26183] CHIP:TOO: Type: 3 - [1658480059.199488][26178:26183] CHIP:TOO: EndpointListID: 57345 - [1658480059.199505][26178:26183] CHIP:TOO: SupportedCommands: 1 - [1658480059.199520][26178:26183] CHIP:TOO: Status: 0 - [1658480059.199534][26178:26183] CHIP:TOO: } - [1658480059.199562][26178:26183] CHIP:TOO: [2]: { - [1658480059.199578][26178:26183] CHIP:TOO: ActionID: 4099 - [1658480059.199593][26178:26183] CHIP:TOO: Name: Turn Off Room 1 - [1658480059.199607][26178:26183] CHIP:TOO: Type: 3 - [1658480059.199622][26178:26183] CHIP:TOO: EndpointListID: 57347 - [1658480059.199636][26178:26183] CHIP:TOO: SupportedCommands: 1 - [1658480059.199651][26178:26183] CHIP:TOO: Status: 0 - [1658480059.199665][26178:26183] CHIP:TOO: } - disabled: true - - - label: "compare result of step 3j to what was read in step 3g" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - compare result of step 3j to what was read in step 3g - Verify one new Action (4099 in this example) got added while the other Action(s) (4097 in this case) did not change - disabled: true - - - label: "Using the manufacturer provided means, create multiple actions" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList - verification: | - no Matter messages - disabled: true - - - label: "Read ActionList attribute" - PICS: ACT.S.A0000 - verification: | - ./chip-tool actions read action-list 1 1 - - Verify ActionStructs in TH(chip-tool) Log: - [1658480080.135069][26185:26190] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 - [1658480080.135130][26185:26190] CHIP:TOO: action list: 2 entries - [1658480080.135191][26185:26190] CHIP:TOO: [1]: { - [1658480080.135222][26185:26190] CHIP:TOO: ActionID: 4097 - [1658480080.135238][26185:26190] CHIP:TOO: Name: Turn On Room 1 - [1658480080.135253][26185:26190] CHIP:TOO: Type: 3 - [1658480080.135269][26185:26190] CHIP:TOO: EndpointListID: 57345 - [1658480080.135285][26185:26190] CHIP:TOO: SupportedCommands: 1 - [1658480080.135300][26185:26190] CHIP:TOO: Status: 0 - [1658480080.135315][26185:26190] CHIP:TOO: } - [1658480080.135342][26185:26190] CHIP:TOO: [2]: { - [1658480080.135357][26185:26190] CHIP:TOO: ActionID: 4099 - [1658480080.135371][26185:26190] CHIP:TOO: Name: Turn Off Room 1 - [1658480080.135386][26185:26190] CHIP:TOO: Type: 3 - [1658480080.135400][26185:26190] CHIP:TOO: EndpointListID: 57347 - [1658480080.135415][26185:26190] CHIP:TOO: SupportedCommands: 1 - [1658480080.135430][26185:26190] CHIP:TOO: Status: 0 - [1658480080.135443][26185:26190] CHIP:TOO: } - disabled: true - - - label: "subscribe to StateChanged and ActionFailed events" - verification: | - To subscribe StateChanged event follow below steps - 1) ./chip-tool interactive start - 2) actions subscribe-event action-failed 2 30 1 0 - Verify in TH Log: - [1659962630.453221][25381:25386] CHIP:EM: Removed CHIP MessageCounter:65903257 from RetransTable on exchange 50035i - [1659962630.453246][25381:25386] CHIP:DMG: ReportDataMessage = - [1659962630.453259][25381:25386] CHIP:DMG: { - [1659962630.453270][25381:25386] CHIP:DMG: SubscriptionId = 0x78f0a04c, - [1659962630.453281][25381:25386] CHIP:DMG: InteractionModelRevision = 1 - [1659962630.453290][25381:25386] CHIP:DMG: } - [1659962630.453312][25381:25386] CHIP:DMG: MoveToState ReadClient[0x7f9204005990]: Moving to [AwaitingSu] - [1659962630.453337][25381:25386] CHIP:EM: Piggybacking Ack for MessageCounter:102831868 on exchange: 50035i - [1659962630.453364][25381:25386] CHIP:IN: Prepared secure message 0x7f9204005698 to 0x0000000000000001 (1) of type 0x1 and protocolId (0, 1) on exchange 50035i with MessageCounter:65903258. - [1659962630.453382][25381:25386] CHIP:IN: Sending encrypted msg 0x7f9204005698 with MessageCounter:65903258 to 0x0000000000000001 (1) at monotonic time: 0000000001ADE9B2 msec - [1659962630.456411][25381:25386] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:102831869 on exchange 50035i - [1659962630.456431][25381:25386] CHIP:EM: Found matching exchange: 50035i, Delegate: 0x7f92040059a0 - [1659962630.456448][25381:25386] CHIP:EM: Rxd Ack; Removing MessageCounter:65903258 from Retrans Table on exchange 50035i - [1659962630.456457][25381:25386] CHIP:EM: Removed CHIP MessageCounter:65903258 from RetransTable on exchange 50035i - [1659962630.456475][25381:25386] CHIP:DMG: SubscribeResponse is received - [1659962630.456497][25381:25386] CHIP:DMG: SubscribeResponseMessage = - [1659962630.456509][25381:25386] CHIP:DMG: { - [1659962630.456520][25381:25386] CHIP:DMG: SubscriptionId = 0x78f0a04c, - [1659962630.456531][25381:25386] CHIP:DMG: MaxInterval = 0x64, - [1659962630.456542][25381:25386] CHIP:DMG: InteractionModelRevision = 1 - [1659962630.456551][25381:25386] CHIP:DMG: } - [1659962630.456563][25381:25386] CHIP:DMG: Subscription established with SubscriptionID = 0x78f0a04c MinInterval = 0s MaxInterval = 100s Peer = 01:0000000000000001 - - 3) actions instant-action 0x1001 1 1 - - Verify in TH Log - - [1659955888.114483][23216:23221] CHIP:DMG: StatusIB = - [1659955888.114499][23216:23221] CHIP:DMG: { - [1659955888.114515][23216:23221] CHIP:DMG: status = 0x00 (SUCCESS), - [1659955888.114529][23216:23221] CHIP:DMG: }, - disabled: true - - - label: - "For each of the ActionStructs provided by DUT (see list read in step - 4b), perform one of the actions supported (see SupportedCommands in - this ActionStruct) by sending the command with this particular - ActionID and a random value for InvokeID" - verification: | - Only InstantActions command is supported - - ./chip-tool actions instant-action 0x1001 1 1 - - Verify in TH Log - - [1659955888.114483][23216:23221] CHIP:DMG: StatusIB = - [1659955888.114499][23216:23221] CHIP:DMG: { - [1659955888.114515][23216:23221] CHIP:DMG: status = 0x00 (SUCCESS), - [1659955888.114529][23216:23221] CHIP:DMG: }, - disabled: true - - - label: "repeat 4d for the other SupportedCommands of each ActionStruct" - verification: | - Only InstantActions command is supported - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml index 36e98876ecb714..7461750e3b08dd 100644 --- a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml @@ -213,18 +213,6 @@ tests: [1663583922.989709][155023:155023] CHIP:DMG: << from UDP:[fe80::e2a:f0a6:5d44:15b1%wlp3s0]:35251 | 43255988 | [Secure Channel (0) / Standalone Ack (0x10) / Session = 0 / Exchange = 14682] disabled: true - - label: "DUT reads Location from the TH" - PICS: BRBINFO.C.A0006 - verification: | - ./chip-tool bridgeddevicebasic read location 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - - - chip-tool needs to be implemented - disabled: true - - label: "DUT reads HardwareVersion from the TH" PICS: BRBINFO.C.A0007 verification: | diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml index 19b44210505cf9..8692225739b419 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml @@ -198,7 +198,9 @@ tests: verification: | Using TH_CR2 read attribute - ./chip-tool basic read node-label 2 0 --commissioner-name beta + Verify read command fail as expected since the DUT_CE is no longer on the network on TH_CR2 (chip-tool) side + + ./chip-tool basicinformation read node-label 2 0 --commissioner-name beta Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2 diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml index 1b9eb948ae2b1c..7964c3947511fc 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml @@ -180,7 +180,9 @@ tests: verification: | Using TH_CR2 read attribute - ./chip-tool basic read node-label 2 0 --commissioner-name beta + Verify read command fail as expected since the DUT_CE is no longer on the network on TH_CR2 (chip-tool) log + + ./chip-tool basicinformation read node-label 2 0 --commissioner-name beta Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2 diff --git a/src/app/tests/suites/certification/Test_TC_CGEN_2_4.yaml b/src/app/tests/suites/certification/Test_TC_CGEN_2_4.yaml deleted file mode 100644 index dd998ec84f8efd..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_CGEN_2_4.yaml +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: - 93.2.3. [TC-CGEN-2.4] Verification For CommissioningError on response - message [DUT - Server] - -PICS: - - CGEN.S - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Start the commissioning process of TH1 on DUT" - verification: | - - disabled: true - - - label: - "During PASE Session, TH1 sends CommissioningComplete command to the - DUT" - PICS: CGEN.S.C04.Rsp && CGEN.S.C05.Tx - verification: | - Out of scope for V1.0 - disabled: true - - - label: "Complete the Commission for TH1 and DUT" - verification: | - - disabled: true - - - label: - "TH1 sends SetRegulatoryConfig command to the DUT with - NewRegulatoryConfig data value as greater than 3, Breadcrumb as 0 and - CountryCode value as PIXIT.CGEN.CountryCode" - PICS: CGEN.S.C02.Rsp && CGEN.S.C03.Tx - verification: | - ./chip-tool generalcommissioning set-regulatory-config 4 new 0 1 0 - - On TH(chip-tool), Verify that DUT sends SetRegulatoryConfigResponse command to TH1 with field ErrorCode as "ValueOutsideRange"(1) and DebugText argument is of type string with max length 512 or empty a "string" value - [1653996382.940789][7220:7225] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0003 - [1653996382.940900][7220:7225] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0003 - [1653996382.941033][7220:7225] CHIP:TOO: SetRegulatoryConfigResponse: { - [1653996382.941119][7220:7225] CHIP:TOO: errorCode: 1 - [1653996382.941171][7220:7225] CHIP:TOO: debugText: new - [1653996382.941220][7220:7225] CHIP:TOO: } - [1653996382.941317][7220:7225] CHIP:DMG: ICR moving to [AwaitingDe] - disabled: true - - - label: - "After Fail-Safe timer expires, TH1 Sends the CommissioningComplete - command to the DUT" - PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx - verification: | - ./chip-tool generalcommissioning commissioning-complete 1 0 - - On TH(chip-tool), Verify that DUT sends SetRegulatoryConfigResponse command to TH1 with field With ErrorCode as "NoFailSafe"(3) and DebugText as a "string" value - based on Spec Default value empty is exceptable for debugText - [1653996461.207051][7229:7234] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 - [1653996461.207140][7229:7234] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0005 - [1653996461.207228][7229:7234] CHIP:TOO: CommissioningCompleteResponse: { - [1653996461.207281][7229:7234] CHIP:TOO: errorCode: 3 - [1653996461.207319][7229:7234] CHIP:TOO: debugText: - [1653996461.207357][7229:7234] CHIP:TOO: } - [1653996461.207416][7229:7234] CHIP:DMG: ICR moving to [AwaitingDe] - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_G_2_2.yaml b/src/app/tests/suites/certification/Test_TC_G_2_2.yaml index 80cabf2cd55087..11c152a1214e4e 100644 --- a/src/app/tests/suites/certification/Test_TC_G_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_2_2.yaml @@ -44,7 +44,8 @@ tests: [1674543469.444257][19260:19262] CHIP:TOO: MaxGroupsPerFabric: 4 disabled: true - - label: "Precondition: If maxgroups>1, proceed with the following steps + - label: | + Precondition: If maxgroups>1, proceed with the following steps, TH generates fabric-unique GroupID, GroupName, random key, EpochKey0 and GroupKeySetID. @@ -66,7 +67,7 @@ tests: TH binds GroupId(0x0001 to (maxgroups+1)) with GroupKeySetID in the GroupKeyMap attribute list on GroupKeyManagement cluster with the - values provided in the above steps" + values provided in the above steps verification: | Execute the following command in TH to generate the pre-condition to execute this test case: diff --git a/src/app/tests/suites/certification/Test_TC_G_2_3.yaml b/src/app/tests/suites/certification/Test_TC_G_2_3.yaml index bc27784e2aeff5..c7345794dfd14d 100644 --- a/src/app/tests/suites/certification/Test_TC_G_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_2_3.yaml @@ -45,7 +45,8 @@ tests: [1674550919.106455][20702:20704] CHIP:TOO: MaxGroupsPerFabric: 4 disabled: true - - label: "Pre-Conditions: If maxgroups>0, proceed with the following steps + - label: | + Pre-Conditions: If maxgroups>0, proceed with the following steps TH generates fabric-unique GroupID, GroupName, random key, EpochKey0 and GroupKeySetID. @@ -71,16 +72,16 @@ tests: TH binds GroupId(0x0006 to (maxgroups+1)) with GroupKeySetID in the GroupKeyMap attribute list on GroupKeyManagement cluster with the - values provided in the above steps" + values provided in the above steps verification: | Execute the following command in TH to generate the pre-condition to execute this test case: - ./chip-tool groupkeymanagement key-set-write "{"groupKeySetID": 1, + ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, "groupKeySecurityPolicy": 0, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": - "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }" 1 0 + "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 Verify the "status is success" on the TH(Chip-tool) Log: @@ -91,7 +92,7 @@ tests: Before adding the Groups (0x0002,0x0003) execute this command - ./chip-tool groupkeymanagement write group-key-map "[{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1} ]" 1 0 + ./chip-tool groupkeymanagement write group-key-map '[{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1} ]' 1 0 Verify the status is success on the TH Log: @@ -131,7 +132,7 @@ tests: Before adding the Groups (0x0006,0x0007) execute this command - ./chip-tool groupkeymanagement write group-key-map "[{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1,"fabricIndex": 1}]" 1 0 + ./chip-tool groupkeymanagement write group-key-map '[{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1,"fabricIndex": 1}]' 1 0 Verify the "status is success" on the TH(Chip-tool) Log: @@ -192,7 +193,7 @@ tests: Before adding the Groups (0x0008) execute this command - ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 8, "groupKeySetID": 1, "fabricIndex": 1}]" 1 0 + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 8, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 Verify the "status is success" on the TH(Chip-tool) Log: @@ -235,7 +236,7 @@ tests: Before adding the Group0x0009 execute this command which is used to check the Resource_Exhausted Condition - ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 9, "groupKeySetID": 1, "fabricIndex": 1}]" 1 0 + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 9, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 Verify the "status is success" on the TH(Chip-tool) Log: diff --git a/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml index 1b778b44ac99f4..a06440ddc3106e 100644 --- a/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml +++ b/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml @@ -46,3 +46,354 @@ tests: - label: "Read attribute Tolerance" wait: "readAttribute" attribute: "Tolerance" + + - label: + "Configure TH such that it implements mandatory and none of the + optional attributes of the server-side of the cluster, and that it + also reflects this in global attributes such as FeatureMap and + AttributeList.Commission DUT to TH again" + verification: | + ./chip-tool relativehumiditymeasurement read feature-map 1 1 + + verify TH recieves "feature-map response" on the TH (all-cluster-minimal-app) log: + + [1666943749.218050][12769:12769] CHIP:DMG: + [1666943749.218060][12769:12769] CHIP:DMG: ReportDataMessage = + [1666943749.218062][12769:12769] CHIP:DMG: { + [1666943749.218064][12769:12769] CHIP:DMG: AttributeReportIBs = + [1666943749.218067][12769:12769] CHIP:DMG: [ + [1666943749.218069][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943749.218074][12769:12769] CHIP:DMG: { + [1666943749.218076][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943749.218078][12769:12769] CHIP:DMG: { + [1666943749.218081][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943749.218083][12769:12769] CHIP:DMG: AttributePathIB = + [1666943749.218086][12769:12769] CHIP:DMG: { + [1666943749.218088][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943749.218091][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943749.218093][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFC, + [1666943749.218095][12769:12769] CHIP:DMG: } + [1666943749.218098][12769:12769] CHIP:DMG: + [1666943749.218101][12769:12769] CHIP:DMG: Data = 0, + [1666943749.218103][12769:12769] CHIP:DMG: }, + [1666943749.218106][12769:12769] CHIP:DMG: + [1666943749.218108][12769:12769] CHIP:DMG: }, + [1666943749.218112][12769:12769] CHIP:DMG: + [1666943749.218114][12769:12769] CHIP:DMG: ], + [1666943749.218117][12769:12769] CHIP:DMG: + + + ./chip-tool relativehumiditymeasurement read attribute-list 1 1 + + verify TH recieves "attribute-list response" on the TH (all-cluster-minimal-app) log: + + [1666943792.254338][12769:12769] CHIP:DMG: + [1666943792.254369][12769:12769] CHIP:DMG: ReportDataMessage = + [1666943792.254372][12769:12769] CHIP:DMG: { + [1666943792.254374][12769:12769] CHIP:DMG: AttributeReportIBs = + [1666943792.254378][12769:12769] CHIP:DMG: [ + [1666943792.254381][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943792.254385][12769:12769] CHIP:DMG: { + [1666943792.254388][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943792.254392][12769:12769] CHIP:DMG: { + [1666943792.254395][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943792.254397][12769:12769] CHIP:DMG: AttributePathIB = + [1666943792.254399][12769:12769] CHIP:DMG: { + [1666943792.254402][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943792.254404][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943792.254406][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666943792.254409][12769:12769] CHIP:DMG: } + [1666943792.254411][12769:12769] CHIP:DMG: + [1666943792.254414][12769:12769] CHIP:DMG: Data = [ + [1666943792.254418][12769:12769] CHIP:DMG: + [1666943792.254422][12769:12769] CHIP:DMG: ], + [1666943792.254424][12769:12769] CHIP:DMG: }, + [1666943792.254427][12769:12769] CHIP:DMG: + [1666943792.254430][12769:12769] CHIP:DMG: }, + [1666943792.254435][12769:12769] CHIP:DMG: + [1666943792.254437][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943792.254441][12769:12769] CHIP:DMG: { + [1666943792.254443][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943792.254446][12769:12769] CHIP:DMG: { + [1666943792.254449][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943792.254453][12769:12769] CHIP:DMG: AttributePathIB = + [1666943792.254456][12769:12769] CHIP:DMG: { + [1666943792.254459][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943792.254463][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943792.254465][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666943792.254470][12769:12769] CHIP:DMG: ListIndex = Null, + [1666943792.254473][12769:12769] CHIP:DMG: } + [1666943792.254477][12769:12769] CHIP:DMG: + [1666943792.254480][12769:12769] CHIP:DMG: Data = 0, + [1666943792.254483][12769:12769] CHIP:DMG: }, + [1666943792.254487][12769:12769] CHIP:DMG: + [1666943792.254489][12769:12769] CHIP:DMG: }, + [1666943792.254495][12769:12769] CHIP:DMG: + [1666943792.254497][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943792.254501][12769:12769] CHIP:DMG: { + [1666943792.254504][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943792.254506][12769:12769] CHIP:DMG: { + [1666943792.254509][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943792.254513][12769:12769] CHIP:DMG: AttributePathIB = + [1666943792.254516][12769:12769] CHIP:DMG: { + [1666943792.254519][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943792.254522][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943792.254525][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666943792.254527][12769:12769] CHIP:DMG: ListIndex = Null, + [1666943792.254530][12769:12769] CHIP:DMG: } + [1666943792.254534][12769:12769] CHIP:DMG: + [1666943792.254538][12769:12769] CHIP:DMG: Data = 1, + [1666943792.254540][12769:12769] CHIP:DMG: }, + [1666943792.254544][12769:12769] CHIP:DMG: + [1666943792.254546][12769:12769] CHIP:DMG: }, + [1666943792.254551][12769:12769] CHIP:DMG: + [1666943792.254553][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943792.254557][12769:12769] CHIP:DMG: { + [1666943792.254559][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943792.254562][12769:12769] CHIP:DMG: { + [1666943792.254565][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943792.254569][12769:12769] CHIP:DMG: AttributePathIB = + [1666943792.254571][12769:12769] CHIP:DMG: { + [1666943792.254573][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943792.254576][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943792.254578][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666943792.254580][12769:12769] CHIP:DMG: ListIndex = Null, + [1666943792.254582][12769:12769] CHIP:DMG: } + [1666943792.254586][12769:12769] CHIP:DMG: + [1666943792.254589][12769:12769] CHIP:DMG: Data = 2, + [1666943792.254592][12769:12769] CHIP:DMG: }, + [1666943792.254596][12769:12769] CHIP:DMG: + [1666943792.254598][12769:12769] CHIP:DMG: }, + [1666943792.254604][12769:12769] CHIP:DMG: + [1666943792.254606][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943792.254610][12769:12769] CHIP:DMG: { + [1666943792.254612][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943792.254615][12769:12769] CHIP:DMG: { + [1666943792.254618][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943792.254621][12769:12769] CHIP:DMG: AttributePathIB = + [1666943792.254624][12769:12769] CHIP:DMG: { + [1666943792.254627][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943792.254630][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943792.254633][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666943792.254635][12769:12769] CHIP:DMG: ListIndex = Null, + [1666943792.254638][12769:12769] CHIP:DMG: } + [1666943792.254642][12769:12769] CHIP:DMG: + [1666943792.254645][12769:12769] CHIP:DMG: Data = 65528, + [1666943792.254647][12769:12769] CHIP:DMG: }, + [1666943792.254651][12769:12769] CHIP:DMG: + [1666943792.254653][12769:12769] CHIP:DMG: }, + [1666943792.254658][12769:12769] CHIP:DMG: + [1666943792.254660][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943792.254664][12769:12769] CHIP:DMG: { + [1666943792.254666][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943792.254669][12769:12769] CHIP:DMG: { + [1666943792.254672][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943792.254674][12769:12769] CHIP:DMG: AttributePathIB = + [1666943792.254677][12769:12769] CHIP:DMG: { + [1666943792.254680][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943792.254683][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943792.254686][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666943792.254689][12769:12769] CHIP:DMG: ListIndex = Null, + [1666943792.254691][12769:12769] CHIP:DMG: } + [1666943792.254695][12769:12769] CHIP:DMG: + [1666943792.254698][12769:12769] CHIP:DMG: Data = 65529, + [1666943792.254700][12769:12769] CHIP:DMG: }, + [1666943792.254704][12769:12769] CHIP:DMG: + [1666943792.254707][12769:12769] CHIP:DMG: }, + [1666943792.254712][12769:12769] CHIP:DMG: + [1666943792.254714][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943792.254718][12769:12769] CHIP:DMG: { + [1666943792.254720][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943792.254723][12769:12769] CHIP:DMG: { + [1666943792.254726][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943792.254729][12769:12769] CHIP:DMG: AttributePathIB = + [1666943792.254732][12769:12769] CHIP:DMG: { + [1666943792.254735][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943792.254738][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943792.254740][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666943792.254743][12769:12769] CHIP:DMG: ListIndex = Null, + [1666943792.254746][12769:12769] CHIP:DMG: } + [1666943792.254750][12769:12769] CHIP:DMG: + [1666943792.254753][12769:12769] CHIP:DMG: Data = 65531, + [1666943792.254756][12769:12769] CHIP:DMG: }, + [1666943792.254759][12769:12769] CHIP:DMG: + [1666943792.254762][12769:12769] CHIP:DMG: }, + [1666943792.254767][12769:12769] CHIP:DMG: + [1666943792.254769][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943792.254773][12769:12769] CHIP:DMG: { + [1666943792.254775][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943792.254778][12769:12769] CHIP:DMG: { + [1666943792.254780][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943792.254783][12769:12769] CHIP:DMG: AttributePathIB = + [1666943792.254786][12769:12769] CHIP:DMG: { + [1666943792.254789][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943792.254792][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943792.254797][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666943792.254799][12769:12769] CHIP:DMG: ListIndex = Null, + [1666943792.254802][12769:12769] CHIP:DMG: } + [1666943792.254804][12769:12769] CHIP:DMG: + [1666943792.254807][12769:12769] CHIP:DMG: Data = 65532, + [1666943792.254809][12769:12769] CHIP:DMG: }, + [1666943792.254811][12769:12769] CHIP:DMG: + [1666943792.254813][12769:12769] CHIP:DMG: }, + [1666943792.254820][12769:12769] CHIP:DMG: + [1666943792.254822][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943792.254826][12769:12769] CHIP:DMG: { + [1666943792.254828][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943792.254831][12769:12769] CHIP:DMG: { + [1666943792.254833][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943792.254835][12769:12769] CHIP:DMG: AttributePathIB = + [1666943792.254837][12769:12769] CHIP:DMG: { + [1666943792.254842][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943792.254845][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943792.254849][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666943792.254851][12769:12769] CHIP:DMG: ListIndex = Null, + [1666943792.254853][12769:12769] CHIP:DMG: } + [1666943792.254856][12769:12769] CHIP:DMG: + [1666943792.254859][12769:12769] CHIP:DMG: Data = 65533, + [1666943792.254861][12769:12769] CHIP:DMG: }, + [1666943792.254865][12769:12769] CHIP:DMG: + [1666943792.254867][12769:12769] CHIP:DMG: }, + [1666943792.254872][12769:12769] CHIP:DMG: + [1666943792.254874][12769:12769] CHIP:DMG: ], + [1666943792.254884][12769:12769] CHIP:DMG: + [1666943792.254886][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943792.254889][12769:12769] CHIP:DMG: InteractionModelRevision = 1 + [1666943792.254891][12769:12769] CHIP:DMG: } + [1666943792.254894][12769:12769] CHIP:DMG: + + ./chip-tool relativehumiditymeasurement read measured-value 1 1 + + verify TH recieves "measured-value response" on the TH (all-cluster-minimal-app) log: + [1666943851.649935][12769:12769] CHIP:DMG: + [1666943851.649947][12769:12769] CHIP:DMG: ReportDataMessage = + [1666943851.649950][12769:12769] CHIP:DMG: { + [1666943851.649952][12769:12769] CHIP:DMG: AttributeReportIBs = + [1666943851.649956][12769:12769] CHIP:DMG: [ + [1666943851.649958][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943851.649962][12769:12769] CHIP:DMG: { + [1666943851.649965][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943851.649967][12769:12769] CHIP:DMG: { + [1666943851.649970][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943851.649973][12769:12769] CHIP:DMG: AttributePathIB = + [1666943851.649975][12769:12769] CHIP:DMG: { + [1666943851.649978][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943851.649981][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943851.649984][12769:12769] CHIP:DMG: Attribute = 0x0000_0000, + [1666943851.649987][12769:12769] CHIP:DMG: } + [1666943851.649990][12769:12769] CHIP:DMG: + [1666943851.649994][12769:12769] CHIP:DMG: Data = 0, + [1666943851.649997][12769:12769] CHIP:DMG: }, + [1666943851.650001][12769:12769] CHIP:DMG: + [1666943851.650003][12769:12769] CHIP:DMG: }, + [1666943851.650007][12769:12769] CHIP:DMG: + [1666943851.650009][12769:12769] CHIP:DMG: ], + [1666943851.650013][12769:12769] CHIP:DMG: + [1666943851.650015][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943851.650017][12769:12769] CHIP:DMG: InteractionModelRevision = 1 + + ./chip-tool relativehumiditymeasurement read min-measured-value 1 1 + + verify TH recieves "min-measured-value response" on the TH (all-cluster-minimal-app) log: + + 1651147834.075387][2336:2336] CHIP:IM: Received Read request + + [1666943887.048829][12769:12769] CHIP:DMG: ReportDataMessage = + [1666943887.048832][12769:12769] CHIP:DMG: { + [1666943887.048835][12769:12769] CHIP:DMG: AttributeReportIBs = + [1666943887.048840][12769:12769] CHIP:DMG: [ + [1666943887.048842][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943887.048846][12769:12769] CHIP:DMG: { + [1666943887.048848][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943887.048851][12769:12769] CHIP:DMG: { + [1666943887.048853][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943887.048855][12769:12769] CHIP:DMG: AttributePathIB = + [1666943887.048857][12769:12769] CHIP:DMG: { + [1666943887.048859][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943887.048862][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943887.048865][12769:12769] CHIP:DMG: Attribute = 0x0000_0001, + [1666943887.048868][12769:12769] CHIP:DMG: } + [1666943887.048871][12769:12769] CHIP:DMG: + [1666943887.048874][12769:12769] CHIP:DMG: Data = 0, + [1666943887.048877][12769:12769] CHIP:DMG: }, + [1666943887.048881][12769:12769] CHIP:DMG: + [1666943887.048883][12769:12769] CHIP:DMG: }, + [1666943887.048887][12769:12769] CHIP:DMG: + [1666943887.048889][12769:12769] CHIP:DMG: ], + [1666943887.048893][12769:12769] CHIP:DMG: + [1666943887.048894][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943887.048897][12769:12769] CHIP:DMG: InteractionModelRevision = 1 + + + ./chip-tool relativehumiditymeasurement read max-measured-value 1 1 + + verify TH recieves "max-measured-value response" on the TH (all-cluster-minimal-app) log: + + [1666943902.417737][12769:12769] CHIP:DMG: ReportDataMessage = + [1666943902.417740][12769:12769] CHIP:DMG: { + [1666943902.417742][12769:12769] CHIP:DMG: AttributeReportIBs = + [1666943902.417747][12769:12769] CHIP:DMG: [ + [1666943902.417749][12769:12769] CHIP:DMG: AttributeReportIB = + [1666943902.417755][12769:12769] CHIP:DMG: { + [1666943902.417758][12769:12769] CHIP:DMG: AttributeDataIB = + [1666943902.417761][12769:12769] CHIP:DMG: { + [1666943902.417764][12769:12769] CHIP:DMG: DataVersion = 0xff7445f8, + [1666943902.417767][12769:12769] CHIP:DMG: AttributePathIB = + [1666943902.417771][12769:12769] CHIP:DMG: { + [1666943902.417774][12769:12769] CHIP:DMG: Endpoint = 0x1, + [1666943902.417777][12769:12769] CHIP:DMG: Cluster = 0x405, + [1666943902.417781][12769:12769] CHIP:DMG: Attribute = 0x0000_0002, + [1666943902.417784][12769:12769] CHIP:DMG: } + [1666943902.417788][12769:12769] CHIP:DMG: + [1666943902.417791][12769:12769] CHIP:DMG: Data = 10000, + [1666943902.417794][12769:12769] CHIP:DMG: }, + [1666943902.417798][12769:12769] CHIP:DMG: + [1666943902.417801][12769:12769] CHIP:DMG: }, + [1666943902.417805][12769:12769] CHIP:DMG: + [1666943902.417808][12769:12769] CHIP:DMG: ], + [1666943902.417812][12769:12769] CHIP:DMG: + [1666943902.417815][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943902.417819][12769:12769] CHIP:DMG: InteractionModelRevision = 1 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT reads all supported optional attributes from TH one at a time in + a manufacturer specific order" + verification: | + TH all-clusters-minimal-app does not support optional attributes + + ./chip-tool relativehumiditymeasurement read tolerance 1 1 + + status = 0x86 (UNSUPPORTED_ATTRIBUTE), + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: + "DUT writes a suitable value to all supported optional attributes on + the TH one at a time in a manufacturer specific order" + verification: | + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml index f402fa9f0ec0c9..8bb39409df8abc 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml @@ -136,6 +136,7 @@ tests: PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 command: "readAttribute" attribute: "OccupiedCoolingSetpoint" + optional: true response: constraints: type: int16s @@ -149,6 +150,7 @@ tests: command: "readAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.A0018 + optional: true response: constraints: type: int16s @@ -160,6 +162,7 @@ tests: OccupiedCoolingSetpoint attribute" command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" + optional: true PICS: TSTAT.S.F01 arguments: value: 2500 @@ -169,6 +172,7 @@ tests: OccupiedCoolingSetpoint attribute" command: "readAttribute" attribute: "OccupiedCoolingSetpoint" + optional: true PICS: TSTAT.S.F01 response: value: 2500 @@ -176,6 +180,7 @@ tests: - label: "Writes OccupiedCoolingSetpoint to value below the MinCoolSetpointLimit" + optional: true command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.A0017 @@ -214,6 +219,7 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.A0017 + optional: true arguments: value: 4000 response: @@ -225,6 +231,7 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && TSTAT.S.A0017 + optional: true arguments: value: MaxCoolSetpointLimit + 1000 response: @@ -236,6 +243,7 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.F05 && !TSTAT.S.A0017 + optional: true arguments: value: 1600 @@ -245,6 +253,7 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.F05 && TSTAT.S.A0017 + optional: true arguments: value: MinCoolSetpointLimit @@ -278,6 +287,7 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.A0017 + optional: true arguments: value: 3200 @@ -287,6 +297,7 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && TSTAT.S.A0017 + optional: true arguments: value: MaxCoolSetpointLimit @@ -297,6 +308,7 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 + optional: true response: constraints: type: int16s @@ -310,6 +322,7 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.A0015 && !TSTAT.S.A0016 + optional: true response: constraints: type: int16s @@ -322,6 +335,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 + optional: true arguments: value: 2100 @@ -331,6 +345,7 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 + optional: true response: value: 2100 @@ -340,6 +355,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.A0015 + optional: true arguments: value: 600 response: @@ -376,6 +392,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.A0016 + optional: true arguments: value: 4010 response: @@ -387,6 +404,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && TSTAT.S.A0016 + optional: true arguments: value: MaxHeatSetpointLimit + 1000 response: @@ -398,6 +416,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.A0015 + optional: true arguments: value: 700 @@ -407,6 +426,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && TSTAT.S.A0015 + optional: true arguments: value: MinHeatSetpointLimit @@ -416,6 +436,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.F05 && !TSTAT.S.A0016 + optional: true arguments: value: 3000 @@ -425,6 +446,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.F05 && TSTAT.S.A0016 + optional: true arguments: value: MaxHeatSetpointLimit @@ -434,6 +456,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F05 && !TSTAT.S.A0015 + optional: true arguments: value: 3000 response: @@ -478,6 +501,7 @@ tests: command: "readAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 + optional: true response: constraints: type: int16s @@ -490,6 +514,7 @@ tests: command: "readAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.A0018 + optional: true response: constraints: type: int16s @@ -502,6 +527,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 + optional: true arguments: value: 2500 @@ -511,6 +537,7 @@ tests: command: "readAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 + optional: true response: value: 2500 @@ -520,6 +547,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 + optional: true arguments: value: 1002 response: @@ -551,6 +579,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0018 + optional: true arguments: value: 4010 response: @@ -562,6 +591,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0018 + optional: true arguments: value: MaxCoolSetpointLimit + 1000 response: @@ -573,6 +603,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.F05 + optional: true arguments: value: 1600 @@ -582,6 +613,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && TSTAT.S.F05 + optional: true arguments: value: 1600 response: @@ -593,6 +625,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.F05 + optional: true arguments: value: MinCoolSetpointLimit @@ -629,6 +662,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0018 && !TSTAT.S.F05 + optional: true arguments: value: 3200 @@ -638,6 +672,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 + optional: true arguments: value: MaxCoolSetpointLimit @@ -648,6 +683,7 @@ tests: command: "readAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 + optional: true response: constraints: type: int16s @@ -661,6 +697,7 @@ tests: command: "readAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 && !TSTAT.S.A0016 + optional: true response: constraints: type: int16s @@ -673,6 +710,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 + optional: true arguments: value: 2500 @@ -682,6 +720,7 @@ tests: command: "readAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 + optional: true response: value: 2500 @@ -691,6 +730,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 + optional: true arguments: value: 500 response: @@ -726,6 +766,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 + optional: true arguments: value: 4010 response: @@ -737,6 +778,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0016 + optional: true arguments: value: MaxHeatSetpointLimit + 1000 response: @@ -748,6 +790,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 + optional: true arguments: value: 700 @@ -757,6 +800,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015 + optional: true arguments: value: MinHeatSetpointLimit @@ -766,6 +810,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 && !TSTAT.S.F05 + optional: true arguments: value: 3000 @@ -775,6 +820,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 + optional: true arguments: value: MaxHeatSetpointLimit @@ -784,6 +830,7 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 && TSTAT.S.F05 + optional: true arguments: value: 3000 response: @@ -824,6 +871,7 @@ tests: command: "readAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 && TSTAT.S.A0003 + optional: true response: constraints: type: int16s @@ -836,6 +884,7 @@ tests: that the value is within range" command: "readAttribute" attribute: "MinHeatSetpointLimit" + optional: true PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0016 && !TSTAT.S.A0003 response: constraints: @@ -849,6 +898,7 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 + optional: true arguments: value: 800 @@ -858,6 +908,7 @@ tests: command: "readAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 + optional: true response: value: 800 @@ -865,6 +916,7 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.A0015 && TSTAT.S.F05 + optional: true arguments: value: 2000 response: @@ -876,6 +928,7 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0003 + optional: true arguments: value: 100 response: @@ -910,6 +963,7 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0016 + optional: true arguments: value: 4050 response: @@ -921,6 +975,7 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 + optional: true arguments: value: MaxHeatSetpointLimit + 1000 response: @@ -932,6 +987,7 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0003 + optional: true arguments: value: 700 @@ -941,6 +997,7 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0003 + optional: true arguments: value: AbsMinHeatSetpointLimitValue @@ -950,6 +1007,7 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.F05 && !TSTAT.S.A0016 + optional: true arguments: value: 3000 @@ -959,6 +1017,7 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.F05 && TSTAT.S.A0016 + optional: true arguments: value: MaxHeatSetpointLimit @@ -1000,6 +1059,7 @@ tests: that the value is within range" command: "readAttribute" attribute: "MaxHeatSetpointLimit" + optional: true PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && TSTAT.S.A0004 && TSTAT.S.A0016 @@ -1015,6 +1075,7 @@ tests: that the value is within range" command: "readAttribute" attribute: "MaxHeatSetpointLimit" + optional: true PICS: " TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && !TSTAT.S.A0004 && !TSTAT.S.A0016 " @@ -1029,6 +1090,7 @@ tests: attribute" command: "writeAttribute" attribute: "MinHeatSetpointLimit" + optional: true PICS: TSTAT.S.F00 && TSTAT.S.A0015 arguments: value: 700 @@ -1039,6 +1101,7 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.A0015 && TSTAT.S.F05 + optional: true arguments: value: 3000 response: @@ -1050,6 +1113,7 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 + optional: true arguments: value: 2900 @@ -1059,6 +1123,7 @@ tests: command: "readAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 + optional: true response: value: 2900 @@ -1068,6 +1133,7 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015 + optional: true arguments: value: 500 response: @@ -1115,6 +1181,7 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0004 + optional: true arguments: value: 4000 response: @@ -1126,6 +1193,7 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0004 + optional: true arguments: value: AbsMaxHeatSetpointLimitValue + 1000 response: @@ -1137,6 +1205,7 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015 + optional: true arguments: value: 700 @@ -1146,6 +1215,7 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0015 + optional: true arguments: value: MinHeatSetpointLimit @@ -1155,6 +1225,7 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && !TSTAT.S.A0004 + optional: true arguments: value: 3000 @@ -1164,6 +1235,7 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && TSTAT.S.A0004 + optional: true arguments: value: AbsMaxHeatSetpointLimitValue @@ -1207,6 +1279,7 @@ tests: command: "readAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 && TSTAT.S.A0005 + optional: true response: constraints: type: int16s @@ -1220,6 +1293,7 @@ tests: command: "readAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 && !TSTAT.S.A0005 + optional: true response: constraints: type: int16s @@ -1232,6 +1306,7 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 + optional: true arguments: value: 2000 @@ -1241,6 +1316,7 @@ tests: command: "readAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 + optional: true response: value: 2000 @@ -1250,6 +1326,7 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0005 + optional: true arguments: value: 1000 response: @@ -1290,6 +1367,7 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 + optional: true arguments: value: 4000 response: @@ -1300,6 +1378,7 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 + optional: true arguments: value: MaxCoolSetpointLimit + 1000 response: @@ -1311,6 +1390,7 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0005 && !TSTAT.S.F05 + optional: true arguments: value: 1600 @@ -1320,6 +1400,7 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0005 && !TSTAT.S.F05 + optional: true arguments: value: AbsMinCoolSetpointLimit @@ -1356,6 +1437,7 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 + optional: true arguments: value: 3200 @@ -1365,6 +1447,7 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 + optional: true arguments: value: MaxCoolSetpointLimit @@ -1375,6 +1458,7 @@ tests: command: "readAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0017 && TSTAT.S.A0006 + optional: true response: constraints: type: int16s @@ -1388,6 +1472,7 @@ tests: command: "readAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && !TSTAT.S.A0006 + optional: true response: constraints: type: int16s @@ -1400,6 +1485,7 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 + optional: true arguments: value: 2000 @@ -1409,6 +1495,7 @@ tests: command: "readAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 + optional: true response: value: 2000 @@ -1418,6 +1505,7 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 + optional: true arguments: value: 1000 response: @@ -1454,6 +1542,7 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0006 + optional: true arguments: value: 4000 response: @@ -1464,6 +1553,7 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0006 + optional: true arguments: value: AbsMaxCoolSetpointLimit + 1000 response: @@ -1475,6 +1565,7 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && !TSTAT.S.F05 + optional: true arguments: value: 1600 @@ -1484,6 +1575,7 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && TSTAT.S.F05 + optional: true arguments: value: 1600 response: @@ -1495,6 +1587,7 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0017 && !TSTAT.S.F05 + optional: true arguments: value: MinCoolSetpointLimit @@ -1530,6 +1623,7 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0006 + optional: true arguments: value: 3200 @@ -1539,12 +1633,14 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0006 + optional: true arguments: value: AbsMaxCoolSetpointLimit - label: "Writes (sets back) default value of MinHeatSetpointLimit" command: "writeAttribute" attribute: "MinHeatSetpointLimit" + optional: true PICS: TSTAT.S.F01 && TSTAT.S.A0015 arguments: value: 700 @@ -1553,6 +1649,7 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0016 && !TSTAT.S.F05 + optional: true arguments: value: 3000 @@ -1560,6 +1657,7 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0016 && !TSTAT.S.F05 + optional: true arguments: value: 2950 @@ -1567,6 +1665,7 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 + optional: true arguments: value: 1600 @@ -1574,6 +1673,7 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 + optional: true arguments: value: 3200 @@ -1658,6 +1758,7 @@ tests: command: "writeAttribute" attribute: "ControlSequenceOfOperation" PICS: TSTAT.S.F00 || TSTAT.S.F01 + optional: true arguments: value: 2 @@ -1665,6 +1766,7 @@ tests: command: "readAttribute" attribute: "ControlSequenceOfOperation" PICS: TSTAT.S.F00 || TSTAT.S.F01 + optional: true response: value: 2 @@ -1674,12 +1776,14 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.F05 + optional: true arguments: value: 2950 - label: "Sets OccupiedCoolingSetpoint to default value" command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" + optional: true PICS: TSTAT.S.F01 arguments: value: 2600 @@ -1687,6 +1791,7 @@ tests: - label: "Sets OccupiedHeatingSetpoint to default value" command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" + optional: true PICS: TSTAT.S.F00 arguments: value: 2000 @@ -1706,6 +1811,7 @@ tests: write" command: "readAttribute" attribute: "OccupiedHeatingSetpoint" + optional: true PICS: TSTAT.S.F00 response: value: 1700 @@ -1714,6 +1820,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 + optional: true arguments: value: 2000 @@ -1733,6 +1840,7 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 + optional: true response: value: 2300 @@ -1752,12 +1860,14 @@ tests: command: "readAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 + optional: true response: value: 2300 - label: "Sets OccupiedCoolingSetpoint to default value" command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" + optional: true PICS: TSTAT.S.F01 arguments: value: 2600 @@ -1777,6 +1887,7 @@ tests: write" command: "readAttribute" attribute: "OccupiedCoolingSetpoint" + optional: true PICS: TSTAT.S.F01 response: value: 2900 @@ -1784,6 +1895,7 @@ tests: - label: "Sets OccupiedCoolingSetpoint to default value" command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" + optional: true PICS: TSTAT.S.F01 arguments: value: 2600 @@ -1791,6 +1903,7 @@ tests: - label: "Sets OccupiedHeatingSetpoint to default value" command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" + optional: true PICS: TSTAT.S.F00 arguments: value: 2000 @@ -1811,6 +1924,7 @@ tests: command: "readAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 + optional: true response: value: 2300 @@ -1820,6 +1934,7 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 + optional: true response: value: 1700 @@ -1827,6 +1942,7 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 + optional: true arguments: value: 2600 @@ -1834,6 +1950,7 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 + optional: true arguments: value: 2000 @@ -1853,6 +1970,7 @@ tests: command: "readAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 + optional: true response: value: 2900 @@ -1862,5 +1980,6 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 + optional: true response: value: 2300 diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json index ad5d1d9f633d71..f06505c1a58fed 100644 --- a/src/app/tests/suites/manualTests.json +++ b/src/app/tests/suites/manualTests.json @@ -98,7 +98,7 @@ "Test_TC_DLOG_3_1" ], "Descriptor": ["Test_TC_DESC_2_1"], - "GeneralCommissioning": ["Test_TC_CGEN_2_2", "Test_TC_CGEN_2_4"], + "GeneralCommissioning": ["Test_TC_CGEN_2_2"], "GeneralDiagnostics": [ "Test_TC_DGGEN_2_2", "Test_TC_DGGEN_2_3", @@ -281,7 +281,7 @@ "Test_TC_DGTHREAD_3_4", "Test_TC_DGTHREAD_3_5" ], - "Actions": ["Test_TC_ACT_2_1", "Test_TC_ACT_2_2", "Test_TC_ACT_3_2"], + "Actions": ["Test_TC_ACT_2_1", "Test_TC_ACT_3_2"], "TimeFormatLocalization": ["Test_TC_LTIME_2_1", "Test_TC_LTIME_3_1"], "UnitLocalization": [], "Binding": ["Test_TC_BIND_2_1", "Test_TC_BIND_2_2", "Test_TC_BIND_2_3"], From a6338f5578f1c47a3000a739e995eede210a586c Mon Sep 17 00:00:00 2001 From: manjunath-grl Date: Tue, 7 Feb 2023 15:47:12 +0530 Subject: [PATCH 2/6] Auto generated files --- .../chip-tool/zap-generated/test/Commands.h | 1298 +++++++++++------ .../app1/zap-generated/test/Commands.h | 49 +- .../app2/zap-generated/test/Commands.h | 49 +- 3 files changed, 912 insertions(+), 484 deletions(-) diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 50406d3e4632fc..22e7e451a6a047 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -374,7 +374,6 @@ class ManualTestList : public Command printf("Test_TC_DESC_2_1\n"); printf("Test_TC_DGETH_3_2\n"); printf("Test_TC_CGEN_2_2\n"); - printf("Test_TC_CGEN_2_4\n"); printf("Test_TC_DGGEN_2_2\n"); printf("Test_TC_DGGEN_2_3\n"); printf("Test_TC_DGGEN_3_1\n"); @@ -544,7 +543,6 @@ class ManualTestList : public Command printf("Test_TC_DGTHREAD_3_4\n"); printf("Test_TC_DGTHREAD_3_5\n"); printf("Test_TC_ACT_2_1\n"); - printf("Test_TC_ACT_2_2\n"); printf("Test_TC_ACT_3_2\n"); printf("Test_TC_LTIME_2_1\n"); printf("Test_TC_LTIME_3_1\n"); @@ -3126,12 +3124,11 @@ class Test_TC_ACL_2_3Suite : public TestCommand class Test_TC_ACL_2_4Suite : public TestCommand { public: - Test_TC_ACL_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_4", 44, credsIssuerConfig) + Test_TC_ACL_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_4", 45, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("CommissionerNodeId", 0, UINT64_MAX, &mCommissionerNodeId); AddArgument("CAT1", 0, UINT64_MAX, &mCat1); AddArgument("CAT2", 0, UINT64_MAX, &mCat2); AddArgument("CAT3", 0, UINT64_MAX, &mCat3); @@ -3150,13 +3147,13 @@ class Test_TC_ACL_2_4Suite : public TestCommand chip::Optional mNodeId; chip::Optional mCluster; chip::Optional mEndpoint; - chip::Optional mCommissionerNodeId; chip::Optional mCat1; chip::Optional mCat2; chip::Optional mCat3; chip::Optional mCat4; chip::Optional mTimeout; + chip::NodeId CommissionerNodeId; uint8_t CurrentFabricIndex; uint16_t MAXSUBJECTS; uint16_t TargetsPerAccessControlEntry; @@ -3179,6 +3176,15 @@ class Test_TC_ACL_2_4Suite : public TestCommand shouldContinue = true; break; case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + CommissionerNodeId = value.nodeId; + } + shouldContinue = true; + break; + case 2: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -3186,7 +3192,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand CurrentFabricIndex = value; } break; - case 2: + case 3: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3203,8 +3209,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3214,10 +3219,10 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 3: + case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 4: + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3234,8 +3239,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3319,10 +3323,10 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 5: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 6: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3339,8 +3343,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3424,10 +3427,10 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 7: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3444,8 +3447,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3547,10 +3549,10 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3567,8 +3569,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3636,10 +3637,10 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3656,8 +3657,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3713,10 +3713,10 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 14: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3733,8 +3733,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3750,10 +3749,10 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 15: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 16: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3770,8 +3769,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3787,7 +3785,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -3795,18 +3793,18 @@ class Test_TC_ACL_2_4Suite : public TestCommand MAXSUBJECTS = value; } break; - case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3823,8 +3821,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3861,7 +3858,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -3869,15 +3866,15 @@ class Test_TC_ACL_2_4Suite : public TestCommand TargetsPerAccessControlEntry = value; } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -3885,10 +3882,10 @@ class Test_TC_ACL_2_4Suite : public TestCommand MAXENTRIES = value; } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 27: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3905,8 +3902,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3928,10 +3924,10 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 28: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; - case 29: + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -3948,8 +3944,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems("acl[0].subjects.Value()", iter_3, 1)); } @@ -3959,9 +3954,6 @@ class Test_TC_ACL_2_4Suite : public TestCommand } } break; - case 30: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); - break; case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; @@ -3999,6 +3991,9 @@ class Test_TC_ACL_2_4Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 43: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); + break; + case 44: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; default: @@ -4024,19 +4019,25 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "Step 2:TH1 reads DUT Endpoint 0 OperationalCredentials cluster CurrentFabricIndex attribute"); + LogStep(1, "Read the commissioner node ID"); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; + return GetCommissionerNodeId(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "Step 2:TH1 reads DUT Endpoint 0 OperationalCredentials cluster CurrentFabricIndex attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } - case 2: { - LogStep(2, "Step 3:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 3: { + LogStep(3, "Step 3:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 3: { + case 4: { LogStep( - 3, + 4, "Step 4:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of AccessControlEntryStruct " "containing 3 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE (2) Subjects field: [N1] " "Targets field: null 2 . struct Privilege field: View (1) AuthMode field: CASE (3) Subjects field: [111, 222, 333, " @@ -4060,7 +4061,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4138,15 +4139,15 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 4: { - LogStep(4, "Step 5:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 5: { + LogStep(5, "Step 5:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 5: { + case 6: { LogStep( - 5, + 6, "Step 6:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of AccessControlEntryStruct " "containing 3 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE (2) Subjects field: [N1] " "Targets field: null 2.struct Privilege field: Manage (4) AuthMode field: Group (3) Subjects field: [444, 333, " @@ -4170,7 +4171,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4248,14 +4249,14 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 6: { - LogStep(6, "Step 7:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 7: { + LogStep(7, "Step 7:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, + case 8: { + LogStep(8, "Step 8:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 3 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: View (1) AuthMode field: CASE (2) " @@ -4280,7 +4281,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4370,14 +4371,14 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 8: { - LogStep(8, "Step 9:TH1 reads AccessControl cluster ACL attribute"); + case 9: { + LogStep(9, "Step 9:TH1 reads AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, + case 10: { + LogStep(10, "Step 10:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 3 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: View (1) AuthMode field: CASE (2) " @@ -4402,7 +4403,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4472,14 +4473,14 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 10: { - LogStep(10, "Step 11:TH1 reads AccessControl cluster ACL attribute"); + case 11: { + LogStep(11, "Step 11:TH1 reads AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, + case 12: { + LogStep(12, "Step 12:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 3 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: View (1) AuthMode field: CASE (2) " @@ -4503,7 +4504,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4551,14 +4552,14 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 12: { - LogStep(12, "Step 13:TH1 reads AccessControl cluster ACL attribute"); + case 13: { + LogStep(13, "Step 13:TH1 reads AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, + case 14: { + LogStep(14, "Step 14:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: Group (3) " @@ -4581,7 +4582,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4601,14 +4602,14 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 14: { - LogStep(14, "Step 15:TH1 reads AccessControl cluster ACL attribute"); + case 15: { + LogStep(15, "Step 15:TH1 reads AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, + case 16: { + LogStep(16, "Step 16:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: ProxyView (2) AuthMode field: CASE (2) " @@ -4631,7 +4632,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4651,20 +4652,20 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 16: { - LogStep(16, "Step 17:TH1 reads AccessControl cluster ACL attribute"); + case 17: { + LogStep(17, "Step 17:TH1 reads AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "Step 18:TH1 reads DUT AccessControl cluster SubjectsPerAccessControlEntry attribute"); + case 18: { + LogStep(18, "Step 18:TH1 reads DUT AccessControl cluster SubjectsPerAccessControlEntry attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::SubjectsPerAccessControlEntry::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 19:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -4677,8 +4678,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 19: { - LogStep(19, "Step 20:TH1 reads AccessControl cluster ACL attribute"); + case 20: { + LogStep(20, "Step 20:TH1 reads AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -4687,8 +4688,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 21:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -4711,7 +4712,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4741,20 +4742,20 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 21: { - LogStep(21, "Step 22:TH1 reads AccessControl cluster ACL attribute"); + case 22: { + LogStep(22, "Step 22:TH1 reads AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "Step 23:TH1 reads AccessControl cluster TargetsPerAccessControlEntry attribute"); + case 23: { + LogStep(23, "Step 23:TH1 reads AccessControl cluster TargetsPerAccessControlEntry attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::TargetsPerAccessControlEntry::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 24:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -4767,8 +4768,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 24: { - LogStep(24, "Step 25:TH1 reads AccessControl cluster ACL attribute"); + case 25: { + LogStep(25, "Step 25:TH1 reads AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -4777,14 +4778,14 @@ class Test_TC_ACL_2_4Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 25: { - LogStep(25, "Step 26:TH1 reads AccessControl cluster AccessControlEntriesPerFabric attribute"); + case 26: { + LogStep(26, "Step 26:TH1 reads AccessControl cluster AccessControlEntriesPerFabric attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::AccessControlEntriesPerFabric::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, + case 27: { + LogStep(27, "Step 27:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing MAXENTRIES elements 1.struct Privilege field: Administer (5) AuthMode " "field: CASE (2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode " @@ -4807,7 +4808,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4835,14 +4836,14 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 27: { - LogStep(27, "Step 28:TH1 reads AccessControl cluster ACL attribute"); + case 28: { + LogStep(28, "Step 28:TH1 reads AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 29: { + LogStep(29, "Step 29:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: PASE (1) " @@ -4865,7 +4866,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4885,14 +4886,14 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 29: { - LogStep(29, "Step 30:TH1 reads AccessControl cluster ACL attribute"); + case 30: { + LogStep(30, "Step 30:TH1 reads AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 31: { + LogStep(31, "Step 31:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Administer (5) AuthMode field: Group " @@ -4915,7 +4916,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4935,8 +4936,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 31: { - LogStep(31, + case 32: { + LogStep(32, "Step 32:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: invalid value (not 1-5) AuthMode " @@ -4959,7 +4960,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -4979,8 +4980,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 32: { - LogStep(32, + case 33: { + LogStep(33, "Step 33:TH1 writes AccessControl cluster ACL attribute, value is list of AccessControlEntryStruct containing " "2 elements"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -5001,7 +5002,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5021,8 +5022,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 33: { - LogStep(33, + case 34: { + LogStep(34, "Step 34:TH1 writes AccessControl cluster ACL attribute, value is list of AccessControlEntryStruct containing " "2 elements"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -5043,7 +5044,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5070,8 +5071,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 34: { - LogStep(34, + case 35: { + LogStep(35, "Step 35:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -5094,7 +5095,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5121,8 +5122,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 35: { - LogStep(35, + case 36: { + LogStep(36, "Step 36:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -5145,7 +5146,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5172,8 +5173,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 36: { - LogStep(36, + case 37: { + LogStep(37, "Step 37:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is list of " "AccessControlEntryStruct containing 2 elements struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -5196,7 +5197,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5223,8 +5224,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 37: { - LogStep(37, + case 38: { + LogStep(38, "Step 38:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -5247,7 +5248,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5280,8 +5281,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 38: { - LogStep(38, + case 39: { + LogStep(39, "Step 39:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -5304,7 +5305,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5338,8 +5339,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 39: { - LogStep(39, + case 40: { + LogStep(40, "Step 40:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is list of " "AccessControlEntryStruct containing 2 elements 1. struct Privilege field: Administer (5) AuthMode field: " "CASE (2) Subjects field: [N1] Targets field: null 2. struct Privilege field: Operate (3) AuthMode field: " @@ -5362,7 +5363,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5396,8 +5397,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 40: { - LogStep(40, + case 41: { + LogStep(41, "Step 41:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -5420,7 +5421,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5454,8 +5455,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 41: { - LogStep(41, + case 42: { + LogStep(42, "Step 42:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -5478,7 +5479,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5513,8 +5514,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 42: { - LogStep(42, + case 43: { + LogStep(43, "Step 43:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is list of " "AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE " "(2) Subjects field: [N1] Targets field: null 2.struct Privilege field: Operate (3) AuthMode field: CASE (2) " @@ -5537,7 +5538,7 @@ class Test_TC_ACL_2_4Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -5573,8 +5574,8 @@ class Test_TC_ACL_2_4Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 43: { - LogStep(43, "Step 44:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is an empty list"); + case 44: { + LogStep(44, "Step 44:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute value is an empty list"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -5591,14 +5592,12 @@ class Test_TC_ACL_2_4Suite : public TestCommand class Test_TC_ACL_2_7Suite : public TestCommand { public: - Test_TC_ACL_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_7", 12, credsIssuerConfig) + Test_TC_ACL_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_7", 14, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); AddArgument("nodeId2", 0, UINT64_MAX, &mNodeId2); - AddArgument("TH1CommissionerNodeId", 0, UINT64_MAX, &mTH1CommissionerNodeId); - AddArgument("TH2CommissionerNodeId", 0, UINT64_MAX, &mTH2CommissionerNodeId); AddArgument("payload", &mPayload); AddArgument("D_OK_EMPTY", &mDOkEmpty); AddArgument("D_OK_SINGLE", &mDOkSingle); @@ -5617,14 +5616,14 @@ class Test_TC_ACL_2_7Suite : public TestCommand chip::Optional mCluster; chip::Optional mEndpoint; chip::Optional mNodeId2; - chip::Optional mTH1CommissionerNodeId; - chip::Optional mTH2CommissionerNodeId; chip::Optional mPayload; chip::Optional mDOkEmpty; chip::Optional mDOkSingle; chip::Optional mTimeout; + chip::NodeId TH1CommissionerNodeId; uint8_t TH1FabricIndex; + chip::NodeId TH2CommissionerNodeId; uint8_t TH2FabricIndex; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -5646,23 +5645,41 @@ class Test_TC_ACL_2_7Suite : public TestCommand case 1: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - uint8_t value; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - TH1FabricIndex = value; + TH1CommissionerNodeId = value.nodeId; } + shouldContinue = true; break; case 2: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + TH1FabricIndex = value; + } break; case 3: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + TH2CommissionerNodeId = value.nodeId; + } + shouldContinue = true; + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -5670,13 +5687,13 @@ class Test_TC_ACL_2_7Suite : public TestCommand TH2FabricIndex = value; } break; - case 6: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 7: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 8: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -5694,7 +5711,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand } } break; - case 9: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -5719,7 +5736,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand } } break; - case 10: + case 12: switch (mTestSubStepIndex) { case 0: @@ -5729,7 +5746,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckValueNonNull("accessControlExtensionChanged.adminNodeID", value.adminNodeID)); VerifyOrReturn(CheckValue("accessControlExtensionChanged.adminNodeID.Value()", value.adminNodeID.Value(), - mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL)); + TH1CommissionerNodeId)); VerifyOrReturn(CheckValueNull("accessControlExtensionChanged.adminPasscodeID", value.adminPasscodeID)); VerifyOrReturn(CheckValue("accessControlExtensionChanged.changeType", value.changeType, 1U)); VerifyOrReturn(CheckValueNonNull("accessControlExtensionChanged.latestValue", value.latestValue)); @@ -5747,7 +5764,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand break; } break; - case 11: + case 13: switch (mTestSubStepIndex) { case 0: @@ -5757,7 +5774,7 @@ class Test_TC_ACL_2_7Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckValueNonNull("accessControlExtensionChanged.adminNodeID", value.adminNodeID)); VerifyOrReturn(CheckValue("accessControlExtensionChanged.adminNodeID.Value()", value.adminNodeID.Value(), - mTH2CommissionerNodeId.HasValue() ? mTH2CommissionerNodeId.Value() : 112233ULL)); + TH2CommissionerNodeId)); VerifyOrReturn(CheckValueNull("accessControlExtensionChanged.adminPasscodeID", value.adminPasscodeID)); VerifyOrReturn(CheckValue("accessControlExtensionChanged.changeType", value.changeType, 1U)); VerifyOrReturn(CheckValueNonNull("accessControlExtensionChanged.latestValue", value.latestValue)); @@ -5805,12 +5822,18 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "Step 2:TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + LogStep(1, "Read the TH1 commissioner node ID"); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; + return GetCommissionerNodeId(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "Step 2:TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } - case 2: { - LogStep(2, "Step 3:TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2"); + case 3: { + LogStep(3, "Step 3:TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2"); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -5820,28 +5843,34 @@ class Test_TC_ACL_2_7Suite : public TestCommand ); } - case 3: { - LogStep(3, "Step 4:TH2 starts a commissioning process with DUT"); + case 4: { + LogStep(4, "Step 4:TH2 starts a commissioning process with DUT"); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; value.payload = mPayload.HasValue() ? mPayload.Value() : chip::Span("MT:-24J0AFN00KA0648G00", 22); return PairWithCode(kIdentityBeta, value); } - case 4: { - LogStep(4, "DUT is commissioned by TH2 on Fabric ID2 "); + case 5: { + LogStep(5, "DUT is commissioned by TH2 on Fabric ID2 "); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; return WaitForCommissionee(kIdentityBeta, value); } - case 5: { - LogStep(5, "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + case 6: { + LogStep(6, "Read the TH2 commissioner node ID"); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; + return GetCommissionerNodeId(kIdentityBeta, value); + } + case 7: { + LogStep(7, "Step 5:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, + case 8: { + LogStep(8, "Step 6:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -5863,8 +5892,8 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 7: { - LogStep(7, + case 9: { + LogStep(9, "Step 7:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -5892,27 +5921,27 @@ class Test_TC_ACL_2_7Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 8: { - LogStep(8, "Step 8:TH1 reads AccessControl cluster Extension attribute"); + case 10: { + LogStep(10, "Step 8:TH1 reads AccessControl cluster Extension attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Step 9:TH2 reads AccessControl cluster Extension attribute"); + case 11: { + LogStep(11, "Step 9:TH2 reads AccessControl cluster Extension attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Step 10:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); + case 12: { + LogStep(12, "Step 10:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); VerifyOrDo(!ShouldSkip("ACL.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 1; return ReadEvent(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlExtensionChanged::Id, false, chip::NullOptional); } - case 11: { - LogStep(11, "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); + case 13: { + LogStep(13, "Step 11:TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); VerifyOrDo(!ShouldSkip("ACL.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 1; return ReadEvent(kIdentityBeta, GetEndpoint(0), AccessControl::Id, @@ -5926,14 +5955,12 @@ class Test_TC_ACL_2_7Suite : public TestCommand class Test_TC_ACL_2_8Suite : public TestCommand { public: - Test_TC_ACL_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_8", 12, credsIssuerConfig) + Test_TC_ACL_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_8", 14, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); AddArgument("nodeId2", 0, UINT64_MAX, &mNodeId2); - AddArgument("TH1CommissionerNodeId", 0, UINT64_MAX, &mTH1CommissionerNodeId); - AddArgument("TH2CommissionerNodeId", 0, UINT64_MAX, &mTH2CommissionerNodeId); AddArgument("payload", &mPayload); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } @@ -5950,12 +5977,12 @@ class Test_TC_ACL_2_8Suite : public TestCommand chip::Optional mCluster; chip::Optional mEndpoint; chip::Optional mNodeId2; - chip::Optional mTH1CommissionerNodeId; - chip::Optional mTH2CommissionerNodeId; chip::Optional mPayload; chip::Optional mTimeout; + chip::NodeId TH1CommissionerNodeId; uint8_t TH1FabricIndex; + chip::NodeId TH2CommissionerNodeId; uint8_t TH2FabricIndex; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -5977,23 +6004,41 @@ class Test_TC_ACL_2_8Suite : public TestCommand case 1: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - uint8_t value; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - TH1FabricIndex = value; + TH1CommissionerNodeId = value.nodeId; } + shouldContinue = true; break; case 2: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + TH1FabricIndex = value; + } break; case 3: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + TH2CommissionerNodeId = value.nodeId; + } + shouldContinue = true; + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -6001,13 +6046,13 @@ class Test_TC_ACL_2_8Suite : public TestCommand TH2FabricIndex = value; } break; - case 6: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 7: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 8: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -6024,8 +6069,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), TH1CommissionerNodeId)); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 1)); VerifyOrReturn(CheckValue("acl[0].subjects.Value()[1]", iter_3.GetValue(), 1111ULL)); @@ -6038,7 +6082,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand } } break; - case 9: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -6055,8 +6099,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mTH2CommissionerNodeId.HasValue() ? mTH2CommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), TH2CommissionerNodeId)); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 1)); VerifyOrReturn(CheckValue("acl[0].subjects.Value()[1]", iter_3.GetValue(), 2222ULL)); @@ -6069,7 +6112,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand } } break; - case 10: + case 12: switch (mTestSubStepIndex) { case 0: @@ -6094,8 +6137,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand VerifyOrReturn(CheckNextListItemDecodes( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 0)); VerifyOrReturn(CheckValue("accessControlEntryChanged.latestValue.Value().subjects.Value()[0]", - iter_4.GetValue(), - mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL)); + iter_4.GetValue(), TH1CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 1)); } @@ -6114,7 +6156,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckValueNonNull("accessControlEntryChanged.adminNodeID", value.adminNodeID)); VerifyOrReturn(CheckValue("accessControlEntryChanged.adminNodeID.Value()", value.adminNodeID.Value(), - mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL)); + TH1CommissionerNodeId)); VerifyOrReturn(CheckValueNull("accessControlEntryChanged.adminPasscodeID", value.adminPasscodeID)); VerifyOrReturn(CheckValue("accessControlEntryChanged.changeType", value.changeType, 2U)); VerifyOrReturn(CheckValueNonNull("accessControlEntryChanged.latestValue", value.latestValue)); @@ -6129,8 +6171,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand VerifyOrReturn(CheckNextListItemDecodes( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 0)); VerifyOrReturn(CheckValue("accessControlEntryChanged.latestValue.Value().subjects.Value()[0]", - iter_4.GetValue(), - mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL)); + iter_4.GetValue(), TH1CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 1)); } @@ -6149,7 +6190,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckValueNonNull("accessControlEntryChanged.adminNodeID", value.adminNodeID)); VerifyOrReturn(CheckValue("accessControlEntryChanged.adminNodeID.Value()", value.adminNodeID.Value(), - mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL)); + TH1CommissionerNodeId)); VerifyOrReturn(CheckValueNull("accessControlEntryChanged.adminPasscodeID", value.adminPasscodeID)); VerifyOrReturn(CheckValue("accessControlEntryChanged.changeType", value.changeType, 1U)); VerifyOrReturn(CheckValueNonNull("accessControlEntryChanged.latestValue", value.latestValue)); @@ -6164,8 +6205,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand VerifyOrReturn(CheckNextListItemDecodes( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 0)); VerifyOrReturn(CheckValue("accessControlEntryChanged.latestValue.Value().subjects.Value()[0]", - iter_4.GetValue(), - mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL)); + iter_4.GetValue(), TH1CommissionerNodeId)); VerifyOrReturn(CheckNextListItemDecodes( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 1)); VerifyOrReturn(CheckValue("accessControlEntryChanged.latestValue.Value().subjects.Value()[1]", @@ -6186,7 +6226,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand break; } break; - case 11: + case 13: switch (mTestSubStepIndex) { case 0: @@ -6211,8 +6251,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand VerifyOrReturn(CheckNextListItemDecodes( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 0)); VerifyOrReturn(CheckValue("accessControlEntryChanged.latestValue.Value().subjects.Value()[0]", - iter_4.GetValue(), - mTH2CommissionerNodeId.HasValue() ? mTH2CommissionerNodeId.Value() : 112233ULL)); + iter_4.GetValue(), TH2CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 1)); } @@ -6231,7 +6270,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckValueNonNull("accessControlEntryChanged.adminNodeID", value.adminNodeID)); VerifyOrReturn(CheckValue("accessControlEntryChanged.adminNodeID.Value()", value.adminNodeID.Value(), - mTH2CommissionerNodeId.HasValue() ? mTH2CommissionerNodeId.Value() : 112233ULL)); + TH2CommissionerNodeId)); VerifyOrReturn(CheckValueNull("accessControlEntryChanged.adminPasscodeID", value.adminPasscodeID)); VerifyOrReturn(CheckValue("accessControlEntryChanged.changeType", value.changeType, 2U)); VerifyOrReturn(CheckValueNonNull("accessControlEntryChanged.latestValue", value.latestValue)); @@ -6246,8 +6285,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand VerifyOrReturn(CheckNextListItemDecodes( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 0)); VerifyOrReturn(CheckValue("accessControlEntryChanged.latestValue.Value().subjects.Value()[0]", - iter_4.GetValue(), - mTH2CommissionerNodeId.HasValue() ? mTH2CommissionerNodeId.Value() : 112233ULL)); + iter_4.GetValue(), TH2CommissionerNodeId)); VerifyOrReturn(CheckNoMoreListItems( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 1)); } @@ -6266,7 +6304,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckValueNonNull("accessControlEntryChanged.adminNodeID", value.adminNodeID)); VerifyOrReturn(CheckValue("accessControlEntryChanged.adminNodeID.Value()", value.adminNodeID.Value(), - mTH2CommissionerNodeId.HasValue() ? mTH2CommissionerNodeId.Value() : 112233ULL)); + TH2CommissionerNodeId)); VerifyOrReturn(CheckValueNull("accessControlEntryChanged.adminPasscodeID", value.adminPasscodeID)); VerifyOrReturn(CheckValue("accessControlEntryChanged.changeType", value.changeType, 1U)); VerifyOrReturn(CheckValueNonNull("accessControlEntryChanged.latestValue", value.latestValue)); @@ -6281,8 +6319,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand VerifyOrReturn(CheckNextListItemDecodes( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 0)); VerifyOrReturn(CheckValue("accessControlEntryChanged.latestValue.Value().subjects.Value()[0]", - iter_4.GetValue(), - mTH2CommissionerNodeId.HasValue() ? mTH2CommissionerNodeId.Value() : 112233ULL)); + iter_4.GetValue(), TH2CommissionerNodeId)); VerifyOrReturn(CheckNextListItemDecodes( "accessControlEntryChanged.latestValue.Value().subjects.Value()", iter_4, 1)); VerifyOrReturn(CheckValue("accessControlEntryChanged.latestValue.Value().subjects.Value()[1]", @@ -6326,12 +6363,18 @@ class Test_TC_ACL_2_8Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + LogStep(1, "Read the TH1 commissioner node ID"); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; + return GetCommissionerNodeId(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } - case 2: { - LogStep(2, "TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2"); + case 3: { + LogStep(3, "TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2"); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -6341,28 +6384,34 @@ class Test_TC_ACL_2_8Suite : public TestCommand ); } - case 3: { - LogStep(3, "TH2 starts a commissioning process with DUT"); + case 4: { + LogStep(4, "TH2 starts a commissioning process with DUT"); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; value.payload = mPayload.HasValue() ? mPayload.Value() : chip::Span("MT:-24J0AFN00KA0648G00", 22); return PairWithCode(kIdentityBeta, value); } - case 4: { - LogStep(4, "DUT is commissioned by TH2 on Fabric ID2 "); + case 5: { + LogStep(5, "DUT is commissioned by TH2 on Fabric ID2 "); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; return WaitForCommissionee(kIdentityBeta, value); } - case 5: { - LogStep(5, "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + case 6: { + LogStep(6, "Read the TH2 commissioner node ID"); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; + return GetCommissionerNodeId(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 8: { + LogStep(8, "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6381,8 +6430,8 @@ class Test_TC_ACL_2_8Suite : public TestCommand { auto * listHolder_3 = new ListHolder(2); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL; - listHolder_3->mList[1] = 1111ULL; + listHolder_3->mList[0] = TH1CommissionerNodeId; + listHolder_3->mList[1] = 1111ULL; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 2); } listHolder_0->mList[0].targets.SetNull(); @@ -6394,8 +6443,8 @@ class Test_TC_ACL_2_8Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 7: { - LogStep(7, "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 9: { + LogStep(9, "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6414,8 +6463,8 @@ class Test_TC_ACL_2_8Suite : public TestCommand { auto * listHolder_3 = new ListHolder(2); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mTH2CommissionerNodeId.HasValue() ? mTH2CommissionerNodeId.Value() : 112233ULL; - listHolder_3->mList[1] = 2222ULL; + listHolder_3->mList[0] = TH2CommissionerNodeId; + listHolder_3->mList[1] = 2222ULL; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 2); } listHolder_0->mList[0].targets.SetNull(); @@ -6427,27 +6476,27 @@ class Test_TC_ACL_2_8Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 8: { - LogStep(8, "TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 10: { + LogStep(10, "TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 11: { + LogStep(11, "TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); + case 12: { + LogStep(12, "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); VerifyOrDo(!ShouldSkip("ACL.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 3; return ReadEvent(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlEntryChanged::Id, false, chip::NullOptional); } - case 11: { - LogStep(11, "TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); + case 13: { + LogStep(13, "TH2 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); VerifyOrDo(!ShouldSkip("ACL.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 3; return ReadEvent(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlEntryChanged::Id, @@ -6461,13 +6510,12 @@ class Test_TC_ACL_2_8Suite : public TestCommand class Test_TC_ACL_2_9Suite : public TestCommand { public: - Test_TC_ACL_2_9Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_9", 12, credsIssuerConfig) + Test_TC_ACL_2_9Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_9", 13, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); AddArgument("nodeId2", 0, UINT64_MAX, &mNodeId2); - AddArgument("CommissionerNodeId", 0, UINT64_MAX, &mCommissionerNodeId); AddArgument("payload", &mPayload); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } @@ -6484,10 +6532,10 @@ class Test_TC_ACL_2_9Suite : public TestCommand chip::Optional mCluster; chip::Optional mEndpoint; chip::Optional mNodeId2; - chip::Optional mCommissionerNodeId; chip::Optional mPayload; chip::Optional mTimeout; + chip::NodeId CommissionerNodeId; uint8_t CurrentFabricIndex; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -6509,16 +6557,22 @@ class Test_TC_ACL_2_9Suite : public TestCommand case 1: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - uint8_t value; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - CurrentFabricIndex = value; + CommissionerNodeId = value.nodeId; } + shouldContinue = true; break; case 2: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + CurrentFabricIndex = value; + } break; case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS)); @@ -6530,6 +6584,9 @@ class Test_TC_ACL_2_9Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS)); break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS)); + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -6537,7 +6594,7 @@ class Test_TC_ACL_2_9Suite : public TestCommand VerifyOrReturn(CheckConstraintMinValue("value", value, 4U)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -6545,7 +6602,7 @@ class Test_TC_ACL_2_9Suite : public TestCommand VerifyOrReturn(CheckConstraintMinValue("value", value, 3U)); } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint16_t value; @@ -6553,7 +6610,7 @@ class Test_TC_ACL_2_9Suite : public TestCommand VerifyOrReturn(CheckConstraintMinValue("value", value, 3U)); } break; - case 10: + case 11: switch (mTestSubStepIndex) { case 0: @@ -6565,7 +6622,7 @@ class Test_TC_ACL_2_9Suite : public TestCommand break; } break; - case 11: + case 12: switch (mTestSubStepIndex) { case 0: @@ -6600,12 +6657,18 @@ class Test_TC_ACL_2_9Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + LogStep(1, "Read the commissioner node ID"); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; + return GetCommissionerNodeId(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } - case 2: { - LogStep(2, "Step 2:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 3: { + LogStep(3, "Step 2:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6624,7 +6687,7 @@ class Test_TC_ACL_2_9Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -6636,14 +6699,14 @@ class Test_TC_ACL_2_9Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 3: { - LogStep(3, "Step 3:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 4: { + LogStep(4, "Step 3:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 4: { - LogStep(4, "Step 4:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 5: { + LogStep(5, "Step 4:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6662,7 +6725,7 @@ class Test_TC_ACL_2_9Suite : public TestCommand { auto * listHolder_3 = new ListHolder(1); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mCommissionerNodeId.HasValue() ? mCommissionerNodeId.Value() : 112233ULL; + listHolder_3->mList[0] = CommissionerNodeId; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); } listHolder_0->mList[0].targets.SetNull(); @@ -6674,14 +6737,14 @@ class Test_TC_ACL_2_9Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 5: { - LogStep(5, "Step 5:TH1 reads DUT Endpoint 0 AccessControl cluster Extension attribute"); + case 6: { + LogStep(6, "Step 5:TH1 reads DUT Endpoint 0 AccessControl cluster Extension attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Step 6:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute"); + case 7: { + LogStep(7, "Step 6:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -6690,33 +6753,33 @@ class Test_TC_ACL_2_9Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 7: { - LogStep(7, "Step 7:TH1 reads DUT Endpoint 0 AccessControl cluster SubjectsPerAccessControlEntry attribute"); + case 8: { + LogStep(8, "Step 7:TH1 reads DUT Endpoint 0 AccessControl cluster SubjectsPerAccessControlEntry attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::SubjectsPerAccessControlEntry::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Step 8:TH1 reads DUT Endpoint 0 AccessControl cluster TargetsPerAccessControlEntry attribute"); + case 9: { + LogStep(9, "Step 8:TH1 reads DUT Endpoint 0 AccessControl cluster TargetsPerAccessControlEntry attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::TargetsPerAccessControlEntry::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Step 9:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntriesPerFabric attribute"); + case 10: { + LogStep(10, "Step 9:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntriesPerFabric attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::AccessControlEntriesPerFabric::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); + case 11: { + LogStep(11, "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntryChanged event"); VerifyOrDo(!ShouldSkip("ACL.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 1; return ReadEvent(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Events::AccessControlEntryChanged::Id, false, chip::NullOptional); } - case 11: { - LogStep(11, "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); + case 12: { + LogStep(12, "TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlExtensionChanged event"); VerifyOrDo(!ShouldSkip("ACL.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); mTestSubStepCount = 1; return ReadEvent(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, @@ -6730,14 +6793,12 @@ class Test_TC_ACL_2_9Suite : public TestCommand class Test_TC_ACL_2_10Suite : public TestCommand { public: - Test_TC_ACL_2_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_10", 23, credsIssuerConfig) + Test_TC_ACL_2_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_10", 25, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); AddArgument("nodeId2", 0, UINT64_MAX, &mNodeId2); - AddArgument("TH1CommissionerNodeId", 0, UINT64_MAX, &mTH1CommissionerNodeId); - AddArgument("TH2CommissionerNodeId", 0, UINT64_MAX, &mTH2CommissionerNodeId); AddArgument("discriminator", 0, UINT16_MAX, &mDiscriminator); AddArgument("payload", &mPayload); AddArgument("D_OK_EMPTY", &mDOkEmpty); @@ -6757,15 +6818,15 @@ class Test_TC_ACL_2_10Suite : public TestCommand chip::Optional mCluster; chip::Optional mEndpoint; chip::Optional mNodeId2; - chip::Optional mTH1CommissionerNodeId; - chip::Optional mTH2CommissionerNodeId; chip::Optional mDiscriminator; chip::Optional mPayload; chip::Optional mDOkEmpty; chip::Optional mDOkSingle; chip::Optional mTimeout; + chip::NodeId TH1CommissionerNodeId; uint8_t TH1FabricIndex; + chip::NodeId TH2CommissionerNodeId; uint8_t TH2FabricIndex; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -6787,17 +6848,22 @@ class Test_TC_ACL_2_10Suite : public TestCommand case 1: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - uint8_t value; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - TH1FabricIndex = value; + TH1CommissionerNodeId = value.nodeId; } + shouldContinue = true; break; case 2: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + TH1FabricIndex = value; + } break; case 3: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -6805,17 +6871,24 @@ class Test_TC_ACL_2_10Suite : public TestCommand break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - TH2FabricIndex = value; - } + shouldContinue = true; break; case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + TH2CommissionerNodeId = value.nodeId; + } + shouldContinue = true; break; case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + TH2FabricIndex = value; + } break; case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -6825,11 +6898,9 @@ class Test_TC_ACL_2_10Suite : public TestCommand break; case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -6841,8 +6912,16 @@ class Test_TC_ACL_2_10Suite : public TestCommand break; case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -6860,7 +6939,7 @@ class Test_TC_ACL_2_10Suite : public TestCommand } } break; - case 16: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -6877,8 +6956,7 @@ class Test_TC_ACL_2_10Suite : public TestCommand auto iter_3 = iter_0.GetValue().subjects.Value().begin(); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 0)); - VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), - mTH2CommissionerNodeId.HasValue() ? mTH2CommissionerNodeId.Value() : 112233ULL)); + VerifyOrReturn(CheckValue("acl[0].subjects.Value()[0]", iter_3.GetValue(), TH2CommissionerNodeId)); VerifyOrReturn(CheckNextListItemDecodes( "acl[0].subjects.Value()", iter_3, 1)); VerifyOrReturn(CheckValue("acl[0].subjects.Value()[1]", iter_3.GetValue(), 2222ULL)); @@ -6905,24 +6983,24 @@ class Test_TC_ACL_2_10Suite : public TestCommand } } break; - case 17: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 18: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 19: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); } break; - case 20: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 21: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -6940,7 +7018,7 @@ class Test_TC_ACL_2_10Suite : public TestCommand } } break; - case 22: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -6967,12 +7045,18 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "Step 2:TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + LogStep(1, "Read the TH1 commissioner node ID"); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; + return GetCommissionerNodeId(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "Step 2:TH1 reads OperationalCredentials cluster CurrentFabricIndex attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } - case 2: { - LogStep(2, "Step 3:TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2"); + case 3: { + LogStep(3, "Step 3:TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2"); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -6982,28 +7066,34 @@ class Test_TC_ACL_2_10Suite : public TestCommand ); } - case 3: { - LogStep(3, "TH2 starts a commissioning process with DUT"); + case 4: { + LogStep(4, "TH2 starts a commissioning process with DUT"); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; value.payload = mPayload.HasValue() ? mPayload.Value() : chip::Span("MT:-24J0AFN00KA0648G00", 22); return PairWithCode(kIdentityBeta, value); } - case 4: { - LogStep(4, "DUT is commissioned by TH2 on Fabric ID2 "); + case 5: { + LogStep(5, "DUT is commissioned by TH2 on Fabric ID2 "); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; return WaitForCommissionee(kIdentityBeta, value); } - case 5: { - LogStep(5, "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); + case 6: { + LogStep(6, "Read the TH2 commissioner node ID"); + ListFreer listFreer; + chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; + return GetCommissionerNodeId(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Step 5:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 8: { + LogStep(8, "Step 5:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7022,8 +7112,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand { auto * listHolder_3 = new ListHolder(2); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL; - listHolder_3->mList[1] = 1111ULL; + listHolder_3->mList[0] = TH1CommissionerNodeId; + listHolder_3->mList[1] = 1111ULL; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 2); } listHolder_0->mList[0].targets.SetNull(); @@ -7050,8 +7140,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 7: { - LogStep(7, "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 9: { + LogStep(9, "Step 6:TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7070,8 +7160,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand { auto * listHolder_3 = new ListHolder(2); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mTH2CommissionerNodeId.HasValue() ? mTH2CommissionerNodeId.Value() : 112233ULL; - listHolder_3->mList[1] = 2222ULL; + listHolder_3->mList[0] = TH2CommissionerNodeId; + listHolder_3->mList[1] = 2222ULL; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 2); } listHolder_0->mList[0].targets.SetNull(); @@ -7098,8 +7188,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 8: { - LogStep(8, + case 10: { + LogStep(10, "Step 7:TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element 1.struct, Data field: D_OK_EMPTY"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -7121,8 +7211,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 9: { - LogStep(9, + case 11: { + LogStep(11, "Step 8:TH2 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element 1.struct, Data field: D_OK_SINGLE"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -7150,15 +7240,15 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 10: { - LogStep(10, "Step 9: Reboot DUT"); + case 12: { + LogStep(12, "Step 9: Reboot DUT"); VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::SystemCommands::Commands::Reboot::Type value; return Reboot(kIdentityAlpha, value); } - case 11: { - LogStep(11, "Step 9: Reboot DUT"); + case 13: { + LogStep(13, "Step 9: Reboot DUT"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -7168,22 +7258,22 @@ class Test_TC_ACL_2_10Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 12: { - LogStep(12, "TH1 Connects to the device again"); + case 14: { + LogStep(14, "TH1 Connects to the device again"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; return WaitForCommissionee(kIdentityAlpha, value); } - case 13: { - LogStep(13, "TH2 Connects to the device again"); + case 15: { + LogStep(15, "TH2 Connects to the device again"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; return WaitForCommissionee(kIdentityBeta, value); } - case 14: { - LogStep(14, "Step 10:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 16: { + LogStep(16, "Step 10:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7202,8 +7292,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand { auto * listHolder_3 = new ListHolder(2); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL; - listHolder_3->mList[1] = 1111ULL; + listHolder_3->mList[0] = TH1CommissionerNodeId; + listHolder_3->mList[1] = 1111ULL; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 2); } listHolder_0->mList[0].targets.SetNull(); @@ -7230,22 +7320,22 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 15: { - LogStep(15, + case 17: { + LogStep(17, "Step 11:TH1 reads DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 18: { + LogStep(18, "Step 12:TH2 reads DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute"); + case 19: { + LogStep(19, "Step 13:TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7271,8 +7361,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, value, chip::NullOptional, chip::NullOptional); } - case 18: { - LogStep(18, "Step 14: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); + case 20: { + LogStep(20, "Step 14: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -7281,8 +7371,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 19: { - LogStep(19, "Step 15:TH1 removes fabric F2 from DUT"); + case 21: { + LogStep(21, "Step 15:TH1 removes fabric F2 from DUT"); VerifyOrDo(!ShouldSkip("OPCREDS.S.C0a.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::Type value; @@ -7293,8 +7383,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand ); } - case 20: { - LogStep(20, "Step 16:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); + case 22: { + LogStep(22, "Step 16:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute"); VerifyOrDo(!ShouldSkip("ACL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::DataModel::List value; @@ -7313,8 +7403,8 @@ class Test_TC_ACL_2_10Suite : public TestCommand { auto * listHolder_3 = new ListHolder(2); listFreer.add(listHolder_3); - listHolder_3->mList[0] = mTH1CommissionerNodeId.HasValue() ? mTH1CommissionerNodeId.Value() : 112233ULL; - listHolder_3->mList[1] = 1111ULL; + listHolder_3->mList[0] = TH1CommissionerNodeId; + listHolder_3->mList[1] = 1111ULL; listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 2); } listHolder_0->mList[0].targets.SetNull(); @@ -7341,16 +7431,16 @@ class Test_TC_ACL_2_10Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 21: { - LogStep(21, + case 23: { + LogStep(23, "Step 17:TH1 reads DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of " "AccessControlExtensionStruct containing 1 element"); VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Extension::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "Step 18: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); + case 24: { + LogStep(24, "Step 18: If DUT is an app on host, examine persistent storage in /tmp/chip_kvs text file"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -44346,6 +44436,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 13: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44356,6 +44450,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 14: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44366,9 +44464,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 15: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 16: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44390,9 +44496,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 21: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 22: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 23: @@ -44400,12 +44514,24 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 24: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 25: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 26: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44416,6 +44542,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 27: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44426,9 +44556,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 28: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 29: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44450,15 +44588,31 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 34: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 35: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 36: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 37: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 38: @@ -44469,6 +44623,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 40: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44479,6 +44637,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 41: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44489,9 +44651,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 42: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 43: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44513,12 +44683,20 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 48: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 49: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 50: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 51: @@ -44526,12 +44704,24 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 52: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 53: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 54: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44542,6 +44732,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 55: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44552,9 +44746,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 56: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 57: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44576,15 +44778,31 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 62: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 63: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 64: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 65: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 66: @@ -44595,6 +44813,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 68: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44605,6 +44827,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 69: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44615,9 +44841,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 70: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 71: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44642,15 +44876,31 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 77: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 78: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 79: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 80: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 81: @@ -44658,6 +44908,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 82: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44668,6 +44922,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 83: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44678,15 +44936,27 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 84: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 85: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 86: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 87: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44708,15 +44978,31 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 92: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 93: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 94: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 95: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 96: @@ -44724,6 +45010,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 97: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44734,6 +45024,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 98: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44744,9 +45038,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 99: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 100: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44768,9 +45070,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 105: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 106: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 107: @@ -44778,12 +45088,24 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 108: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 109: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 110: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44794,6 +45116,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 111: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44804,9 +45130,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 112: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 113: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44828,12 +45162,20 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 118: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 119: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 120: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 121: @@ -44841,24 +45183,52 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 122: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 123: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 124: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 125: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 126: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 127: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 128: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 129: @@ -44906,9 +45276,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 137: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 138: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::Thermostat::ThermostatControlSequence value; @@ -44917,18 +45295,34 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 139: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 140: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 141: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 142: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 143: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44937,12 +45331,20 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 144: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 145: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 146: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44954,6 +45356,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 148: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44962,12 +45368,20 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 149: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 150: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 151: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44976,15 +45390,27 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 152: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 153: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 154: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 155: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44993,6 +45419,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 156: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45001,15 +45431,27 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 157: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 158: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 159: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 160: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45018,6 +45460,10 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 161: + if (IsUnsupported(status.mStatus)) + { + return; + } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -92935,61 +93381,6 @@ class Test_TC_CGEN_2_2Suite : public TestCommand } }; -class Test_TC_CGEN_2_4Suite : public TestCommand -{ -public: - Test_TC_CGEN_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_2_4", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_CGEN_2_4Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_DGGEN_2_2Suite : public TestCommand { public: @@ -112062,61 +112453,6 @@ class Test_TC_ACT_2_1Suite : public TestCommand } }; -class Test_TC_ACT_2_2Suite : public TestCommand -{ -public: - Test_TC_ACT_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_2_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_ACT_2_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - class Test_TC_ACT_3_2Suite : public TestCommand { public: @@ -113392,7 +113728,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -113562,7 +113897,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), diff --git a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h index d843a18fefd79d..5e3bae14d80d99 100644 --- a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h @@ -1415,7 +1415,7 @@ class Test_TC_PSCFG_3_1_SimulatedSuite : public TestCommand class Test_TC_RH_3_1_SimulatedSuite : public TestCommand { public: - Test_TC_RH_3_1_SimulatedSuite() : TestCommand("Test_TC_RH_3_1_Simulated", 5) + Test_TC_RH_3_1_SimulatedSuite() : TestCommand("Test_TC_RH_3_1_Simulated", 8) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -1447,6 +1447,18 @@ class Test_TC_RH_3_1_SimulatedSuite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -1488,6 +1500,41 @@ class Test_TC_RH_3_1_SimulatedSuite : public TestCommand return WaitAttribute(GetEndpoint(0), RelativeHumidityMeasurement::Id, RelativeHumidityMeasurement::Attributes::Tolerance::Id); } + case 5: { + LogStep(5, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } diff --git a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h index d843a18fefd79d..5e3bae14d80d99 100644 --- a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h @@ -1415,7 +1415,7 @@ class Test_TC_PSCFG_3_1_SimulatedSuite : public TestCommand class Test_TC_RH_3_1_SimulatedSuite : public TestCommand { public: - Test_TC_RH_3_1_SimulatedSuite() : TestCommand("Test_TC_RH_3_1_Simulated", 5) + Test_TC_RH_3_1_SimulatedSuite() : TestCommand("Test_TC_RH_3_1_Simulated", 8) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -1447,6 +1447,18 @@ class Test_TC_RH_3_1_SimulatedSuite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -1488,6 +1500,41 @@ class Test_TC_RH_3_1_SimulatedSuite : public TestCommand return WaitAttribute(GetEndpoint(0), RelativeHumidityMeasurement::Id, RelativeHumidityMeasurement::Attributes::Tolerance::Id); } + case 5: { + LogStep(5, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } From 64b43e00125ad7f892329c68432754985cf99d77 Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Tue, 7 Feb 2023 10:28:11 +0000 Subject: [PATCH 3/6] Restyled by whitespace --- .../Test_TC_RH_3_1_Simulated.yaml | 126 +++++++++--------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml index a06440ddc3106e..fc687bc24d08b0 100644 --- a/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml +++ b/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml @@ -85,9 +85,9 @@ tests: ./chip-tool relativehumiditymeasurement read attribute-list 1 1 - verify TH recieves "attribute-list response" on the TH (all-cluster-minimal-app) log: + verify TH recieves "attribute-list response" on the TH (all-cluster-minimal-app) log: - [1666943792.254338][12769:12769] CHIP:DMG: + [1666943792.254338][12769:12769] CHIP:DMG: [1666943792.254369][12769:12769] CHIP:DMG: ReportDataMessage = [1666943792.254372][12769:12769] CHIP:DMG: { [1666943792.254374][12769:12769] CHIP:DMG: AttributeReportIBs = @@ -103,14 +103,14 @@ tests: [1666943792.254404][12769:12769] CHIP:DMG: Cluster = 0x405, [1666943792.254406][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, [1666943792.254409][12769:12769] CHIP:DMG: } - [1666943792.254411][12769:12769] CHIP:DMG: + [1666943792.254411][12769:12769] CHIP:DMG: [1666943792.254414][12769:12769] CHIP:DMG: Data = [ - [1666943792.254418][12769:12769] CHIP:DMG: + [1666943792.254418][12769:12769] CHIP:DMG: [1666943792.254422][12769:12769] CHIP:DMG: ], [1666943792.254424][12769:12769] CHIP:DMG: }, - [1666943792.254427][12769:12769] CHIP:DMG: + [1666943792.254427][12769:12769] CHIP:DMG: [1666943792.254430][12769:12769] CHIP:DMG: }, - [1666943792.254435][12769:12769] CHIP:DMG: + [1666943792.254435][12769:12769] CHIP:DMG: [1666943792.254437][12769:12769] CHIP:DMG: AttributeReportIB = [1666943792.254441][12769:12769] CHIP:DMG: { [1666943792.254443][12769:12769] CHIP:DMG: AttributeDataIB = @@ -123,12 +123,12 @@ tests: [1666943792.254465][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, [1666943792.254470][12769:12769] CHIP:DMG: ListIndex = Null, [1666943792.254473][12769:12769] CHIP:DMG: } - [1666943792.254477][12769:12769] CHIP:DMG: - [1666943792.254480][12769:12769] CHIP:DMG: Data = 0, + [1666943792.254477][12769:12769] CHIP:DMG: + [1666943792.254480][12769:12769] CHIP:DMG: Data = 0, [1666943792.254483][12769:12769] CHIP:DMG: }, - [1666943792.254487][12769:12769] CHIP:DMG: + [1666943792.254487][12769:12769] CHIP:DMG: [1666943792.254489][12769:12769] CHIP:DMG: }, - [1666943792.254495][12769:12769] CHIP:DMG: + [1666943792.254495][12769:12769] CHIP:DMG: [1666943792.254497][12769:12769] CHIP:DMG: AttributeReportIB = [1666943792.254501][12769:12769] CHIP:DMG: { [1666943792.254504][12769:12769] CHIP:DMG: AttributeDataIB = @@ -141,12 +141,12 @@ tests: [1666943792.254525][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, [1666943792.254527][12769:12769] CHIP:DMG: ListIndex = Null, [1666943792.254530][12769:12769] CHIP:DMG: } - [1666943792.254534][12769:12769] CHIP:DMG: - [1666943792.254538][12769:12769] CHIP:DMG: Data = 1, + [1666943792.254534][12769:12769] CHIP:DMG: + [1666943792.254538][12769:12769] CHIP:DMG: Data = 1, [1666943792.254540][12769:12769] CHIP:DMG: }, - [1666943792.254544][12769:12769] CHIP:DMG: + [1666943792.254544][12769:12769] CHIP:DMG: [1666943792.254546][12769:12769] CHIP:DMG: }, - [1666943792.254551][12769:12769] CHIP:DMG: + [1666943792.254551][12769:12769] CHIP:DMG: [1666943792.254553][12769:12769] CHIP:DMG: AttributeReportIB = [1666943792.254557][12769:12769] CHIP:DMG: { [1666943792.254559][12769:12769] CHIP:DMG: AttributeDataIB = @@ -159,12 +159,12 @@ tests: [1666943792.254578][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, [1666943792.254580][12769:12769] CHIP:DMG: ListIndex = Null, [1666943792.254582][12769:12769] CHIP:DMG: } - [1666943792.254586][12769:12769] CHIP:DMG: - [1666943792.254589][12769:12769] CHIP:DMG: Data = 2, + [1666943792.254586][12769:12769] CHIP:DMG: + [1666943792.254589][12769:12769] CHIP:DMG: Data = 2, [1666943792.254592][12769:12769] CHIP:DMG: }, - [1666943792.254596][12769:12769] CHIP:DMG: + [1666943792.254596][12769:12769] CHIP:DMG: [1666943792.254598][12769:12769] CHIP:DMG: }, - [1666943792.254604][12769:12769] CHIP:DMG: + [1666943792.254604][12769:12769] CHIP:DMG: [1666943792.254606][12769:12769] CHIP:DMG: AttributeReportIB = [1666943792.254610][12769:12769] CHIP:DMG: { [1666943792.254612][12769:12769] CHIP:DMG: AttributeDataIB = @@ -177,12 +177,12 @@ tests: [1666943792.254633][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, [1666943792.254635][12769:12769] CHIP:DMG: ListIndex = Null, [1666943792.254638][12769:12769] CHIP:DMG: } - [1666943792.254642][12769:12769] CHIP:DMG: - [1666943792.254645][12769:12769] CHIP:DMG: Data = 65528, + [1666943792.254642][12769:12769] CHIP:DMG: + [1666943792.254645][12769:12769] CHIP:DMG: Data = 65528, [1666943792.254647][12769:12769] CHIP:DMG: }, - [1666943792.254651][12769:12769] CHIP:DMG: + [1666943792.254651][12769:12769] CHIP:DMG: [1666943792.254653][12769:12769] CHIP:DMG: }, - [1666943792.254658][12769:12769] CHIP:DMG: + [1666943792.254658][12769:12769] CHIP:DMG: [1666943792.254660][12769:12769] CHIP:DMG: AttributeReportIB = [1666943792.254664][12769:12769] CHIP:DMG: { [1666943792.254666][12769:12769] CHIP:DMG: AttributeDataIB = @@ -195,12 +195,12 @@ tests: [1666943792.254686][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, [1666943792.254689][12769:12769] CHIP:DMG: ListIndex = Null, [1666943792.254691][12769:12769] CHIP:DMG: } - [1666943792.254695][12769:12769] CHIP:DMG: - [1666943792.254698][12769:12769] CHIP:DMG: Data = 65529, + [1666943792.254695][12769:12769] CHIP:DMG: + [1666943792.254698][12769:12769] CHIP:DMG: Data = 65529, [1666943792.254700][12769:12769] CHIP:DMG: }, - [1666943792.254704][12769:12769] CHIP:DMG: + [1666943792.254704][12769:12769] CHIP:DMG: [1666943792.254707][12769:12769] CHIP:DMG: }, - [1666943792.254712][12769:12769] CHIP:DMG: + [1666943792.254712][12769:12769] CHIP:DMG: [1666943792.254714][12769:12769] CHIP:DMG: AttributeReportIB = [1666943792.254718][12769:12769] CHIP:DMG: { [1666943792.254720][12769:12769] CHIP:DMG: AttributeDataIB = @@ -213,12 +213,12 @@ tests: [1666943792.254740][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, [1666943792.254743][12769:12769] CHIP:DMG: ListIndex = Null, [1666943792.254746][12769:12769] CHIP:DMG: } - [1666943792.254750][12769:12769] CHIP:DMG: - [1666943792.254753][12769:12769] CHIP:DMG: Data = 65531, + [1666943792.254750][12769:12769] CHIP:DMG: + [1666943792.254753][12769:12769] CHIP:DMG: Data = 65531, [1666943792.254756][12769:12769] CHIP:DMG: }, - [1666943792.254759][12769:12769] CHIP:DMG: + [1666943792.254759][12769:12769] CHIP:DMG: [1666943792.254762][12769:12769] CHIP:DMG: }, - [1666943792.254767][12769:12769] CHIP:DMG: + [1666943792.254767][12769:12769] CHIP:DMG: [1666943792.254769][12769:12769] CHIP:DMG: AttributeReportIB = [1666943792.254773][12769:12769] CHIP:DMG: { [1666943792.254775][12769:12769] CHIP:DMG: AttributeDataIB = @@ -231,12 +231,12 @@ tests: [1666943792.254797][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, [1666943792.254799][12769:12769] CHIP:DMG: ListIndex = Null, [1666943792.254802][12769:12769] CHIP:DMG: } - [1666943792.254804][12769:12769] CHIP:DMG: - [1666943792.254807][12769:12769] CHIP:DMG: Data = 65532, + [1666943792.254804][12769:12769] CHIP:DMG: + [1666943792.254807][12769:12769] CHIP:DMG: Data = 65532, [1666943792.254809][12769:12769] CHIP:DMG: }, - [1666943792.254811][12769:12769] CHIP:DMG: + [1666943792.254811][12769:12769] CHIP:DMG: [1666943792.254813][12769:12769] CHIP:DMG: }, - [1666943792.254820][12769:12769] CHIP:DMG: + [1666943792.254820][12769:12769] CHIP:DMG: [1666943792.254822][12769:12769] CHIP:DMG: AttributeReportIB = [1666943792.254826][12769:12769] CHIP:DMG: { [1666943792.254828][12769:12769] CHIP:DMG: AttributeDataIB = @@ -249,23 +249,23 @@ tests: [1666943792.254849][12769:12769] CHIP:DMG: Attribute = 0x0000_FFFB, [1666943792.254851][12769:12769] CHIP:DMG: ListIndex = Null, [1666943792.254853][12769:12769] CHIP:DMG: } - [1666943792.254856][12769:12769] CHIP:DMG: - [1666943792.254859][12769:12769] CHIP:DMG: Data = 65533, + [1666943792.254856][12769:12769] CHIP:DMG: + [1666943792.254859][12769:12769] CHIP:DMG: Data = 65533, [1666943792.254861][12769:12769] CHIP:DMG: }, - [1666943792.254865][12769:12769] CHIP:DMG: + [1666943792.254865][12769:12769] CHIP:DMG: [1666943792.254867][12769:12769] CHIP:DMG: }, - [1666943792.254872][12769:12769] CHIP:DMG: + [1666943792.254872][12769:12769] CHIP:DMG: [1666943792.254874][12769:12769] CHIP:DMG: ], - [1666943792.254884][12769:12769] CHIP:DMG: - [1666943792.254886][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943792.254884][12769:12769] CHIP:DMG: + [1666943792.254886][12769:12769] CHIP:DMG: SuppressResponse = true, [1666943792.254889][12769:12769] CHIP:DMG: InteractionModelRevision = 1 [1666943792.254891][12769:12769] CHIP:DMG: } [1666943792.254894][12769:12769] CHIP:DMG: ./chip-tool relativehumiditymeasurement read measured-value 1 1 - verify TH recieves "measured-value response" on the TH (all-cluster-minimal-app) log: - [1666943851.649935][12769:12769] CHIP:DMG: + verify TH recieves "measured-value response" on the TH (all-cluster-minimal-app) log: + [1666943851.649935][12769:12769] CHIP:DMG: [1666943851.649947][12769:12769] CHIP:DMG: ReportDataMessage = [1666943851.649950][12769:12769] CHIP:DMG: { [1666943851.649952][12769:12769] CHIP:DMG: AttributeReportIBs = @@ -281,20 +281,20 @@ tests: [1666943851.649981][12769:12769] CHIP:DMG: Cluster = 0x405, [1666943851.649984][12769:12769] CHIP:DMG: Attribute = 0x0000_0000, [1666943851.649987][12769:12769] CHIP:DMG: } - [1666943851.649990][12769:12769] CHIP:DMG: - [1666943851.649994][12769:12769] CHIP:DMG: Data = 0, + [1666943851.649990][12769:12769] CHIP:DMG: + [1666943851.649994][12769:12769] CHIP:DMG: Data = 0, [1666943851.649997][12769:12769] CHIP:DMG: }, - [1666943851.650001][12769:12769] CHIP:DMG: + [1666943851.650001][12769:12769] CHIP:DMG: [1666943851.650003][12769:12769] CHIP:DMG: }, - [1666943851.650007][12769:12769] CHIP:DMG: + [1666943851.650007][12769:12769] CHIP:DMG: [1666943851.650009][12769:12769] CHIP:DMG: ], - [1666943851.650013][12769:12769] CHIP:DMG: - [1666943851.650015][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943851.650013][12769:12769] CHIP:DMG: + [1666943851.650015][12769:12769] CHIP:DMG: SuppressResponse = true, [1666943851.650017][12769:12769] CHIP:DMG: InteractionModelRevision = 1 ./chip-tool relativehumiditymeasurement read min-measured-value 1 1 - verify TH recieves "min-measured-value response" on the TH (all-cluster-minimal-app) log: + verify TH recieves "min-measured-value response" on the TH (all-cluster-minimal-app) log: 1651147834.075387][2336:2336] CHIP:IM: Received Read request @@ -313,21 +313,21 @@ tests: [1666943887.048862][12769:12769] CHIP:DMG: Cluster = 0x405, [1666943887.048865][12769:12769] CHIP:DMG: Attribute = 0x0000_0001, [1666943887.048868][12769:12769] CHIP:DMG: } - [1666943887.048871][12769:12769] CHIP:DMG: - [1666943887.048874][12769:12769] CHIP:DMG: Data = 0, + [1666943887.048871][12769:12769] CHIP:DMG: + [1666943887.048874][12769:12769] CHIP:DMG: Data = 0, [1666943887.048877][12769:12769] CHIP:DMG: }, - [1666943887.048881][12769:12769] CHIP:DMG: + [1666943887.048881][12769:12769] CHIP:DMG: [1666943887.048883][12769:12769] CHIP:DMG: }, - [1666943887.048887][12769:12769] CHIP:DMG: + [1666943887.048887][12769:12769] CHIP:DMG: [1666943887.048889][12769:12769] CHIP:DMG: ], - [1666943887.048893][12769:12769] CHIP:DMG: - [1666943887.048894][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943887.048893][12769:12769] CHIP:DMG: + [1666943887.048894][12769:12769] CHIP:DMG: SuppressResponse = true, [1666943887.048897][12769:12769] CHIP:DMG: InteractionModelRevision = 1 ./chip-tool relativehumiditymeasurement read max-measured-value 1 1 - verify TH recieves "max-measured-value response" on the TH (all-cluster-minimal-app) log: + verify TH recieves "max-measured-value response" on the TH (all-cluster-minimal-app) log: [1666943902.417737][12769:12769] CHIP:DMG: ReportDataMessage = [1666943902.417740][12769:12769] CHIP:DMG: { @@ -344,15 +344,15 @@ tests: [1666943902.417777][12769:12769] CHIP:DMG: Cluster = 0x405, [1666943902.417781][12769:12769] CHIP:DMG: Attribute = 0x0000_0002, [1666943902.417784][12769:12769] CHIP:DMG: } - [1666943902.417788][12769:12769] CHIP:DMG: - [1666943902.417791][12769:12769] CHIP:DMG: Data = 10000, + [1666943902.417788][12769:12769] CHIP:DMG: + [1666943902.417791][12769:12769] CHIP:DMG: Data = 10000, [1666943902.417794][12769:12769] CHIP:DMG: }, - [1666943902.417798][12769:12769] CHIP:DMG: + [1666943902.417798][12769:12769] CHIP:DMG: [1666943902.417801][12769:12769] CHIP:DMG: }, - [1666943902.417805][12769:12769] CHIP:DMG: + [1666943902.417805][12769:12769] CHIP:DMG: [1666943902.417808][12769:12769] CHIP:DMG: ], - [1666943902.417812][12769:12769] CHIP:DMG: - [1666943902.417815][12769:12769] CHIP:DMG: SuppressResponse = true, + [1666943902.417812][12769:12769] CHIP:DMG: + [1666943902.417815][12769:12769] CHIP:DMG: SuppressResponse = true, [1666943902.417819][12769:12769] CHIP:DMG: InteractionModelRevision = 1 cluster: "LogCommands" command: "UserPrompt" @@ -368,7 +368,7 @@ tests: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" verification: | - TH all-clusters-minimal-app does not support optional attributes + TH all-clusters-minimal-app does not support optional attributes ./chip-tool relativehumiditymeasurement read tolerance 1 1 From c52e23f2a63f800acdacd2b93c1d254ea506c11b Mon Sep 17 00:00:00 2001 From: manjunath-grl Date: Tue, 7 Feb 2023 16:55:29 +0530 Subject: [PATCH 4/6] Modified ACT-2.2 --- .../suites/certification/Test_TC_ACT_2_2.yaml | 534 ++++++++++++++++++ .../certification/Test_TC_TSTAT_2_2.yaml | 119 ---- src/app/tests/suites/manualTests.json | 2 +- .../chip-tool/zap-generated/test/Commands.h | 413 ++------------ 4 files changed, 592 insertions(+), 476 deletions(-) create mode 100644 src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml diff --git a/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml b/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml new file mode 100644 index 00000000000000..08d1eae040a18e --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml @@ -0,0 +1,534 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 3.2.2. [TC-ACT-2.2] Primary functionality with server as DUT + +PICS: + - ACT.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Commission DUT to TH (can be skipped if done in a preceding test)" + verification: | + + disabled: true + + - label: + "Using the manufacturer provided means, create multiple groups with + each multiple bridged devices (endpoints)" + PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists + verification: | + Create multiple groups with each multiple bridged devices (endpoints) + disabled: true + + - label: "Read EndpointLists attribute" + verification: | + ./chip-tool actions read endpoint-lists 1 1 + + On TH(chip-tool), verify the EndpointListStructs in TH Log: + [1658426570.716289][16527:16532] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 + [1658426570.716404][16527:16532] CHIP:TOO: endpoint list: 2 entries + [1658426570.716465][16527:16532] CHIP:TOO: [1]: { + [1658426570.716507][16527:16532] CHIP:TOO: EndpointListID: 0 + [1658426570.716534][16527:16532] CHIP:TOO: Name: living_room + [1658426570.716559][16527:16532] CHIP:TOO: Type: 1 + [1658426570.716588][16527:16532] CHIP:TOO: Endpoints: 2 entries + [1658426570.716617][16527:16532] CHIP:TOO: [1]: 2 + [1658426570.716646][16527:16532] CHIP:TOO: [2]: 3 + [1658426570.716673][16527:16532] CHIP:TOO: } + [1658426570.717133][16527:16532] CHIP:TOO: [2]: { + [1658426570.717160][16527:16532] CHIP:TOO: EndpointListID: 2 + [1658426570.717185][16527:16532] CHIP:TOO: Name: office + [1658426570.717209][16527:16532] CHIP:TOO: Type: 1 + [1658426570.717236][16527:16532] CHIP:TOO: Endpoints: 1 entries + [1658426570.717265][16527:16532] CHIP:TOO: [1]: 9 + [1658426570.717292][16527:16532] CHIP:TOO: } + disabled: true + + - label: + "Using the manufacturer provided means, update the name of one of the + groups" + PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists + verification: | + press r in bridge-app to rename + (in the example, renamed "office" to "kitchen") + disabled: true + + - label: "Read EndpointLists attribute again" + PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists + verification: | + ./chip-tool actions read endpoint-lists 1 1 + + On TH(chip-tool), verify the EndpointListStructs in below Log: + [1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648 + [1658408033.786954][14495:14500] CHIP:TOO: endpoint list: 2 entries + [1658408033.787044][14495:14500] CHIP:TOO: [1]: { + [1658408033.787100][14495:14500] CHIP:TOO: EndpointListID: 0 + [1658408033.787135][14495:14500] CHIP:TOO: Name: living_room + [1658408033.787183][14495:14500] CHIP:TOO: Type: 1 + [1658408033.787220][14495:14500] CHIP:TOO: Endpoints: 2 entries + [1658408033.787274][14495:14500] CHIP:TOO: [1]: 2 + [1658408033.787312][14495:14500] CHIP:TOO: [2]: 3 + [1658408033.787343][14495:14500] CHIP:TOO: } + [1658408033.787407][14495:14500] CHIP:TOO: [2]: { + [1658408033.788089][14495:14500] CHIP:TOO: EndpointListID: 2 + [1658408033.788123][14495:14500] CHIP:TOO: Name: kitchen + [1658408033.788156][14495:14500] CHIP:TOO: Type: 1 + [1658408033.788191][14495:14500] CHIP:TOO: Endpoints: 1 entries + [1658408033.788243][14495:14500] CHIP:TOO: [1]: 9 + [1658408033.788278][14495:14500] CHIP:TOO: } + disabled: true + + - label: "compare result of step 2d to what was read in step 2b" + PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists + verification: | + compare result of step 2d to what was read in step 2b, Verify name field in relevant EndpointListStruct has been updated and no other changes in EndpointLists attribute + + Step 2d log + On TH(chip-tool), verify the EndpointListStructs: + [1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648 + [1658408033.786954][14495:14500] CHIP:TOO: endpoint list: 2 entries + [1658408033.787044][14495:14500] CHIP:TOO: [1]: { + [1658408033.787100][14495:14500] CHIP:TOO: EndpointListID: 0 + [1658408033.787135][14495:14500] CHIP:TOO: Name: living_room + [1658408033.787183][14495:14500] CHIP:TOO: Type: 1 + [1658408033.787220][14495:14500] CHIP:TOO: Endpoints: 2 entries + [1658408033.787274][14495:14500] CHIP:TOO: [1]: 2 + [1658408033.787312][14495:14500] CHIP:TOO: [2]: 3 + [1658408033.787343][14495:14500] CHIP:TOO: } + [1658408033.787407][14495:14500] CHIP:TOO: [2]: { + [1658408033.788089][14495:14500] CHIP:TOO: EndpointListID: 2 + [1658408033.788123][14495:14500] CHIP:TOO: Name: kitchen + [1658408033.788156][14495:14500] CHIP:TOO: Type: 1 + [1658408033.788191][14495:14500] CHIP:TOO: Endpoints: 1 entries + [1658408033.788243][14495:14500] CHIP:TOO: [1]: 9 + [1658408033.788278][14495:14500] CHIP:TOO: } + + Step 2b log + On TH(chip-tool), verify the EndpointListStructs + [1658426570.716289][16527:16532] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 + [1658426570.716404][16527:16532] CHIP:TOO: endpoint list: 2 entries + [1658426570.716465][16527:16532] CHIP:TOO: [1]: { + [1658426570.716507][16527:16532] CHIP:TOO: EndpointListID: 0 + [1658426570.716534][16527:16532] CHIP:TOO: Name: living_room + [1658426570.716559][16527:16532] CHIP:TOO: Type: 1 + [1658426570.716588][16527:16532] CHIP:TOO: Endpoints: 2 entries + [1658426570.716617][16527:16532] CHIP:TOO: [1]: 2 + [1658426570.716646][16527:16532] CHIP:TOO: [2]: 3 + [1658426570.716673][16527:16532] CHIP:TOO: } + [1658426570.717133][16527:16532] CHIP:TOO: [2]: { + [1658426570.717160][16527:16532] CHIP:TOO: EndpointListID: 2 + [1658426570.717185][16527:16532] CHIP:TOO: Name: office + [1658426570.717209][16527:16532] CHIP:TOO: Type: 1 + [1658426570.717236][16527:16532] CHIP:TOO: Endpoints: 1 entries + [1658426570.717265][16527:16532] CHIP:TOO: [1]: 9 + [1658426570.717292][16527:16532] CHIP:TOO: } + disabled: true + + - label: + "Using the manufacturer provided means, move one of the bridged + devices (one endpoint) from one group to another group" + PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists + verification: | + Press f in bridge app to move one of the bridged devices (one endpoint) from one group to another group + + (in the example, light at ep 3 was moved to kitchen) + disabled: true + + - label: "Read EndpointLists attribute again" + PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists + verification: | + ./chip-tool actions read endpoint-lists 1 1 + + On TH(chip-tool), verify the EndpointListStructs + [1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648 + [1658408033.786954][14495:14500] CHIP:TOO: endpoint list: 2 entries + [1658408033.787044][14495:14500] CHIP:TOO: [1]: { + [1658408033.787100][14495:14500] CHIP:TOO: EndpointListID: 0 + [1658408033.787135][14495:14500] CHIP:TOO: Name: living_room + [1658408033.787183][14495:14500] CHIP:TOO: Type: 1 + [1658408033.787220][14495:14500] CHIP:TOO: Endpoints: 2 entries + [1658408033.787274][14495:14500] CHIP:TOO: [1]: 2 + [1658408033.787343][14495:14500] CHIP:TOO: } + [1658408033.787407][14495:14500] CHIP:TOO: [2]: { + [1658408033.788089][14495:14500] CHIP:TOO: EndpointListID: 2 + [1658408033.788123][14495:14500] CHIP:TOO: Name: kitchen + [1658408033.788156][14495:14500] CHIP:TOO: Type: 1 + [1658408033.788191][14495:14500] CHIP:TOO: Endpoints: 2 entries + [1658408033.788243][14495:14500] CHIP:TOO: [1]: 9 + [1658408033.787312][14495:14500] CHIP:TOO: [2]: 3 + [1658408033.788278][14495:14500] CHIP:TOO: } + disabled: true + + - label: "compare result of step 2g to what was read in step 2d" + PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists + verification: | + compare result of step 2g to what was read in step 2d, Verify one EP (EP 3 in this case) has been moved from one EndpointListStruct to another EndpointListStruct + disabled: true + + - label: "Using the manufacturer provided means, remove one of the groups" + PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists + verification: | + Press i in bridge-ap to remove one of the groups + + in this case, the 2nd group was removed + disabled: true + + - label: "Read EndpointLists attribute again" + PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists + verification: | + ./chip-tool actions read endpoint-lists 1 1 + + On TH(chip-tool), verify the EndpointListStructs + [1658426959.409374][16560:16565] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 + [1658426959.409476][16560:16565] CHIP:TOO: endpoint list: 1 entries + [1658426959.409543][16560:16565] CHIP:TOO: [1]: { + [1658426959.409580][16560:16565] CHIP:TOO: EndpointListID: 0 + [1658426959.409604][16560:16565] CHIP:TOO: Name: living_room + [1658426959.409636][16560:16565] CHIP:TOO: Type: 1 + [1658426959.409691][16560:16565] CHIP:TOO: Endpoints: 1 entries + [1658426959.409730][16560:16565] CHIP:TOO: [1]: 2 + [1658426959.409755][16560:16565] CHIP:TOO: } + disabled: true + + - label: "compare result of step 2j to what was read in step 2g" + PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists + verification: | + compare result of step 2j to what was read in step 2g, Verify one EndpointListStruct (the 2nd one in this example) got removed while the other one(s) did not change + disabled: true + + - label: + "Using the manufacturer provided means, create a new group, which + includes one of the bridged devices also present in another group" + PICS: ACT.S.A0001 && ACT.S.M.OverlappingEndpointLists + verification: | + press l in bridge-app + in this example, a zone was created with same light (ep 2) + disabled: true + + - label: "Read EndpointLists attribute again" + PICS: ACT.S.A0001 && ACT.S.M.OverlappingEndpointLists + verification: | + ./chip-tool actions read endpoint-lists 1 1 + + On TH(chip-tool), verify the EndpointListStructs + 1658427088.316681][16578:16583] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 + [1658427088.316792][16578:16583] CHIP:TOO: endpoint list: 2 entries + [1658427088.316850][16578:16583] CHIP:TOO: [1]: { + [1658427088.316890][16578:16583] CHIP:TOO: EndpointListID: 0 + [1658427088.316915][16578:16583] CHIP:TOO: Name: living_room + [1658427088.316939][16578:16583] CHIP:TOO: Type: 1 + [1658427088.316965][16578:16583] CHIP:TOO: Endpoints: 1 entries + [1658427088.316993][16578:16583] CHIP:TOO: [1]: 2 + [1658427088.317019][16578:16583] CHIP:TOO: } + [1658427088.317558][16578:16583] CHIP:TOO: [2]: { + [1658427088.317583][16578:16583] CHIP:TOO: EndpointListID: 2 + [1658427088.317606][16578:16583] CHIP:TOO: Name: dining + [1658427088.317628][16578:16583] CHIP:TOO: Type: 2 + [1658427088.317652][16578:16583] CHIP:TOO: Endpoints: 1 entries + [1658427088.317679][16578:16583] CHIP:TOO: [1]: 2 + [1658427088.317705][16578:16583] CHIP:TOO: } + disabled: true + + - label: "compare result of step 2m to what was read in step 2j" + PICS: ACT.S.A0001 && ACT.S.M.OverlappingEndpointLists + verification: | + compare result of step 2m to what was read in step 2j. + Verify a new EndpointListStruct got added (the 2nd one in this example) with an EP which is also in one of the other EndpointListStructs (EP2 in this example) + disabled: true + + - label: "Using the manufacturer provided means, create multiple actions" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + no Matter messages + disabled: true + + - label: "Read ActionList attribute" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + ./chip-tool actions read action-list 1 1 + + Verify ActionStructs in TH(chip-tool) Log: + [1658479958.699434][26130:26135] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 + [1658479958.699494][26130:26135] CHIP:TOO: action list: 2 entries + [1658479958.699549][26130:26135] CHIP:TOO: [1]: { + [1658479958.699582][26130:26135] CHIP:TOO: ActionID: 4097 + [1658479958.699597][26130:26135] CHIP:TOO: Name: Room 1 On + [1658479958.699611][26130:26135] CHIP:TOO: Type: 3 + [1658479958.699624][26130:26135] CHIP:TOO: EndpointListID: 57345 + [1658479958.699638][26130:26135] CHIP:TOO: SupportedCommands: 1 + [1658479958.699652][26130:26135] CHIP:TOO: Status: 0 + [1658479958.699665][26130:26135] CHIP:TOO: } + [1658479958.699689][26130:26135] CHIP:TOO: [2]: { + [1658479958.699702][26130:26135] CHIP:TOO: ActionID: 4098 + [1658479958.699715][26130:26135] CHIP:TOO: Name: Turn On Room 2 + [1658479958.699727][26130:26135] CHIP:TOO: Type: 3 + [1658479958.699740][26130:26135] CHIP:TOO: EndpointListID: 57346 + [1658479958.699753][26130:26135] CHIP:TOO: SupportedCommands: 1 + [1658479958.699765][26130:26135] CHIP:TOO: Status: 0 + [1658479958.699777][26130:26135] CHIP:TOO: } + disabled: true + + - label: + "Using the manufacturer provided means, update the name of one of the + actions" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + Press m in bridge-app to update the name of one action + disabled: true + + - label: "Read ActionList attribute again" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + ./chip-tool actions read action-list 1 1 + + Verify ActionStructs in TH(chip-tool) Log: + [1658480004.064867][26153:26158] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 + [1658480004.064928][26153:26158] CHIP:TOO: action list: 2 entries + [1658480004.064992][26153:26158] CHIP:TOO: [1]: { + [1658480004.065024][26153:26158] CHIP:TOO: ActionID: 4097 + [1658480004.065041][26153:26158] CHIP:TOO: Name: Turn On Room 1 + [1658480004.065057][26153:26158] CHIP:TOO: Type: 3 + [1658480004.065073][26153:26158] CHIP:TOO: EndpointListID: 57345 + [1658480004.065090][26153:26158] CHIP:TOO: SupportedCommands: 1 + [1658480004.065105][26153:26158] CHIP:TOO: Status: 0 + [1658480004.065120][26153:26158] CHIP:TOO: } + [1658480004.065148][26153:26158] CHIP:TOO: [2]: { + [1658480004.065165][26153:26158] CHIP:TOO: ActionID: 4098 + [1658480004.065179][26153:26158] CHIP:TOO: Name: Turn On Room 2 + [1658480004.065194][26153:26158] CHIP:TOO: Type: 3 + [1658480004.065209][26153:26158] CHIP:TOO: EndpointListID: 57346 + [1658480004.065223][26153:26158] CHIP:TOO: SupportedCommands: 1 + [1658480004.065238][26153:26158] CHIP:TOO: Status: 0 + [1658480004.065252][26153:26158] CHIP:TOO: } + disabled: true + + - label: "compare result of step 3d to what was read in step 3b" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + Compare step 3d and 3b and verify the name field has been changed + + Step 3d + Verify ActionStructs in TH(chip-tool) Log: + [1658480004.064867][26153:26158] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 + [1658480004.064928][26153:26158] CHIP:TOO: action list: 2 entries + [1658480004.064992][26153:26158] CHIP:TOO: [1]: { + [1658480004.065024][26153:26158] CHIP:TOO: ActionID: 4097 + [1658480004.065041][26153:26158] CHIP:TOO: Name: Turn On Room 1 + [1658480004.065057][26153:26158] CHIP:TOO: Type: 3 + [1658480004.065073][26153:26158] CHIP:TOO: EndpointListID: 57345 + [1658480004.065090][26153:26158] CHIP:TOO: SupportedCommands: 1 + [1658480004.065105][26153:26158] CHIP:TOO: Status: 0 + [1658480004.065120][26153:26158] CHIP:TOO: } + [1658480004.065148][26153:26158] CHIP:TOO: [2]: { + [1658480004.065165][26153:26158] CHIP:TOO: ActionID: 4098 + [1658480004.065179][26153:26158] CHIP:TOO: Name: Turn On Room 2 + [1658480004.065194][26153:26158] CHIP:TOO: Type: 3 + [1658480004.065209][26153:26158] CHIP:TOO: EndpointListID: 57346 + [1658480004.065223][26153:26158] CHIP:TOO: SupportedCommands: 1 + [1658480004.065238][26153:26158] CHIP:TOO: Status: 0 + [1658480004.065252][26153:26158] CHIP:TOO: } + + Step 3b Log: + Verify ActionStructs in TH(chip-tool) Log: + [1658479958.699434][26130:26135] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 + [1658479958.699494][26130:26135] CHIP:TOO: action list: 2 entries + [1658479958.699549][26130:26135] CHIP:TOO: [1]: { + [1658479958.699582][26130:26135] CHIP:TOO: ActionID: 4097 + [1658479958.699597][26130:26135] CHIP:TOO: Name: Room 1 On + [1658479958.699611][26130:26135] CHIP:TOO: Type: 3 + [1658479958.699624][26130:26135] CHIP:TOO: EndpointListID: 57345 + [1658479958.699638][26130:26135] CHIP:TOO: SupportedCommands: 1 + [1658479958.699652][26130:26135] CHIP:TOO: Status: 0 + [1658479958.699665][26130:26135] CHIP:TOO: } + [1658479958.699689][26130:26135] CHIP:TOO: [2]: { + [1658479958.699702][26130:26135] CHIP:TOO: ActionID: 4098 + [1658479958.699715][26130:26135] CHIP:TOO: Name: Turn On Room 2 + [1658479958.699727][26130:26135] CHIP:TOO: Type: 3 + [1658479958.699740][26130:26135] CHIP:TOO: EndpointListID: 57346 + [1658479958.699753][26130:26135] CHIP:TOO: SupportedCommands: 1 + [1658479958.699765][26130:26135] CHIP:TOO: Status: 0 + [1658479958.699777][26130:26135] CHIP:TOO: } + disabled: true + + - label: + "Using the manufacturer provided means, remove one of the exposed + actions" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + press n in bridge-app + disabled: true + + - label: "Read ActionList attribute again" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + ./chip-tool actions read action-list 1 1 + + Verify ActionStructs in TH(chip-tool) Log: + [1658480039.164683][26172:26177] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 + [1658480039.164758][26172:26177] CHIP:TOO: action list: 1 entries + [1658480039.164815][26172:26177] CHIP:TOO: [1]: { + [1658480039.164846][26172:26177] CHIP:TOO: ActionID: 4097 + [1658480039.164872][26172:26177] CHIP:TOO: Name: Turn On Room 1 + [1658480039.164897][26172:26177] CHIP:TOO: Type: 3 + [1658480039.164920][26172:26177] CHIP:TOO: EndpointListID: 57345 + [1658480039.164948][26172:26177] CHIP:TOO: SupportedCommands: 1 + [1658480039.164974][26172:26177] CHIP:TOO: Status: 0 + [1658480039.164997][26172:26177] CHIP:TOO: } + disabled: true + + - label: "compare result of step 3g to what was read in step 3d" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + compare result of step 3g to what was read in step 3d + Verify one Action (4098 in this example) got removed while the other Action(s) (4097 in this case) did not change + disabled: true + + - label: "Using the manufacturer provided means, add a new exposed action" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + press o in bridge-app + disabled: true + + - label: "Read ActionList attribute again" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + ./chip-tool actions read action-list 1 1 + + Verify ActionStructs in TH(chip-tool) Log: + [1658480059.199268][26178:26183] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 + [1658480059.199349][26178:26183] CHIP:TOO: action list: 2 entries + [1658480059.199410][26178:26183] CHIP:TOO: [1]: { + [1658480059.199440][26178:26183] CHIP:TOO: ActionID: 4097 + [1658480059.199457][26178:26183] CHIP:TOO: Name: Turn On Room 1 + [1658480059.199473][26178:26183] CHIP:TOO: Type: 3 + [1658480059.199488][26178:26183] CHIP:TOO: EndpointListID: 57345 + [1658480059.199505][26178:26183] CHIP:TOO: SupportedCommands: 1 + [1658480059.199520][26178:26183] CHIP:TOO: Status: 0 + [1658480059.199534][26178:26183] CHIP:TOO: } + [1658480059.199562][26178:26183] CHIP:TOO: [2]: { + [1658480059.199578][26178:26183] CHIP:TOO: ActionID: 4099 + [1658480059.199593][26178:26183] CHIP:TOO: Name: Turn Off Room 1 + [1658480059.199607][26178:26183] CHIP:TOO: Type: 3 + [1658480059.199622][26178:26183] CHIP:TOO: EndpointListID: 57347 + [1658480059.199636][26178:26183] CHIP:TOO: SupportedCommands: 1 + [1658480059.199651][26178:26183] CHIP:TOO: Status: 0 + [1658480059.199665][26178:26183] CHIP:TOO: } + disabled: true + + - label: "compare result of step 3j to what was read in step 3g" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + compare result of step 3j to what was read in step 3g + Verify one new Action (4099 in this example) got added while the other Action(s) (4097 in this case) did not change + disabled: true + + - label: "Using the manufacturer provided means, create multiple actions" + PICS: ACT.S.A0000 && ACT.S.M.FillActionList + verification: | + no Matter messages + disabled: true + + - label: "Read ActionList attribute" + PICS: ACT.S.A0000 + verification: | + ./chip-tool actions read action-list 1 1 + + Verify ActionStructs in TH(chip-tool) Log: + [1658480080.135069][26185:26190] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 + [1658480080.135130][26185:26190] CHIP:TOO: action list: 2 entries + [1658480080.135191][26185:26190] CHIP:TOO: [1]: { + [1658480080.135222][26185:26190] CHIP:TOO: ActionID: 4097 + [1658480080.135238][26185:26190] CHIP:TOO: Name: Turn On Room 1 + [1658480080.135253][26185:26190] CHIP:TOO: Type: 3 + [1658480080.135269][26185:26190] CHIP:TOO: EndpointListID: 57345 + [1658480080.135285][26185:26190] CHIP:TOO: SupportedCommands: 1 + [1658480080.135300][26185:26190] CHIP:TOO: Status: 0 + [1658480080.135315][26185:26190] CHIP:TOO: } + [1658480080.135342][26185:26190] CHIP:TOO: [2]: { + [1658480080.135357][26185:26190] CHIP:TOO: ActionID: 4099 + [1658480080.135371][26185:26190] CHIP:TOO: Name: Turn Off Room 1 + [1658480080.135386][26185:26190] CHIP:TOO: Type: 3 + [1658480080.135400][26185:26190] CHIP:TOO: EndpointListID: 57347 + [1658480080.135415][26185:26190] CHIP:TOO: SupportedCommands: 1 + [1658480080.135430][26185:26190] CHIP:TOO: Status: 0 + [1658480080.135443][26185:26190] CHIP:TOO: } + disabled: true + + - label: "subscribe to StateChanged and ActionFailed events" + verification: | + To subscribe StateChanged event follow below steps + 1) ./chip-tool interactive start + 2) actions subscribe-event action-failed 2 30 1 0 + Verify in TH Log: + [1659962630.453221][25381:25386] CHIP:EM: Removed CHIP MessageCounter:65903257 from RetransTable on exchange 50035i + [1659962630.453246][25381:25386] CHIP:DMG: ReportDataMessage = + [1659962630.453259][25381:25386] CHIP:DMG: { + [1659962630.453270][25381:25386] CHIP:DMG: SubscriptionId = 0x78f0a04c, + [1659962630.453281][25381:25386] CHIP:DMG: InteractionModelRevision = 1 + [1659962630.453290][25381:25386] CHIP:DMG: } + [1659962630.453312][25381:25386] CHIP:DMG: MoveToState ReadClient[0x7f9204005990]: Moving to [AwaitingSu] + [1659962630.453337][25381:25386] CHIP:EM: Piggybacking Ack for MessageCounter:102831868 on exchange: 50035i + [1659962630.453364][25381:25386] CHIP:IN: Prepared secure message 0x7f9204005698 to 0x0000000000000001 (1) of type 0x1 and protocolId (0, 1) on exchange 50035i with MessageCounter:65903258. + [1659962630.453382][25381:25386] CHIP:IN: Sending encrypted msg 0x7f9204005698 with MessageCounter:65903258 to 0x0000000000000001 (1) at monotonic time: 0000000001ADE9B2 msec + [1659962630.456411][25381:25386] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:102831869 on exchange 50035i + [1659962630.456431][25381:25386] CHIP:EM: Found matching exchange: 50035i, Delegate: 0x7f92040059a0 + [1659962630.456448][25381:25386] CHIP:EM: Rxd Ack; Removing MessageCounter:65903258 from Retrans Table on exchange 50035i + [1659962630.456457][25381:25386] CHIP:EM: Removed CHIP MessageCounter:65903258 from RetransTable on exchange 50035i + [1659962630.456475][25381:25386] CHIP:DMG: SubscribeResponse is received + [1659962630.456497][25381:25386] CHIP:DMG: SubscribeResponseMessage = + [1659962630.456509][25381:25386] CHIP:DMG: { + [1659962630.456520][25381:25386] CHIP:DMG: SubscriptionId = 0x78f0a04c, + [1659962630.456531][25381:25386] CHIP:DMG: MaxInterval = 0x64, + [1659962630.456542][25381:25386] CHIP:DMG: InteractionModelRevision = 1 + [1659962630.456551][25381:25386] CHIP:DMG: } + [1659962630.456563][25381:25386] CHIP:DMG: Subscription established with SubscriptionID = 0x78f0a04c MinInterval = 0s MaxInterval = 100s Peer = 01:0000000000000001 + + 3) actions instant-action 0x1001 1 1 + + Verify in TH Log + + [1659955888.114483][23216:23221] CHIP:DMG: StatusIB = + [1659955888.114499][23216:23221] CHIP:DMG: { + [1659955888.114515][23216:23221] CHIP:DMG: status = 0x00 (SUCCESS), + [1659955888.114529][23216:23221] CHIP:DMG: }, + disabled: true + + - label: + "For each of the ActionStructs provided by DUT (see list read in step + 4b), perform one of the actions supported (see SupportedCommands in + this ActionStruct) by sending the command with this particular + ActionID and a random value for InvokeID" + verification: | + Only InstantActions command is supported + + ./chip-tool actions instant-action 0x1001 1 1 + + Verify in TH Log + + [1659955888.114483][23216:23221] CHIP:DMG: StatusIB = + [1659955888.114499][23216:23221] CHIP:DMG: { + [1659955888.114515][23216:23221] CHIP:DMG: status = 0x00 (SUCCESS), + [1659955888.114529][23216:23221] CHIP:DMG: }, + disabled: true + + - label: "repeat 4d for the other SupportedCommands of each ActionStruct" + verification: | + Only InstantActions command is supported + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml index 8bb39409df8abc..f402fa9f0ec0c9 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml @@ -136,7 +136,6 @@ tests: PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 command: "readAttribute" attribute: "OccupiedCoolingSetpoint" - optional: true response: constraints: type: int16s @@ -150,7 +149,6 @@ tests: command: "readAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.A0018 - optional: true response: constraints: type: int16s @@ -162,7 +160,6 @@ tests: OccupiedCoolingSetpoint attribute" command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" - optional: true PICS: TSTAT.S.F01 arguments: value: 2500 @@ -172,7 +169,6 @@ tests: OccupiedCoolingSetpoint attribute" command: "readAttribute" attribute: "OccupiedCoolingSetpoint" - optional: true PICS: TSTAT.S.F01 response: value: 2500 @@ -180,7 +176,6 @@ tests: - label: "Writes OccupiedCoolingSetpoint to value below the MinCoolSetpointLimit" - optional: true command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.A0017 @@ -219,7 +214,6 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.A0017 - optional: true arguments: value: 4000 response: @@ -231,7 +225,6 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && TSTAT.S.A0017 - optional: true arguments: value: MaxCoolSetpointLimit + 1000 response: @@ -243,7 +236,6 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.F05 && !TSTAT.S.A0017 - optional: true arguments: value: 1600 @@ -253,7 +245,6 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.F05 && TSTAT.S.A0017 - optional: true arguments: value: MinCoolSetpointLimit @@ -287,7 +278,6 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && !TSTAT.S.A0017 - optional: true arguments: value: 3200 @@ -297,7 +287,6 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 && TSTAT.S.A0017 - optional: true arguments: value: MaxCoolSetpointLimit @@ -308,7 +297,6 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 - optional: true response: constraints: type: int16s @@ -322,7 +310,6 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.A0015 && !TSTAT.S.A0016 - optional: true response: constraints: type: int16s @@ -335,7 +322,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 - optional: true arguments: value: 2100 @@ -345,7 +331,6 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 - optional: true response: value: 2100 @@ -355,7 +340,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.A0015 - optional: true arguments: value: 600 response: @@ -392,7 +376,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.A0016 - optional: true arguments: value: 4010 response: @@ -404,7 +387,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && TSTAT.S.A0016 - optional: true arguments: value: MaxHeatSetpointLimit + 1000 response: @@ -416,7 +398,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.A0015 - optional: true arguments: value: 700 @@ -426,7 +407,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && TSTAT.S.A0015 - optional: true arguments: value: MinHeatSetpointLimit @@ -436,7 +416,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.F05 && !TSTAT.S.A0016 - optional: true arguments: value: 3000 @@ -446,7 +425,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 && !TSTAT.S.F05 && TSTAT.S.A0016 - optional: true arguments: value: MaxHeatSetpointLimit @@ -456,7 +434,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F05 && !TSTAT.S.A0015 - optional: true arguments: value: 3000 response: @@ -501,7 +478,6 @@ tests: command: "readAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 - optional: true response: constraints: type: int16s @@ -514,7 +490,6 @@ tests: command: "readAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.A0018 - optional: true response: constraints: type: int16s @@ -527,7 +502,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 - optional: true arguments: value: 2500 @@ -537,7 +511,6 @@ tests: command: "readAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 - optional: true response: value: 2500 @@ -547,7 +520,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 - optional: true arguments: value: 1002 response: @@ -579,7 +551,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0018 - optional: true arguments: value: 4010 response: @@ -591,7 +562,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0018 - optional: true arguments: value: MaxCoolSetpointLimit + 1000 response: @@ -603,7 +573,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.F05 - optional: true arguments: value: 1600 @@ -613,7 +582,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && TSTAT.S.F05 - optional: true arguments: value: 1600 response: @@ -625,7 +593,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.F05 - optional: true arguments: value: MinCoolSetpointLimit @@ -662,7 +629,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0018 && !TSTAT.S.F05 - optional: true arguments: value: 3200 @@ -672,7 +638,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 - optional: true arguments: value: MaxCoolSetpointLimit @@ -683,7 +648,6 @@ tests: command: "readAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 - optional: true response: constraints: type: int16s @@ -697,7 +661,6 @@ tests: command: "readAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 && !TSTAT.S.A0016 - optional: true response: constraints: type: int16s @@ -710,7 +673,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 - optional: true arguments: value: 2500 @@ -720,7 +682,6 @@ tests: command: "readAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 - optional: true response: value: 2500 @@ -730,7 +691,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 - optional: true arguments: value: 500 response: @@ -766,7 +726,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 - optional: true arguments: value: 4010 response: @@ -778,7 +737,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0016 - optional: true arguments: value: MaxHeatSetpointLimit + 1000 response: @@ -790,7 +748,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 - optional: true arguments: value: 700 @@ -800,7 +757,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015 - optional: true arguments: value: MinHeatSetpointLimit @@ -810,7 +766,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 && !TSTAT.S.F05 - optional: true arguments: value: 3000 @@ -820,7 +775,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 - optional: true arguments: value: MaxHeatSetpointLimit @@ -830,7 +784,6 @@ tests: command: "writeAttribute" attribute: "UnoccupiedHeatingSetpoint" PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 && TSTAT.S.F05 - optional: true arguments: value: 3000 response: @@ -871,7 +824,6 @@ tests: command: "readAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 && TSTAT.S.A0003 - optional: true response: constraints: type: int16s @@ -884,7 +836,6 @@ tests: that the value is within range" command: "readAttribute" attribute: "MinHeatSetpointLimit" - optional: true PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0016 && !TSTAT.S.A0003 response: constraints: @@ -898,7 +849,6 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 - optional: true arguments: value: 800 @@ -908,7 +858,6 @@ tests: command: "readAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 - optional: true response: value: 800 @@ -916,7 +865,6 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.A0015 && TSTAT.S.F05 - optional: true arguments: value: 2000 response: @@ -928,7 +876,6 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0003 - optional: true arguments: value: 100 response: @@ -963,7 +910,6 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0016 - optional: true arguments: value: 4050 response: @@ -975,7 +921,6 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 - optional: true arguments: value: MaxHeatSetpointLimit + 1000 response: @@ -987,7 +932,6 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0003 - optional: true arguments: value: 700 @@ -997,7 +941,6 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0003 - optional: true arguments: value: AbsMinHeatSetpointLimitValue @@ -1007,7 +950,6 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.F05 && !TSTAT.S.A0016 - optional: true arguments: value: 3000 @@ -1017,7 +959,6 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.F05 && TSTAT.S.A0016 - optional: true arguments: value: MaxHeatSetpointLimit @@ -1059,7 +1000,6 @@ tests: that the value is within range" command: "readAttribute" attribute: "MaxHeatSetpointLimit" - optional: true PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && TSTAT.S.A0004 && TSTAT.S.A0016 @@ -1075,7 +1015,6 @@ tests: that the value is within range" command: "readAttribute" attribute: "MaxHeatSetpointLimit" - optional: true PICS: " TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && !TSTAT.S.A0004 && !TSTAT.S.A0016 " @@ -1090,7 +1029,6 @@ tests: attribute" command: "writeAttribute" attribute: "MinHeatSetpointLimit" - optional: true PICS: TSTAT.S.F00 && TSTAT.S.A0015 arguments: value: 700 @@ -1101,7 +1039,6 @@ tests: command: "writeAttribute" attribute: "MinHeatSetpointLimit" PICS: TSTAT.S.A0015 && TSTAT.S.F05 - optional: true arguments: value: 3000 response: @@ -1113,7 +1050,6 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 - optional: true arguments: value: 2900 @@ -1123,7 +1059,6 @@ tests: command: "readAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 - optional: true response: value: 2900 @@ -1133,7 +1068,6 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015 - optional: true arguments: value: 500 response: @@ -1181,7 +1115,6 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0004 - optional: true arguments: value: 4000 response: @@ -1193,7 +1126,6 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0004 - optional: true arguments: value: AbsMaxHeatSetpointLimitValue + 1000 response: @@ -1205,7 +1137,6 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015 - optional: true arguments: value: 700 @@ -1215,7 +1146,6 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0015 - optional: true arguments: value: MinHeatSetpointLimit @@ -1225,7 +1155,6 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && !TSTAT.S.A0004 - optional: true arguments: value: 3000 @@ -1235,7 +1164,6 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && TSTAT.S.A0004 - optional: true arguments: value: AbsMaxHeatSetpointLimitValue @@ -1279,7 +1207,6 @@ tests: command: "readAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 && TSTAT.S.A0005 - optional: true response: constraints: type: int16s @@ -1293,7 +1220,6 @@ tests: command: "readAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 && !TSTAT.S.A0005 - optional: true response: constraints: type: int16s @@ -1306,7 +1232,6 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 - optional: true arguments: value: 2000 @@ -1316,7 +1241,6 @@ tests: command: "readAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 - optional: true response: value: 2000 @@ -1326,7 +1250,6 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0005 - optional: true arguments: value: 1000 response: @@ -1367,7 +1290,6 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 - optional: true arguments: value: 4000 response: @@ -1378,7 +1300,6 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 - optional: true arguments: value: MaxCoolSetpointLimit + 1000 response: @@ -1390,7 +1311,6 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0005 && !TSTAT.S.F05 - optional: true arguments: value: 1600 @@ -1400,7 +1320,6 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0005 && !TSTAT.S.F05 - optional: true arguments: value: AbsMinCoolSetpointLimit @@ -1437,7 +1356,6 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 - optional: true arguments: value: 3200 @@ -1447,7 +1365,6 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 - optional: true arguments: value: MaxCoolSetpointLimit @@ -1458,7 +1375,6 @@ tests: command: "readAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0017 && TSTAT.S.A0006 - optional: true response: constraints: type: int16s @@ -1472,7 +1388,6 @@ tests: command: "readAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && !TSTAT.S.A0006 - optional: true response: constraints: type: int16s @@ -1485,7 +1400,6 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 - optional: true arguments: value: 2000 @@ -1495,7 +1409,6 @@ tests: command: "readAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 - optional: true response: value: 2000 @@ -1505,7 +1418,6 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 - optional: true arguments: value: 1000 response: @@ -1542,7 +1454,6 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0006 - optional: true arguments: value: 4000 response: @@ -1553,7 +1464,6 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0006 - optional: true arguments: value: AbsMaxCoolSetpointLimit + 1000 response: @@ -1565,7 +1475,6 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && !TSTAT.S.F05 - optional: true arguments: value: 1600 @@ -1575,7 +1484,6 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && TSTAT.S.F05 - optional: true arguments: value: 1600 response: @@ -1587,7 +1495,6 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0017 && !TSTAT.S.F05 - optional: true arguments: value: MinCoolSetpointLimit @@ -1623,7 +1530,6 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0006 - optional: true arguments: value: 3200 @@ -1633,14 +1539,12 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0006 - optional: true arguments: value: AbsMaxCoolSetpointLimit - label: "Writes (sets back) default value of MinHeatSetpointLimit" command: "writeAttribute" attribute: "MinHeatSetpointLimit" - optional: true PICS: TSTAT.S.F01 && TSTAT.S.A0015 arguments: value: 700 @@ -1649,7 +1553,6 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0016 && !TSTAT.S.F05 - optional: true arguments: value: 3000 @@ -1657,7 +1560,6 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0016 && !TSTAT.S.F05 - optional: true arguments: value: 2950 @@ -1665,7 +1567,6 @@ tests: command: "writeAttribute" attribute: "MinCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0017 - optional: true arguments: value: 1600 @@ -1673,7 +1574,6 @@ tests: command: "writeAttribute" attribute: "MaxCoolSetpointLimit" PICS: TSTAT.S.F01 && TSTAT.S.A0018 - optional: true arguments: value: 3200 @@ -1758,7 +1658,6 @@ tests: command: "writeAttribute" attribute: "ControlSequenceOfOperation" PICS: TSTAT.S.F00 || TSTAT.S.F01 - optional: true arguments: value: 2 @@ -1766,7 +1665,6 @@ tests: command: "readAttribute" attribute: "ControlSequenceOfOperation" PICS: TSTAT.S.F00 || TSTAT.S.F01 - optional: true response: value: 2 @@ -1776,14 +1674,12 @@ tests: command: "writeAttribute" attribute: "MaxHeatSetpointLimit" PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.F05 - optional: true arguments: value: 2950 - label: "Sets OccupiedCoolingSetpoint to default value" command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" - optional: true PICS: TSTAT.S.F01 arguments: value: 2600 @@ -1791,7 +1687,6 @@ tests: - label: "Sets OccupiedHeatingSetpoint to default value" command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" - optional: true PICS: TSTAT.S.F00 arguments: value: 2000 @@ -1811,7 +1706,6 @@ tests: write" command: "readAttribute" attribute: "OccupiedHeatingSetpoint" - optional: true PICS: TSTAT.S.F00 response: value: 1700 @@ -1820,7 +1714,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 - optional: true arguments: value: 2000 @@ -1840,7 +1733,6 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 - optional: true response: value: 2300 @@ -1860,14 +1752,12 @@ tests: command: "readAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 - optional: true response: value: 2300 - label: "Sets OccupiedCoolingSetpoint to default value" command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" - optional: true PICS: TSTAT.S.F01 arguments: value: 2600 @@ -1887,7 +1777,6 @@ tests: write" command: "readAttribute" attribute: "OccupiedCoolingSetpoint" - optional: true PICS: TSTAT.S.F01 response: value: 2900 @@ -1895,7 +1784,6 @@ tests: - label: "Sets OccupiedCoolingSetpoint to default value" command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" - optional: true PICS: TSTAT.S.F01 arguments: value: 2600 @@ -1903,7 +1791,6 @@ tests: - label: "Sets OccupiedHeatingSetpoint to default value" command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" - optional: true PICS: TSTAT.S.F00 arguments: value: 2000 @@ -1924,7 +1811,6 @@ tests: command: "readAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 - optional: true response: value: 2300 @@ -1934,7 +1820,6 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 - optional: true response: value: 1700 @@ -1942,7 +1827,6 @@ tests: command: "writeAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 - optional: true arguments: value: 2600 @@ -1950,7 +1834,6 @@ tests: command: "writeAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 - optional: true arguments: value: 2000 @@ -1970,7 +1853,6 @@ tests: command: "readAttribute" attribute: "OccupiedCoolingSetpoint" PICS: TSTAT.S.F01 - optional: true response: value: 2900 @@ -1980,6 +1862,5 @@ tests: command: "readAttribute" attribute: "OccupiedHeatingSetpoint" PICS: TSTAT.S.F00 - optional: true response: value: 2300 diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json index f06505c1a58fed..ad07f2e0cda474 100644 --- a/src/app/tests/suites/manualTests.json +++ b/src/app/tests/suites/manualTests.json @@ -281,7 +281,7 @@ "Test_TC_DGTHREAD_3_4", "Test_TC_DGTHREAD_3_5" ], - "Actions": ["Test_TC_ACT_2_1", "Test_TC_ACT_3_2"], + "Actions": ["Test_TC_ACT_2_1", "Test_TC_ACT_2_2", "Test_TC_ACT_3_2"], "TimeFormatLocalization": ["Test_TC_LTIME_2_1", "Test_TC_LTIME_3_1"], "UnitLocalization": [], "Binding": ["Test_TC_BIND_2_1", "Test_TC_BIND_2_2", "Test_TC_BIND_2_3"], diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 22e7e451a6a047..10ecfd078d797f 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -543,6 +543,7 @@ class ManualTestList : public Command printf("Test_TC_DGTHREAD_3_4\n"); printf("Test_TC_DGTHREAD_3_5\n"); printf("Test_TC_ACT_2_1\n"); + printf("Test_TC_ACT_2_2\n"); printf("Test_TC_ACT_3_2\n"); printf("Test_TC_LTIME_2_1\n"); printf("Test_TC_LTIME_3_1\n"); @@ -44436,10 +44437,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 13: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44450,10 +44447,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 14: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44464,17 +44457,9 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 15: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 16: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44496,17 +44481,9 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 21: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 22: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 23: @@ -44514,24 +44491,12 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 24: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 25: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 26: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44542,10 +44507,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 27: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44556,17 +44517,9 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 28: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 29: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44588,31 +44541,15 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 34: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 35: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 36: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 37: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 38: @@ -44623,10 +44560,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 40: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44637,10 +44570,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 41: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44651,17 +44580,9 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 42: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 43: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44683,20 +44604,12 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 48: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 49: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 50: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 51: @@ -44704,24 +44617,12 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 52: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 53: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 54: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44732,10 +44633,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 55: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44746,17 +44643,9 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 56: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 57: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44778,31 +44667,15 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 62: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 63: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 64: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 65: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 66: @@ -44813,10 +44686,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 68: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44827,10 +44696,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 69: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44841,17 +44706,9 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 70: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 71: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44876,31 +44733,15 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 77: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 78: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 79: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 80: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 81: @@ -44908,10 +44749,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 82: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44922,10 +44759,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 83: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44936,27 +44769,15 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 84: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 85: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 86: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 87: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -44978,31 +44799,15 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 92: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 93: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 94: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 95: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 96: @@ -45010,10 +44815,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 97: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45024,10 +44825,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 98: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45038,17 +44835,9 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 99: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 100: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45070,17 +44859,9 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 105: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 106: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 107: @@ -45088,24 +44869,12 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 108: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 109: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 110: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45116,10 +44885,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 111: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45130,17 +44895,9 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 112: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 113: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45162,20 +44919,12 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 118: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 119: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 120: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 121: @@ -45183,52 +44932,24 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand shouldContinue = true; break; case 122: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 123: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 124: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 125: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 126: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 127: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 128: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 129: @@ -45276,17 +44997,9 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 137: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 138: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::Thermostat::ThermostatControlSequence value; @@ -45295,34 +45008,18 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 139: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 140: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 141: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 142: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 143: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45331,20 +45028,12 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 144: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 145: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 146: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45356,10 +45045,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 148: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45368,20 +45053,12 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 149: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 150: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 151: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45390,27 +45067,15 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 152: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 153: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 154: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 155: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45419,10 +45084,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 156: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45431,27 +45092,15 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 157: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 158: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 159: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 160: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -45460,10 +45109,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand } break; case 161: - if (IsUnsupported(status.mStatus)) - { - return; - } VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { int16_t value; @@ -112453,6 +112098,61 @@ class Test_TC_ACT_2_1Suite : public TestCommand } }; +class Test_TC_ACT_2_2Suite : public TestCommand +{ +public: + Test_TC_ACT_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_2_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ACT_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + class Test_TC_ACT_3_2Suite : public TestCommand { public: @@ -113897,6 +113597,7 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), From 03ed046b3b46f619a207c5eb9f023cbe3640e53e Mon Sep 17 00:00:00 2001 From: manjunath-grl Date: Tue, 7 Feb 2023 19:19:57 +0530 Subject: [PATCH 5/6] Modified ACL test TC-ACL-2.8 TC-ACL-2.10 --- src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml | 1 + src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml | 1 + zzz_generated/chip-tool/zap-generated/test/Commands.h | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml index 525ba97ac98b8e..a514fec00b511c 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml @@ -96,6 +96,7 @@ tests: value: nodeId2 - label: "Read the TH2 commissioner node ID" + identity: "beta" cluster: "CommissionerCommands" command: "GetCommissionerNodeId" response: diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml index 9200ab0669cc45..b4865ea186de2b 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml @@ -85,6 +85,7 @@ tests: value: nodeId2 - label: "Read the TH2 commissioner node ID" + identity: "beta" cluster: "CommissionerCommands" command: "GetCommissionerNodeId" response: diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 10ecfd078d797f..40ed0889a9c4f4 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -6404,7 +6404,7 @@ class Test_TC_ACL_2_8Suite : public TestCommand LogStep(6, "Read the TH2 commissioner node ID"); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; - return GetCommissionerNodeId(kIdentityAlpha, value); + return GetCommissionerNodeId(kIdentityBeta, value); } case 7: { LogStep(7, "TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); @@ -7086,7 +7086,7 @@ class Test_TC_ACL_2_10Suite : public TestCommand LogStep(6, "Read the TH2 commissioner node ID"); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; - return GetCommissionerNodeId(kIdentityAlpha, value); + return GetCommissionerNodeId(kIdentityBeta, value); } case 7: { LogStep(7, "Step 4:TH2 reads OperationalCredentials cluster CurrentFabricIndex attribute"); From 624f7d34b01e8551fc265892691e9b5fc231ce3f Mon Sep 17 00:00:00 2001 From: manjunath-grl Date: Tue, 7 Feb 2023 19:56:54 +0530 Subject: [PATCH 6/6] Fixes issue #681 ACL-2.9 --- src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml | 6 +++--- zzz_generated/chip-tool/zap-generated/test/Commands.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml index 11f6c42de06c80..fe777c13bfa78f 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml @@ -121,7 +121,7 @@ tests: - label: "Step 7:TH1 reads DUT Endpoint 0 AccessControl cluster SubjectsPerAccessControlEntry attribute" - PICS: ACL.S.A0001 + PICS: ACL.S.A0002 command: "readAttribute" attribute: "SubjectsPerAccessControlEntry" response: @@ -131,7 +131,7 @@ tests: - label: "Step 8:TH1 reads DUT Endpoint 0 AccessControl cluster TargetsPerAccessControlEntry attribute" - PICS: ACL.S.A0001 + PICS: ACL.S.A0003 command: "readAttribute" attribute: "TargetsPerAccessControlEntry" response: @@ -141,7 +141,7 @@ tests: - label: "Step 9:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntriesPerFabric attribute" - PICS: ACL.S.A0001 + PICS: ACL.S.A0004 command: "readAttribute" attribute: "AccessControlEntriesPerFabric" response: diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 40ed0889a9c4f4..44c0fa6c10d911 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -6756,19 +6756,19 @@ class Test_TC_ACL_2_9Suite : public TestCommand } case 8: { LogStep(8, "Step 7:TH1 reads DUT Endpoint 0 AccessControl cluster SubjectsPerAccessControlEntry attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("ACL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::SubjectsPerAccessControlEntry::Id, true, chip::NullOptional); } case 9: { LogStep(9, "Step 8:TH1 reads DUT Endpoint 0 AccessControl cluster TargetsPerAccessControlEntry attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("ACL.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::TargetsPerAccessControlEntry::Id, true, chip::NullOptional); } case 10: { LogStep(10, "Step 9:TH1 reads DUT Endpoint 0 AccessControl cluster AccessControlEntriesPerFabric attribute"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("ACL.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::AccessControlEntriesPerFabric::Id, true, chip::NullOptional); }