From 831fd0509b7c221af93924b7d4ec34d3134b7aaa Mon Sep 17 00:00:00 2001 From: manjunath-grl <102359958+manjunath-grl@users.noreply.github.com> Date: Tue, 14 Feb 2023 01:36:19 +0530 Subject: [PATCH] Modified test Feb 10 (#24969) * Modified tests TC-BINFO-2.1 TC-DGTHREAD-2.1 TC-DRLK-2.2 TC-DRLK-2.3 TC-DRLK-2.9 TC-TSTAT-2.2 * Auto generated files * Restyled by whitespace * Modifed SC tests TC-SC-5.1 TC-SC-5.2 * Auto generated files --------- Co-authored-by: Restyled.io --- .../certification/Test_TC_BINFO_2_1.yaml | 2 +- .../certification/Test_TC_DGTHREAD_2_1.yaml | 8 +- .../certification/Test_TC_DRLK_2_2.yaml | 6 +- .../certification/Test_TC_DRLK_2_3.yaml | 2 +- .../certification/Test_TC_DRLK_2_9.yaml | 10 +- .../suites/certification/Test_TC_SC_5_1.yaml | 9 + .../suites/certification/Test_TC_SC_5_2.yaml | 2 +- .../certification/Test_TC_TSTAT_2_2.yaml | 298 +++++------ .../chip-tool/zap-generated/test/Commands.h | 502 +++++++++--------- .../zap-generated/test/Commands.h | 97 +++- 10 files changed, 505 insertions(+), 431 deletions(-) diff --git a/src/app/tests/suites/certification/Test_TC_BINFO_2_1.yaml b/src/app/tests/suites/certification/Test_TC_BINFO_2_1.yaml index 806f414e8797a7..d38c6794224acf 100644 --- a/src/app/tests/suites/certification/Test_TC_BINFO_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BINFO_2_1.yaml @@ -268,7 +268,7 @@ tests: "Verify that the Location is same as CountryCode value saved from step1" verification: | - ./chip-tool basic read location 1 0 + ./chip-tool basicinformation read location 1 0 On TH, Verify that TH reads Location from the DUT successfully, the name should be string and length is less than or equal to 2 bytes. [1656495999.760797][2249:2254] CHIP:DMG: } diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_1.yaml index fd7ba9158414f0..c17b363bbf9ac1 100644 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_1.yaml @@ -213,7 +213,7 @@ tests: "read NeighborTableList attribute from DUT and Verify that the NeighborTable List size is Zero or greater and verify each node types" verification: | - ./chip-tool threadnetworkdiagnostics read neighbor-table-list 54 0 + ./chip-tool threadnetworkdiagnostics read neighbor-table 54 0 Verify "NeighborTableList value is Zero or greater " on the TH(Chip-tool) Log: if the attribute has an entries verify the each node mentioned in the test plan. @@ -250,10 +250,10 @@ tests: value: "y" - label: - "Read RouteTableList attribute from DUT and Verify that the - RouteTableList List size is Zero or greater and verify each node types" + "Read RouteTable attribute from DUT and Verify that the RouteTableList + List size is Zero or greater and verify each node types" verification: | - ./chip-tool threadnetworkdiagnostics read route-table-list 54 0 + ./chip-tool threadnetworkdiagnostics read route-table 54 0 Verify "RouteTableList value is Zero or greater " on the TH(Chip-tool) Log: if the attribute has an entries verify the each node mentioned in the test plan. diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml index b73e9ec9966514..b7a3dfab2f38f2 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml @@ -236,7 +236,7 @@ tests: Repeat this step PIXIT.DRLK.WrongCodeEntryLimit times and Verify that DUT sends failure response to the TH" verification: | - ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 1234568 + ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 1234568 Verify " DUT sends failure response" on the TH(Chip-tool) Log: @@ -276,7 +276,7 @@ tests: "TH sends an Unlock Door Command from User1 to the DUT with the valid PINCode and verify the DUT response" verification: | - ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 123456 + ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 Verify " DUT sends failure response" on the TH(Chip-tool) Log: @@ -316,7 +316,7 @@ tests: [1661767967.006958][131055:131060] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Attribute 0x0000_0031 DataVersion: 683420143 [1661767967.006988][131055:131060] CHIP:TOO: UserCodeTemporaryDisableTime: 10 - ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 123456 + ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 Verify " DUT sends success response" on the TH(Chip-tool) Log: diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml index 764d81265c365e..6959fa0d7c61c2 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml @@ -375,7 +375,7 @@ tests: "TH sends the unlock Door command to the DUT with valid PINCode and Verify that DUT sends SUCCESS response to the TH" verification: | - ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 123456 + ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 Verify " DUT sends SUCCESS response" on the TH(Chip-tool) Log: diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml index 9f136c6fc9c1bf..2b65f9e6106277 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml @@ -201,7 +201,7 @@ tests: "TH sends Set Credential Command to DUT and Verify that the DUT sends Set Credential Response command with status as DUPLICATE or OCCUPIED" verification: | - ./chip-tool doorlock set-credential 0 '{ "CredentialType" : 1, "CredentialIndex" : 1 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 + ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1, "credentialIndex" : 1 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 Verify "DUT sends Set Credential Response command with response as DUPLICATE or OCCUPIED" on the TH(Chip-tool) Log: @@ -227,16 +227,14 @@ tests: Set Credential Response command with response as OCCUPIED if the CredentialIndex is repeated" verification: | - Mark as not applicable and proceed to next step - - ./chip-tool doorlock set-credential 0 '{ "CredentialType" : 1, "CredentialIndex" : 1 }' 123457 1 null null 1 1 --timedInteractionTimeoutMs 1000 + ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1, "credentialIndex" : 1}' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 Verify "DUT sends Set Credential Response command with response as DUPLICATE or OCCUPIED" on the TH(Chip-tool) Log: [1660216276.191641][71849:71854] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0023 [1660216276.191673][71849:71854] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Command 0x0000_0023 [1660216276.191725][71849:71854] CHIP:TOO: SetCredentialResponse: { - [1660216276.191752][71849:71854] CHIP:TOO: status: 3 + [1660216276.191752][71849:71854] CHIP:TOO: status: 2 [1660216276.191764][71849:71854] CHIP:TOO: userIndex: null [1660216276.191776][71849:71854] CHIP:TOO: nextCredentialIndex: 2 [1660216276.191798][71849:71854] CHIP:TOO: } @@ -258,7 +256,7 @@ tests: verification: | Mark as not applicable and proceed to next step - ./chip-tool doorlock set-credential 2 '{ "CredentialType" : 1, "CredentialIndex" : 3 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 + ./chip-tool doorlock set-credential 2 '{ "credentialType" : 1, "credentialIndex" : 3 }' 1234567 1 null null 1 1 --timedInteractionTimeoutMs 1000 Verify "DUT sends Set Credential Response command with response as OCCUPIED" on the TH(Chip-tool) Log: diff --git a/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml index ad7f54f76d78b0..b872325303cdfc 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml @@ -178,6 +178,15 @@ tests: EpochStartTime2: 2220002, } + - label: + "TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster" + cluster: "Group Key Management" + endpoint: 0 + command: "readAttribute" + attribute: "GroupKeyMap" + response: + value: [{ FabricIndex: 1, GroupId: 0x0103, GroupKeySetID: 0x01a3 }] + - label: "TH reads GroupTable attribute" cluster: "Group Key Management" endpoint: 0 diff --git a/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml index 9ecfb9df8ee8d4..c145e9ff429a84 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml @@ -58,7 +58,7 @@ tests: }, { FabricIndex: 1, - Privilege: 3, + Privilege: 4, AuthMode: 3, Subjects: [0x0103], Targets: null, 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..3a664f5e1898ef 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 @@ -230,6 +230,24 @@ tests: response: error: CONSTRAINT_ERROR + - label: + "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint + attribute" + command: "writeAttribute" + attribute: "OccupiedCoolingSetpoint" + PICS: TSTAT.S.F01 && !TSTAT.S.A0017 + arguments: + value: 3200 + + - label: + "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint + attribute" + command: "writeAttribute" + attribute: "OccupiedCoolingSetpoint" + PICS: TSTAT.S.F01 && TSTAT.S.A0017 + arguments: + value: MaxCoolSetpointLimit + - label: "Writes the limit of MinCoolSetpointLimit to OccupiedCoolingSetpoint attribute" @@ -272,24 +290,6 @@ tests: - name: "expectedValue" value: "y" - - label: - "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint - attribute" - command: "writeAttribute" - attribute: "OccupiedCoolingSetpoint" - PICS: TSTAT.S.F01 && !TSTAT.S.A0017 - arguments: - value: 3200 - - - label: - "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint - attribute" - command: "writeAttribute" - attribute: "OccupiedCoolingSetpoint" - PICS: TSTAT.S.F01 && TSTAT.S.A0017 - arguments: - value: MaxCoolSetpointLimit - #Using saved values when optional attributes are available - label: "Reads OccupiedHeatingSetpoint attribute from Server DUT and verifies @@ -392,24 +392,6 @@ tests: response: error: CONSTRAINT_ERROR - - label: - "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint - attribute" - command: "writeAttribute" - attribute: "OccupiedHeatingSetpoint" - PICS: TSTAT.S.F00 && !TSTAT.S.A0015 - arguments: - value: 700 - - - label: - "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint - attribute" - command: "writeAttribute" - attribute: "OccupiedHeatingSetpoint" - PICS: TSTAT.S.F00 && TSTAT.S.A0015 - arguments: - value: MinHeatSetpointLimit - - label: "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint attribute" @@ -472,6 +454,24 @@ tests: - name: "expectedValue" value: "y" + - label: + "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint + attribute" + command: "writeAttribute" + attribute: "OccupiedHeatingSetpoint" + PICS: TSTAT.S.F00 && !TSTAT.S.A0015 + arguments: + value: 700 + + - label: + "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint + attribute" + command: "writeAttribute" + attribute: "OccupiedHeatingSetpoint" + PICS: TSTAT.S.F00 && TSTAT.S.A0015 + arguments: + value: MinHeatSetpointLimit + - label: "Reads UnoccupiedCoolingSetpoint attribute from Server DUT and verifies that the value is within range" @@ -568,33 +568,22 @@ tests: error: CONSTRAINT_ERROR - label: - "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint - attribute" - command: "writeAttribute" - attribute: "UnoccupiedCoolingSetpoint" - PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.F05 - arguments: - value: 1600 - - - label: - "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint + "Writes the limit of MaxCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute" command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" - PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && TSTAT.S.F05 + PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0018 && !TSTAT.S.F05 arguments: - value: 1600 - response: - error: CONSTRAINT_ERROR + value: 3200 - label: - "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint + "Writes the limit of MaxCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute" command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" - PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.F05 + PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 arguments: - value: MinCoolSetpointLimit + value: MaxCoolSetpointLimit #LowerLimit = Max(MinCoolSetpointLimit,(UnoccupiedCoolingSetpoint + MinSetpointDeadBand)) not possible in YAML - label: @@ -624,22 +613,33 @@ tests: value: "y" - label: - "Writes the limit of MaxCoolSetpointLimit to UnoccupiedCoolingSetpoint + "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute" command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" - PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0018 && !TSTAT.S.F05 + PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.F05 arguments: - value: 3200 + value: 1600 - label: - "Writes the limit of MaxCoolSetpointLimit to UnoccupiedCoolingSetpoint + "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute" command: "writeAttribute" attribute: "UnoccupiedCoolingSetpoint" - PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05 + PICS: TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && TSTAT.S.F05 arguments: - value: MaxCoolSetpointLimit + value: 1600 + response: + error: CONSTRAINT_ERROR + + - label: + "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint + attribute" + command: "writeAttribute" + attribute: "UnoccupiedCoolingSetpoint" + PICS: TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.F05 + arguments: + value: MinCoolSetpointLimit #Using saved values when optional attributes are available - label: @@ -742,24 +742,6 @@ tests: response: error: CONSTRAINT_ERROR - - label: - "Writes the limit of MinHeatSetpointLimit to UnoccupiedHeatingSetpoint - attribute" - command: "writeAttribute" - attribute: "UnoccupiedHeatingSetpoint" - PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 - arguments: - value: 700 - - - label: - "Writes the limit of MinHeatSetpointLimit to UnoccupiedHeatingSetpoint - attribute" - command: "writeAttribute" - attribute: "UnoccupiedHeatingSetpoint" - PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015 - arguments: - value: MinHeatSetpointLimit - - label: "Writes the limit of MaxHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute" @@ -817,6 +799,24 @@ tests: - name: "expectedValue" value: "y" + - label: + "Writes the limit of MinHeatSetpointLimit to UnoccupiedHeatingSetpoint + attribute" + command: "writeAttribute" + attribute: "UnoccupiedHeatingSetpoint" + PICS: TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015 + arguments: + value: 700 + + - label: + "Writes the limit of MinHeatSetpointLimit to UnoccupiedHeatingSetpoint + attribute" + command: "writeAttribute" + attribute: "UnoccupiedHeatingSetpoint" + PICS: TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015 + arguments: + value: MinHeatSetpointLimit + #Using saved values when optional attributes are available - label: "Reads MinHeatSetpointLimit attribute from Server DUT and verifies @@ -926,24 +926,6 @@ tests: response: error: CONSTRAINT_ERROR - - label: - "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit - attribute" - command: "writeAttribute" - attribute: "MinHeatSetpointLimit" - PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0003 - arguments: - value: 700 - - - label: - "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit - attribute" - command: "writeAttribute" - attribute: "MinHeatSetpointLimit" - PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0003 - arguments: - value: AbsMinHeatSetpointLimitValue - - label: "Writes the limit of MaxHeatSetpointLimit to MinHeatSetpointLimit attribute" @@ -994,6 +976,24 @@ tests: - name: "expectedValue" value: "y" + - label: + "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit + attribute" + command: "writeAttribute" + attribute: "MinHeatSetpointLimit" + PICS: TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0003 + arguments: + value: 700 + + - label: + "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit + attribute" + command: "writeAttribute" + attribute: "MinHeatSetpointLimit" + PICS: TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0003 + arguments: + value: AbsMinHeatSetpointLimitValue + #Using saved values when optional attributes are available - label: "Reads MaxHeatSetpointLimit attribute from Server DUT and verifies @@ -1131,24 +1131,6 @@ tests: response: error: CONSTRAINT_ERROR - - label: - "Writes the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit - attribute" - command: "writeAttribute" - attribute: "MaxHeatSetpointLimit" - PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015 - arguments: - value: 700 - - - label: - "Writes the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit - attribute" - command: "writeAttribute" - attribute: "MaxHeatSetpointLimit" - PICS: TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0015 - arguments: - value: MinHeatSetpointLimit - - label: "Writes the limit of AbsMaxHeatSetpointLimit to MaxHeatSetpointLimit attribute" @@ -1200,6 +1182,24 @@ tests: - name: "expectedValue" value: "y" + - label: + "Writes the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit + attribute" + command: "writeAttribute" + attribute: "MaxHeatSetpointLimit" + PICS: TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015 + arguments: + value: 700 + + - label: + "Writes the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit + attribute" + command: "writeAttribute" + attribute: "MaxHeatSetpointLimit" + PICS: TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0015 + arguments: + value: MinHeatSetpointLimit + #Using saved values when optional attributes are available - label: "Reads MinCoolSetpointLimit attribute from Server DUT and verifies @@ -1305,6 +1305,24 @@ tests: response: error: CONSTRAINT_ERROR + - label: + "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit + attribute" + command: "writeAttribute" + attribute: "MinCoolSetpointLimit" + PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 + arguments: + value: 3200 + + - label: + "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit + attribute" + command: "writeAttribute" + attribute: "MinCoolSetpointLimit" + PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 + arguments: + value: MaxCoolSetpointLimit + - label: "Writes the limit of AbsMinCoolSetpointLimit to MinCoolSetpointLimit attribute" @@ -1350,24 +1368,6 @@ tests: - name: "expectedValue" value: "y" - - label: - "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit - attribute" - command: "writeAttribute" - attribute: "MinCoolSetpointLimit" - PICS: TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018 - arguments: - value: 3200 - - - label: - "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit - attribute" - command: "writeAttribute" - attribute: "MinCoolSetpointLimit" - PICS: TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018 - arguments: - value: MaxCoolSetpointLimit - #Using saved values when optional attributes are available - label: "Reads MaxCoolSetpointLimit attribute from Server DUT and verifies @@ -1469,6 +1469,24 @@ tests: response: error: CONSTRAINT_ERROR + - label: + "Writes the limit of AbsMaxCoolSetpointLimit to MaxCoolSetpointLimit + attribute" + command: "writeAttribute" + attribute: "MaxCoolSetpointLimit" + PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0006 + arguments: + value: 3200 + + - label: + "Writes the limit of AbsMaxCoolSetpointLimit to MaxCoolSetpointLimit + attribute" + command: "writeAttribute" + attribute: "MaxCoolSetpointLimit" + PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0006 + arguments: + value: AbsMaxCoolSetpointLimit + - label: "Writes the limit of MinCoolSetpointLimit to MaxCoolSetpointLimit attribute" @@ -1524,24 +1542,6 @@ tests: - name: "expectedValue" value: "y" - - label: - "Writes the limit of AbsMaxCoolSetpointLimit to MaxCoolSetpointLimit - attribute" - command: "writeAttribute" - attribute: "MaxCoolSetpointLimit" - PICS: TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0006 - arguments: - value: 3200 - - - label: - "Writes the limit of AbsMaxCoolSetpointLimit to MaxCoolSetpointLimit - attribute" - command: "writeAttribute" - attribute: "MaxCoolSetpointLimit" - PICS: TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0006 - arguments: - value: AbsMaxCoolSetpointLimit - - label: "Writes (sets back) default value of MinHeatSetpointLimit" command: "writeAttribute" attribute: "MinHeatSetpointLimit" diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 86ad2347ff496c..3da7d17159721e 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -41401,7 +41401,7 @@ class Test_TC_RH_2_1Suite : public TestCommand class Test_TC_SC_5_1Suite : public TestCommand { public: - Test_TC_SC_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_5_1", 18, credsIssuerConfig) + Test_TC_SC_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_5_1", 19, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -41513,6 +41513,23 @@ class Test_TC_SC_5_1Suite : public TestCommand } break; case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList< + chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType> + value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNextListItemDecodes("groupKeyMap", iter_0, 0)); + VerifyOrReturn(CheckValue("groupKeyMap[0].groupId", iter_0.GetValue().groupId, 259U)); + VerifyOrReturn(CheckValue("groupKeyMap[0].groupKeySetID", iter_0.GetValue().groupKeySetID, 419U)); + VerifyOrReturn(CheckValue("groupKeyMap[0].fabricIndex", iter_0.GetValue().fabricIndex, 1U)); + VerifyOrReturn(CheckNoMoreListItems("groupKeyMap", iter_0, 1)); + } + } + break; + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -41539,7 +41556,7 @@ class Test_TC_SC_5_1Suite : public TestCommand } } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList< @@ -41566,10 +41583,10 @@ class Test_TC_SC_5_1Suite : 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< @@ -41582,10 +41599,10 @@ class Test_TC_SC_5_1Suite : 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< @@ -41598,7 +41615,7 @@ class Test_TC_SC_5_1Suite : public TestCommand } } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; default: @@ -41804,19 +41821,24 @@ class Test_TC_SC_5_1Suite : public TestCommand ); } case 11: { - LogStep(11, "TH reads GroupTable attribute"); - VerifyOrDo(!ShouldSkip("G.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, - GroupKeyManagement::Attributes::GroupTable::Id, true, chip::NullOptional); + GroupKeyManagement::Attributes::GroupKeyMap::Id, true, chip::NullOptional); } case 12: { LogStep(12, "TH reads GroupTable attribute"); - VerifyOrDo(!ShouldSkip("!(G.S.F00)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("G.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Attributes::GroupTable::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "TH removes the GroupKeySet"); + LogStep(13, "TH reads GroupTable attribute"); + VerifyOrDo(!ShouldSkip("!(G.S.F00)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, + GroupKeyManagement::Attributes::GroupTable::Id, true, chip::NullOptional); + } + case 14: { + LogStep(14, "TH removes the GroupKeySet"); ListFreer listFreer; chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::Type value; value.groupKeySetID = 419U; @@ -41825,13 +41847,13 @@ class Test_TC_SC_5_1Suite : public TestCommand ); } - case 14: { - LogStep(14, "TH verifies the corresponding GroupKeyMap entry has been removed"); + case 15: { + LogStep(15, "TH verifies the corresponding GroupKeyMap entry has been removed"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Attributes::GroupKeyMap::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "TH cleans up groups using RemoveAllGroups command"); + case 16: { + LogStep(16, "TH cleans up groups using RemoveAllGroups command"); ListFreer listFreer; chip::app::Clusters::Groups::Commands::RemoveAllGroups::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveAllGroups::Id, value, @@ -41839,13 +41861,13 @@ class Test_TC_SC_5_1Suite : public TestCommand ); } - case 16: { - LogStep(16, "TH verifies the group has been removed in the GroupTable"); + case 17: { + LogStep(17, "TH verifies the group has been removed in the GroupTable"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Attributes::GroupTable::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "TH removes ACL Operate privileges for Group 0x0103"); + case 18: { + LogStep(18, "TH removes ACL Operate privileges for Group 0x0103"); ListFreer listFreer; chip::app::DataModel::List value; @@ -42033,7 +42055,7 @@ class Test_TC_SC_5_2Suite : public TestCommand listHolder_0->mList[0].fabricIndex = 1U; listHolder_0->mList[1].privilege = - static_cast(3); + static_cast(4); listHolder_0->mList[1].authMode = static_cast(3); listHolder_0->mList[1].subjects.SetNonNull(); @@ -44595,13 +44617,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand break; case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -44654,17 +44676,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 36: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 38: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 40: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -44714,17 +44736,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand 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)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 50: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 51: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 52: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 53: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -44780,17 +44802,17 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 64: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 65: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 66: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 67: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 68: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -44847,13 +44869,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand break; case 79: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 80: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 81: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 82: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -44913,13 +44935,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand break; case 94: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 95: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 96: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 97: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -44973,13 +44995,13 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand break; case 107: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 108: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 109: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 110: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -45029,20 +45051,20 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand 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)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 120: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 121: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_CONSTRAINT_ERROR)); break; case 122: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 123: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 124: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -45389,7 +45411,27 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand chip::NullOptional); } case 21: { - LogStep(21, "Writes the limit of MinCoolSetpointLimit to OccupiedCoolingSetpoint attribute"); + LogStep(21, "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && !TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + int16_t value; + value = 3200; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 22: { + LogStep(22, "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + int16_t value; + value = MaxCoolSetpointLimit; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, + Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 23: { + LogStep(23, "Writes the limit of MinCoolSetpointLimit to OccupiedCoolingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && !TSTAT.S.F05 && !TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -45399,8 +45441,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } - case 22: { - LogStep(22, "Writes the limit of MinCoolSetpointLimit to OccupiedCoolingSetpoint attribute"); + case 24: { + LogStep(24, "Writes the limit of MinCoolSetpointLimit to OccupiedCoolingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && !TSTAT.S.F05 && TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; @@ -45409,8 +45451,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } - case 23: { - LogStep(23, + case 25: { + LogStep(25, "Writes If TSTAT.S.F05(AUTO) LowerLimit = Max(MinCoolSetpointLimit, (OccupiedHeatingSetpoint + " "MinSetpointDeadBand)) to OccupiedCoolingSetpoint attribute when Auto is enabled"); VerifyOrDo(!ShouldSkip("TSTAT.S.F05 && TSTAT.S.A0012 && PICS_SKIP_SAMPLE_APP"), @@ -45422,26 +45464,6 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 24: { - LogStep(24, "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && !TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - int16_t value; - value = 3200; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, - chip::NullOptional); - } - case 25: { - LogStep(25, "Writes the limit of MaxCoolSetpointLimit to OccupiedCoolingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - int16_t value; - value = MaxCoolSetpointLimit; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedCoolingSetpoint::Id, value, chip::NullOptional, - chip::NullOptional); - } case 26: { LogStep(26, "Reads OccupiedHeatingSetpoint attribute from Server DUT and verifies that the value is within range"); VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016"), @@ -45514,27 +45536,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand chip::NullOptional); } case 34: { - LogStep(34, "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && !TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - int16_t value; - value = 700; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, - chip::NullOptional); - } - case 35: { - LogStep(35, "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - int16_t value; - value = MinHeatSetpointLimit; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, - chip::NullOptional); - } - case 36: { - LogStep(36, "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); + LogStep(34, "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && !TSTAT.S.F05 && !TSTAT.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -45544,8 +45546,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } - case 37: { - LogStep(37, "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); + case 35: { + LogStep(35, "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && !TSTAT.S.F05 && TSTAT.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; @@ -45554,8 +45556,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } - case 38: { - LogStep(38, "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); + case 36: { + LogStep(36, "Writes the limit of MaxHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.F05 && !TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; @@ -45564,8 +45566,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } - case 39: { - LogStep(39, + case 37: { + LogStep(37, "Writes If TSTAT.S.F05(AUTO) UpperLimit = Min(MaxHeatSetpointLimit, (OccupiedCoolingSetpoint - " "MinSetpointDeadBand)) to OccupiedHeatingSetpoint attribute when Auto is enabled"); VerifyOrDo(!ShouldSkip("TSTAT.S.F05 && TSTAT.S.A0011 && TSTAT.S.A0012 && PICS_SKIP_SAMPLE_APP"), @@ -45577,6 +45579,26 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } + case 38: { + LogStep(38, "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && !TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + int16_t value; + value = 700; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 39: { + LogStep(39, "Writes the limit of MinHeatSetpointLimit to OccupiedHeatingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + int16_t value; + value = MinHeatSetpointLimit; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, + Thermostat::Attributes::OccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); + } case 40: { LogStep(40, "Reads UnoccupiedCoolingSetpoint attribute from Server DUT and verifies that the value is within range"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018"), @@ -45649,40 +45671,29 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand chip::NullOptional); } case 48: { - LogStep(48, "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.F05"), + LogStep(48, "Writes the limit of MaxCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0018 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1600; + value = 3200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } case 49: { - LogStep(49, "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && TSTAT.S.F05"), + LogStep(49, "Writes the limit of MaxCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1600; + value = MaxCoolSetpointLimit; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } case 50: { - LogStep(50, "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.F05"), - return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - int16_t value; - value = MinCoolSetpointLimit; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, value, chip::NullOptional, - chip::NullOptional); - } - case 51: { - LogStep(51, + LogStep(50, "Writes If TSTAT.S.F05(AUTO) LowerLimit = Max(MinCoolSetpointLimit, (UnoccupiedCoolingSetpoint + " "MinSetpointDeadBand)) to UnoccupiedCoolingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0013 && TSTAT.S.F05 && PICS_SKIP_SAMPLE_APP"), @@ -45694,24 +45705,35 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } + case 51: { + LogStep(51, "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && !TSTAT.S.F05"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + int16_t value; + value = 1600; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, + Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); + } case 52: { - LogStep(52, "Writes the limit of MaxCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0018 && !TSTAT.S.F05"), + LogStep(52, "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && !TSTAT.S.A0017 && TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 3200; + value = 1600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } case 53: { - LogStep(53, "Writes the limit of MaxCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.F05"), + LogStep(53, "Writes the limit of MinCoolSetpointLimit to UnoccupiedCoolingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = MaxCoolSetpointLimit; + value = MinCoolSetpointLimit; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); @@ -45788,27 +45810,7 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand chip::NullOptional); } case 62: { - LogStep(62, "Writes the limit of MinHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - int16_t value; - value = 700; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, value, chip::NullOptional, - chip::NullOptional); - } - case 63: { - LogStep(63, "Writes the limit of MinHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - int16_t value; - value = MinHeatSetpointLimit; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, - Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, value, chip::NullOptional, - chip::NullOptional); - } - case 64: { - LogStep(64, "Writes the limit of MaxHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute"); + LogStep(62, "Writes the limit of MaxHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -45818,8 +45820,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } - case 65: { - LogStep(65, "Writes the limit of MaxHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute"); + case 63: { + LogStep(63, "Writes the limit of MaxHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -45829,8 +45831,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } - case 66: { - LogStep(66, "Writes the limit of MaxHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute"); + case 64: { + LogStep(64, "Writes the limit of MaxHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute"); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0016 && TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -45840,8 +45842,8 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, value, chip::NullOptional, chip::NullOptional); } - case 67: { - LogStep(67, + case 65: { + LogStep(65, "Writes If TSTAT.S.F05(AUTO) UpperLimit = Min(MaxHeatSetpointLimit, (UnoccupiedCoolingSetpoint - " "MinSetpointDeadBand)) to UnoccupiedHeatingSetpoint attribute when Auto is enabled."); VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0013 && TSTAT.S.F05 && PICS_SKIP_SAMPLE_APP"), @@ -45853,6 +45855,26 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } + case 66: { + LogStep(66, "Writes the limit of MinHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F00 && !TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + int16_t value; + value = 700; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, + Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 67: { + LogStep(67, "Writes the limit of MinHeatSetpointLimit to UnoccupiedHeatingSetpoint attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F02 && TSTAT.S.F00 && TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + int16_t value; + value = MinHeatSetpointLimit; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, + Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id, value, chip::NullOptional, + chip::NullOptional); + } case 68: { LogStep(68, "Reads MinHeatSetpointLimit attribute from Server DUT and verifies that the value is within range"); VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0016 && TSTAT.S.A0003"), @@ -45933,57 +45955,57 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand value, chip::NullOptional, chip::NullOptional); } case 77: { - LogStep(77, "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0003"), + LogStep(77, "Writes the limit of MaxHeatSetpointLimit to MinHeatSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.F05 && !TSTAT.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 700; + value = 3000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 78: { - LogStep(78, "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0003"), + LogStep(78, "Writes the limit of MaxHeatSetpointLimit to MinHeatSetpointimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.F05 && TSTAT.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = AbsMinHeatSetpointLimitValue; + value = MaxHeatSetpointLimit; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 79: { - LogStep(79, "Writes the limit of MaxHeatSetpointLimit to MinHeatSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.F05 && !TSTAT.S.A0016"), + LogStep(79, + "Writes If TSTAT.S.F05(AUTO) UpperLimit = Min(MaxHeatSetpointLimit, (MinCoolSetpointLimit - " + "MinSetpointDeadBand)) to MinHeatSetpointLimit attribute when Auto is enabled"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0005 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - int16_t value; - value = 3000; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, - value, chip::NullOptional, chip::NullOptional); + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 80: { - LogStep(80, "Writes the limit of MaxHeatSetpointLimit to MinHeatSetpointimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.F05 && TSTAT.S.A0016"), + LogStep(80, "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && !TSTAT.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = MaxHeatSetpointLimit; + value = 700; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 81: { - LogStep(81, - "Writes If TSTAT.S.F05(AUTO) UpperLimit = Min(MaxHeatSetpointLimit, (MinCoolSetpointLimit - " - "MinSetpointDeadBand)) to MinHeatSetpointLimit attribute when Auto is enabled"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.F05 && TSTAT.S.A0005 && PICS_SKIP_SAMPLE_APP"), + LogStep(81, "Writes the limit of AbsMinHeatSetpointLimit to MinHeatSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015 && TSTAT.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); + int16_t value; + value = AbsMinHeatSetpointLimitValue; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinHeatSetpointLimit::Id, + value, chip::NullOptional, chip::NullOptional); } case 82: { LogStep(82, "Reads MaxHeatSetpointLimit attribute from Server DUT and verifies that the value is within range"); @@ -46074,57 +46096,57 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand value, chip::NullOptional, chip::NullOptional); } case 92: { - LogStep(92, "Writes the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015"), + LogStep(92, "Writes the limit of AbsMaxHeatSetpointLimit to MaxHeatSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && !TSTAT.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 700; + value = 3000; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 93: { - LogStep(93, "Writes the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0015"), + LogStep(93, "Writes the limit of AbsMaxHeatSetpointLimit to MaxHeatSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && TSTAT.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = MinHeatSetpointLimit; + value = AbsMaxHeatSetpointLimitValue; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 94: { - LogStep(94, "Writes the limit of AbsMaxHeatSetpointLimit to MaxHeatSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && !TSTAT.S.A0004"), + LogStep(94, + "Writes If TSTAT.S.F05(AUTO) UpperLimit = Min(AbsMaxHeatSetpointLimit, (MaxCoolSetpointLimit - " + "MinSetpointDeadBand)) to MaxHeatSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.F05 && TSTAT.S.A0018 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - int16_t value; - value = 3000; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, - value, chip::NullOptional, chip::NullOptional); + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 95: { - LogStep(95, "Writes the limit of AbsMaxHeatSetpointLimit to MaxHeatSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.F05 && TSTAT.S.A0004"), + LogStep(95, "Writes the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016 && !TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = AbsMaxHeatSetpointLimitValue; + value = 700; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 96: { - LogStep(96, - "Writes If TSTAT.S.F05(AUTO) UpperLimit = Min(AbsMaxHeatSetpointLimit, (MaxCoolSetpointLimit - " - "MinSetpointDeadBand)) to MaxHeatSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.F05 && TSTAT.S.A0018 && PICS_SKIP_SAMPLE_APP"), + LogStep(96, "Writes the limit of MinHeatSetpointLimit to MaxHeatSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016 && TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); + int16_t value; + value = MinHeatSetpointLimit; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxHeatSetpointLimit::Id, + value, chip::NullOptional, chip::NullOptional); } case 97: { LogStep(97, "Reads MinCoolSetpointLimit attribute from Server DUT and verifies that the value is within range"); @@ -46197,57 +46219,57 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand value, chip::NullOptional, chip::NullOptional); } case 105: { - LogStep(105, "Writes the limit of AbsMinCoolSetpointLimit to MinCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0005 && !TSTAT.S.F05"), + LogStep(105, "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1600; + value = 3200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 106: { - LogStep(106, "Writes the limit of AbsMinCoolSetpointLimit to MinCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0005 && !TSTAT.S.F05"), + LogStep(106, "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = AbsMinCoolSetpointLimit; + value = MaxCoolSetpointLimit; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 107: { - LogStep(107, - "Writes If TSTAT.S.F05(AUTO) LowerLimit = Max(AbsMinCoolSetpointLimit, (MinHeatSetpointLimit + " - "MinSetpointDeadBand)) to MinCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0015 && TSTAT.S.F05 && PICS_SKIP_SAMPLE_APP"), + LogStep(107, "Writes the limit of AbsMinCoolSetpointLimit to MinCoolSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0005 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); + int16_t value; + value = 1600; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, + value, chip::NullOptional, chip::NullOptional); } case 108: { - LogStep(108, "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && !TSTAT.S.A0018"), + LogStep(108, "Writes the limit of AbsMinCoolSetpointLimit to MinCoolSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0005 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 3200; + value = AbsMinCoolSetpointLimit; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 109: { - LogStep(109, "Writes the limit of MaxCoolSetpointLimit to MinCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0018"), + LogStep(109, + "Writes If TSTAT.S.F05(AUTO) LowerLimit = Max(AbsMinCoolSetpointLimit, (MinHeatSetpointLimit + " + "MinSetpointDeadBand)) to MinCoolSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017 && TSTAT.S.A0015 && TSTAT.S.F05 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - int16_t value; - value = MaxCoolSetpointLimit; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MinCoolSetpointLimit::Id, - value, chip::NullOptional, chip::NullOptional); + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 110: { LogStep(110, "Reads MaxCoolSetpointLimit attribute from Server DUT and verifies that the value is within range"); @@ -46320,67 +46342,67 @@ class Test_TC_TSTAT_2_2Suite : public TestCommand value, chip::NullOptional, chip::NullOptional); } case 118: { - LogStep(118, "Writes the limit of MinCoolSetpointLimit to MaxCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && !TSTAT.S.F05"), + LogStep(118, "Writes the limit of AbsMaxCoolSetpointLimit to MaxCoolSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1600; + value = 3200; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 119: { - LogStep(119, "Writes the limit of MinCoolSetpointLimit to MaxCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && TSTAT.S.F05"), + LogStep(119, "Writes the limit of AbsMaxCoolSetpointLimit to MaxCoolSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 1600; + value = AbsMaxCoolSetpointLimit; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 120: { LogStep(120, "Writes the limit of MinCoolSetpointLimit to MaxCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0017 && !TSTAT.S.F05"), + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = MinCoolSetpointLimit; + value = 1600; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 121: { - LogStep(121, - "Writes If TSTAT.S.F05(AUTO) LowerLimit = Max(MinCoolSetpointLimit, (MaxHeatSetpointLimit + " - "MinSetpointDeadBand)) to MaxCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0016 && TSTAT.S.F05 && PICS_SKIP_SAMPLE_APP"), + LogStep(121, "Writes the limit of MinCoolSetpointLimit to MaxCoolSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0017 && TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); + int16_t value; + value = 1600; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, + value, chip::NullOptional, chip::NullOptional); } case 122: { - LogStep(122, "Writes the limit of AbsMaxCoolSetpointLimit to MaxCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && !TSTAT.S.A0006"), + LogStep(122, "Writes the limit of MinCoolSetpointLimit to MaxCoolSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0017 && !TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; int16_t value; - value = 3200; + value = MinCoolSetpointLimit; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, value, chip::NullOptional, chip::NullOptional); } case 123: { - LogStep(123, "Writes the limit of AbsMaxCoolSetpointLimit to MaxCoolSetpointLimit attribute"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0006"), + LogStep(123, + "Writes If TSTAT.S.F05(AUTO) LowerLimit = Max(MinCoolSetpointLimit, (MaxHeatSetpointLimit + " + "MinSetpointDeadBand)) to MaxCoolSetpointLimit attribute"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018 && TSTAT.S.A0016 && TSTAT.S.F05 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - int16_t value; - value = AbsMaxCoolSetpointLimit; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::MaxCoolSetpointLimit::Id, - value, chip::NullOptional, chip::NullOptional); + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 124: { LogStep(124, "Writes (sets back) default value of MinHeatSetpointLimit"); @@ -48347,8 +48369,8 @@ class Test_TC_DGTHREAD_2_1Suite : public TestCommand } case 13: { LogStep(13, - "Read RouteTableList attribute from DUT and Verify that the RouteTableList List size is Zero or greater and " - "verify each node types"); + "Read RouteTable attribute from DUT and Verify that the RouteTableList List size is Zero or greater and verify " + "each node types"); VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DGTHREAD.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h index acafe3027f2fa6..f5aab183be8509 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -58504,40 +58504,44 @@ class Test_TC_SC_5_1 : public TestCommandBridge { err = TestThSendsKeySetRead_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : TH reads GroupTable attribute\n"); - if (ShouldSkip("G.S.F00")) { - NextTest(); - return; - } - err = TestThReadsGroupTableAttribute_11(); + ChipLogProgress(chipTool, " ***** Test Step 11 : TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster\n"); + err = TestThReadsGroupKeyMapAttributeFromTheGroupKeyManagementCluster_11(); break; case 12: ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads GroupTable attribute\n"); - if (ShouldSkip("!(G.S.F00)")) { + if (ShouldSkip("G.S.F00")) { NextTest(); return; } err = TestThReadsGroupTableAttribute_12(); break; case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : TH removes the GroupKeySet\n"); - err = TestThRemovesTheGroupKeySet_13(); + ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads GroupTable attribute\n"); + if (ShouldSkip("!(G.S.F00)")) { + NextTest(); + return; + } + err = TestThReadsGroupTableAttribute_13(); break; case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : TH verifies the corresponding GroupKeyMap entry has been removed\n"); - err = TestThVerifiesTheCorrespondingGroupKeyMapEntryHasBeenRemoved_14(); + ChipLogProgress(chipTool, " ***** Test Step 14 : TH removes the GroupKeySet\n"); + err = TestThRemovesTheGroupKeySet_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : TH cleans up groups using RemoveAllGroups command\n"); - err = TestThCleansUpGroupsUsingRemoveAllGroupsCommand_15(); + ChipLogProgress(chipTool, " ***** Test Step 15 : TH verifies the corresponding GroupKeyMap entry has been removed\n"); + err = TestThVerifiesTheCorrespondingGroupKeyMapEntryHasBeenRemoved_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : TH verifies the group has been removed in the GroupTable\n"); - err = TestThVerifiesTheGroupHasBeenRemovedInTheGroupTable_16(); + ChipLogProgress(chipTool, " ***** Test Step 16 : TH cleans up groups using RemoveAllGroups command\n"); + err = TestThCleansUpGroupsUsingRemoveAllGroupsCommand_16(); break; case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : TH removes ACL Operate privileges for Group 0x0103\n"); - err = TestThRemovesAclOperatePrivilegesForGroup0x0103_17(); + ChipLogProgress(chipTool, " ***** Test Step 17 : TH verifies the group has been removed in the GroupTable\n"); + err = TestThVerifiesTheGroupHasBeenRemovedInTheGroupTable_17(); + break; + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : TH removes ACL Operate privileges for Group 0x0103\n"); + err = TestThRemovesAclOperatePrivilegesForGroup0x0103_18(); break; } @@ -58604,6 +58608,9 @@ class Test_TC_SC_5_1 : public TestCommandBridge { case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -58617,7 +58624,7 @@ class Test_TC_SC_5_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 18; + const uint16_t mTestCount = 19; chip::Optional mNodeId; chip::Optional mCluster; @@ -58965,7 +58972,45 @@ class Test_TC_SC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsGroupTableAttribute_11() + CHIP_ERROR TestThReadsGroupKeyMapAttributeFromTheGroupKeyManagementCluster_11() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRReadParams alloc] init]; + params.filterByFabric = true; + [cluster + readAttributeGroupKeyMapWithParams:params + completion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn( + CheckValue("GroupKeyMap", [actualValue count], static_cast(1))); + VerifyOrReturn(CheckValue("GroupId", + ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) actualValue[0]).groupId, 259U)); + VerifyOrReturn(CheckValue("GroupKeySetID", + ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) actualValue[0]).groupKeySetID, + 419U)); + VerifyOrReturn(CheckValue("FabricIndex", + ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) actualValue[0]).fabricIndex, + 1U)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsGroupTableAttribute_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -59006,7 +59051,7 @@ class Test_TC_SC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsGroupTableAttribute_12() + CHIP_ERROR TestThReadsGroupTableAttribute_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -59046,7 +59091,7 @@ class Test_TC_SC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThRemovesTheGroupKeySet_13() + CHIP_ERROR TestThRemovesTheGroupKeySet_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -59069,7 +59114,7 @@ class Test_TC_SC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThVerifiesTheCorrespondingGroupKeyMapEntryHasBeenRemoved_14() + CHIP_ERROR TestThVerifiesTheCorrespondingGroupKeyMapEntryHasBeenRemoved_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -59099,7 +59144,7 @@ class Test_TC_SC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThCleansUpGroupsUsingRemoveAllGroupsCommand_15() + CHIP_ERROR TestThCleansUpGroupsUsingRemoveAllGroupsCommand_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -59117,7 +59162,7 @@ class Test_TC_SC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThVerifiesTheGroupHasBeenRemovedInTheGroupTable_16() + CHIP_ERROR TestThVerifiesTheGroupHasBeenRemovedInTheGroupTable_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -59146,7 +59191,7 @@ class Test_TC_SC_5_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThRemovesAclOperatePrivilegesForGroup0x0103_17() + CHIP_ERROR TestThRemovesAclOperatePrivilegesForGroup0x0103_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -59386,7 +59431,7 @@ class Test_TC_SC_5_2 : public TestCommandBridge { ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).fabricIndex = [NSNumber numberWithUnsignedChar:1U]; temp_0[1] = [[MTRAccessControlClusterAccessControlEntryStruct alloc] init]; - ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).privilege = [NSNumber numberWithUnsignedChar:3U]; + ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).privilege = [NSNumber numberWithUnsignedChar:4U]; ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).authMode = [NSNumber numberWithUnsignedChar:3U]; { NSMutableArray * temp_3 = [[NSMutableArray alloc] init];