diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml index d54e779a15d2e1..ee30eddb496568 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_1.yaml @@ -30,6 +30,10 @@ config: type: int64u defaultValue: "0x0000000000000003" + payloadValue: + type: char_string + defaultValue: "MT:-24J0AFN00KA0648G00" + tests: - label: "Wait for the commissioned device to be retrieved" cluster: "DelayCommands" @@ -47,9 +51,7 @@ tests: - label: "Step 1a: Reset Devices to factory defaults" PICS: PICS_USER_PROMPT verification: | - Reset DUT to factory defaults - - Set the DUT to Discoverable mode. + Reset Devices to factory defaults cluster: "LogCommands" command: "UserPrompt" arguments: @@ -59,6 +61,16 @@ tests: - name: "expectedValue" value: "y" + - label: "Recommission the DUT" + cluster: "CommissionerCommands" + command: "PairWithCode" + arguments: + values: + - name: "nodeId" + value: nodeId + - name: "payload" + value: payloadValue + - label: "Step 1b: Wait for the commissioned device to be retrieved" cluster: "DelayCommands" command: "WaitForCommissionee" @@ -428,9 +440,7 @@ tests: - label: "Step 10b: Reset Devices to factory defaults" PICS: PICS_USER_PROMPT verification: | - Reset DUT to factory defaults - - Set the DUT to Discoverable mode. + Reset Devices to factory defaults cluster: "LogCommands" command: "UserPrompt" arguments: @@ -440,7 +450,17 @@ tests: - name: "expectedValue" value: "y" - - label: "Step 10b: Wait for the commissioned device to be retrieved" + - label: "Recommission the DUT" + cluster: "CommissionerCommands" + command: "PairWithCode" + arguments: + values: + - name: "nodeId" + value: nodeId + - name: "payload" + value: payloadValue + + - label: "Wait for the commissioned device to be retrieved" cluster: "DelayCommands" command: "WaitForCommissionee" arguments: diff --git a/src/app/tests/suites/certification/Test_TC_REFALM_2_2.yaml b/src/app/tests/suites/certification/Test_TC_REFALM_2_2.yaml index ac82c955979496..da9473dc7e9d22 100644 --- a/src/app/tests/suites/certification/Test_TC_REFALM_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_REFALM_2_2.yaml @@ -24,6 +24,11 @@ config: endpoint: 0 tests: + - label: "Note" + verification: | + This is a simulated example log for instructional purposes only. In real scenarios, the actual log may vary depending on the feature implementation in Reference App. + disabled: true + - label: "Step 1: Commission DUT to TH (can be skipped if done in a preceding test)" diff --git a/src/app/tests/suites/certification/Test_TC_REFALM_2_3.yaml b/src/app/tests/suites/certification/Test_TC_REFALM_2_3.yaml index ef4b026cf81dc5..d55390534ed735 100644 --- a/src/app/tests/suites/certification/Test_TC_REFALM_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_REFALM_2_3.yaml @@ -35,58 +35,93 @@ tests: - label: "Step 2: Ensure that the door on the DUT is closed" verification: | - + Ensure that the door on the DUT is closed disabled: true - label: "Step 3: TH reads from the DUT the State attribute" PICS: REFALM.S.A0002 verification: | - Verify that the DUT response contains a 32-bit value with bit 0 set to 0 + ./chip-tool refrigeratoralarm read state 1 1 + On TH(chip-tool), Verify that the DUT response contains a 32-bit value with bit 0 set to 0. + + [1688447820.603249][4247:4249] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_0002 DataVersion: 1795162772 + [1688447820.603415][4247:4249] CHIP:TOO: State: 0 + [1688447820.603708][4247:4249] CHIP:EM: <<< [E:2198i S:4260 M:156565261 (Ack:46517349)] (S) Msg TX to 1:0000000000000001 [10DB] --- Type 0000:10 (SecureChannel:StandaloneAck) disabled: true - label: "Step 4: TH reads from the DUT the Mask attribute" PICS: REFALM.S.A0000 verification: | - Verify that the DUT response contains a 32-bit value with bit 0 set to 1 + ./chip-tool refrigeratoralarm read mask 1 1 + On TH(chip-tool), Verify that the DUT response contains a 32-bit value with bit 0 set to 1. + + [1688447677.832882][4229:4231] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_0000 DataVersion: 1795162772 + [1688447677.833165][4229:4231] CHIP:TOO: Mask: 1 + [1688447677.833494][4229:4231] CHIP:EM: <<< [E:27636i S:5449 M:199797248 (Ack:151091416)] (S) Msg TX to 1:0000000000000001 [10DB] --- Type 0000:10 (SecureChannel:StandaloneAck) disabled: true - label: "Step 5: Manually open the door on the DUT" verification: | - + Manually open the door on the DUT disabled: true - label: "Step 6: Wait for the time defined in PIXIT.REFALM.AlarmThreshold" verification: | - + Wait for the time defined in PIXIT.REFALM.AlarmThreshold disabled: true - label: "Step 7: TH reads from the DUT the State attribute" PICS: REFALM.S.A0002 verification: | - Verify that the DUT response contains a 32-bit value with bit 0 set to 1 + ./chip-tool refrigeratoralarm read state 1 1 + On TH(chip-tool), Verify that the DUT response contains a 32-bit value with bit 0 set to 0. + + [1688447820.603249][4247:4249] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_0002 DataVersion: 1795162772 + [1688447820.603415][4247:4249] CHIP:TOO: State: 1 + [1688447820.603708][4247:4249] CHIP:EM: <<< [E:2198i S:4260 M:156565261 (Ack:46517349)] (S) Msg TX to 1:0000000000000001 [10DB] --- Type 0000:10 (SecureChannel:StandaloneAck) disabled: true - label: "Step 8: Invoke the on DUT sequence to suppress the alarm, do not close the door" verification: | - + Invoke the on DUT sequence to suppress the alarm, do not close the door disabled: true - label: "Step 9: TH reads from the DUT the State attribute" PICS: REFALM.S.A0002 verification: | - Verify that the DUT response contains a 32-bit value with bit 0 set to 0 + ./chip-tool refrigeratoralarm read state 1 1 + On TH(chip-tool), Verify that the DUT response contains a 32-bit value with bit 0 set to 0. + + [1688447820.603249][4247:4249] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_0002 DataVersion: 1795162772 + [1688447820.603415][4247:4249] CHIP:TOO: State: 0 + [1688447820.603708][4247:4249] CHIP:EM: <<< [E:2198i S:4260 M:156565261 (Ack:46517349)] (S) Msg TX to 1:0000000000000001 [10DB] --- Type 0000:10 (SecureChannel:StandaloneAck) disabled: true - label: "Step 10: TH reads from the DUT the Mask attribute" PICS: REFALM.S.A0000 verification: | - Verify that the DUT response contains a 32-bit value with bit 0 set to 0 + ./chip-tool refrigeratoralarm read mask 1 1 + On TH(chip-tool), Verify that the DUT response contains a 32-bit value with bit 0 set to 1. + + [1688447677.832882][4229:4231] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_0000 DataVersion: 1795162772 + [1688447677.833165][4229:4231] CHIP:TOO: Mask: 0 + [1688447677.833494][4229:4231] CHIP:EM: <<< [E:27636i S:5449 M:199797248 (Ack:151091416)] (S) Msg TX to 1:0000000000000001 [10DB] --- Type 0000:10 (SecureChannel:StandaloneAck) disabled: true - label: "Step 11: TH reads from the DUT the Supported attribute" PICS: REFALM.S.A0003 verification: | - Verify that the DUT response contains a 32-bit value with bit 0 set to 1 + ./chip-tool refrigeratoralarm read supported 1 1 + On TH(chip-tool), Verify that the DUT response contains a 32-bit value with bit 0 set to 1. + + [1689677642.708638][18413:18415] CHIP:DMG: SuppressResponse = true, + [1689677642.708645][18413:18415] CHIP:DMG: InteractionModelRevision = 1 + [1689677642.708651][18413:18415] CHIP:DMG: } + [1689677642.708726][18413:18415] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_0003 DataVersion: 1517282962 + [1689677642.708773][18413:18415] CHIP:TOO: Supported: 1 + [1689677642.708845][18413:18415] CHIP:EM: <<< [E:32432i S:53289 M:29829407 (Ack:142651059)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689677642.708859][18413:18415] CHIP:IN: (S) Sending msg 29829407 on secure session with LSID: 53289 + [1689677642.708900][18413:18415] CHIP:EM: Flushed pending ack for MessageCounter:142651059 on exchange 32432i disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml index f6d1aae6b8a9b2..2081e133f84876 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml @@ -553,8 +553,16 @@ tests: type: list contains: [30] + - label: "Step 5a: Read the mandatory commands in AcceptedCommandList" + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [0] + - label: - "Step 5a: Read Feature dependent(TSTAT.S.F03(SCH)) commands in + "Step 5b: Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList" PICS: TSTAT.S.F03 command: "readAttribute" @@ -562,9 +570,11 @@ tests: response: constraints: type: list - contains: [0, 1, 2, 3] + contains: [1, 2, 3] - - label: "Step 5b: Read the optional attribute: AcceptedCommandList" + - label: + "Step 5c: Read the optional (GetRelayStatusLog) command in + AcceptedCommandList" PICS: TSTAT.S.C04.Rsp command: "readAttribute" attribute: "AcceptedCommandList" 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 574725b5c06b84..56187bddae7a31 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 @@ -1736,20 +1736,52 @@ tests: anyOf: [4, 5] - label: - "Step 12: Write Attribute command for ControlSequenceOfOperation with - a new valid value" + "Step 12: TH writes value 1 for attribute ControlSequenceOfOperation. + If TSTAT.S.F00 is true & TSTAT.S.F01 is false" command: "writeAttribute" attribute: "ControlSequenceOfOperation" - PICS: TSTAT.S.F00 || TSTAT.S.F01 + PICS: TSTAT.S.F00 && !TSTAT.S.F01 arguments: - value: 2 + value: 1 - label: "Step 12: Read it back again to confirm the successful write" command: "readAttribute" attribute: "ControlSequenceOfOperation" - PICS: TSTAT.S.F00 || TSTAT.S.F01 + PICS: TSTAT.S.F00 && !TSTAT.S.F01 + response: + value: 1 + + - label: + "Step 12: TH writes value 3 for attribute ControlSequenceOfOperation. + If TSTAT.S.F01 is true & TSTAT.S.F00 is false" + command: "writeAttribute" + attribute: "ControlSequenceOfOperation" + PICS: TSTAT.S.F01 && !TSTAT.S.F00 + arguments: + value: 3 + + - label: "Step 12: Read it back again to confirm the successful write" + command: "readAttribute" + attribute: "ControlSequenceOfOperation" + PICS: TSTAT.S.F01 && !TSTAT.S.F00 + response: + value: 3 + + - label: + "Step 12: TH writes value 4 for attribute ControlSequenceOfOperation. + If TSTAT.S.F01 & TSTAT.S.F00 are true" + command: "writeAttribute" + attribute: "ControlSequenceOfOperation" + PICS: TSTAT.S.F00 && TSTAT.S.F01 + arguments: + value: 4 + + - label: "Step 12: Read it back again to confirm the successful write" + command: "readAttribute" + attribute: "ControlSequenceOfOperation" + PICS: TSTAT.S.F00 && TSTAT.S.F01 response: - value: 2 + value: 4 - label: "Writes MaxHeatSetpointLimit attribute to default value of 2950 to diff --git a/src/app/tests/suites/certification/Test_TC_TSUIC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TSUIC_1_1.yaml index e88ffbd7703897..56d387720a5e23 100644 --- a/src/app/tests/suites/certification/Test_TC_TSUIC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSUIC_1_1.yaml @@ -31,7 +31,7 @@ tests: - name: "nodeId" value: nodeId - - label: "Step 2: TH read ClusterRevision attribute from the DUT" + - label: "Step 2: TH reads from the DUT the ClusterRevision attribute." command: "readAttribute" attribute: "ClusterRevision" response: @@ -39,7 +39,7 @@ tests: constraints: type: int16u - - label: "Step 3: Read FeatureMap attribute from the DUT" + - label: "Step 3: TH reads from the DUT the FeatureMap attribute." command: "readAttribute" attribute: "FeatureMap" response: @@ -47,25 +47,36 @@ tests: constraints: type: bitmap32 - - label: "Step 4: Read the global attribute: AttributeList" + - label: "Step 4a: TH reads from the DUT the AttributeList attribute." PICS: PICS_EVENT_LIST_ENABLED command: "readAttribute" attribute: "AttributeList" response: constraints: type: list - contains: [0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533] + contains: [0, 1, 65528, 65529, 65530, 65531, 65532, 65533] - - label: "Step 4: Read the global attribute: AttributeList" + - label: "Step 4a: TH reads from the DUT the AttributeList attribute." PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: constraints: type: list - contains: [0, 1, 2, 65528, 65529, 65531, 65532, 65533] + contains: [0, 1, 65528, 65529, 65531, 65532, 65533] - - label: "Step 5: Read the global attribute: AcceptedCommandList" + - label: + "Step 4b: TH reads optional attribute(ScheduleProgrammingVisibility) + in AttributeList" + PICS: TSUIC.S.A0002 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [2] + + - label: "Step 5: TH reads from the DUT the AcceptedCommandList attribute." command: "readAttribute" attribute: "AcceptedCommandList" response: @@ -73,7 +84,7 @@ tests: constraints: type: list - - label: "Step 6: Read the global attribute: GeneratedCommandList" + - label: "Step 6: TH reads from the DUT the GeneratedCommandList attribute." command: "readAttribute" attribute: "GeneratedCommandList" response: diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_3_4.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_3_4.yaml index 1a2431a63c9386..7f0951646ba01b 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_3_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_3_4.yaml @@ -25,7 +25,7 @@ config: endpoint: 1 fastMotionDuration: type: int16u - defaultValue: 3000 + defaultValue: 5000 fullMotionDuration: type: int16u defaultValue: 6000 diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_3_5.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_3_5.yaml index 54ce50c8176b59..735fb0aaff648f 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_3_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_3_5.yaml @@ -25,7 +25,7 @@ config: endpoint: 1 fastMotionDuration: type: int16u - defaultValue: 3000 + defaultValue: 5000 fullMotionDuration: type: int16u defaultValue: 6000 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 01902b12bbeeb9..8157a21713bcc6 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -94789,47 +94789,51 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { err = TestStep4rReadTheFeatureDependentTSTATSF05AUTOOptionalAttributeInAttributeList_52(); break; case 53: - ChipLogProgress(chipTool, " ***** Test Step 53 : Step 5a: Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList\n"); + ChipLogProgress(chipTool, " ***** Test Step 53 : Step 5a: Read the mandatory commands in AcceptedCommandList\n"); + err = TestStep5aReadTheMandatoryCommandsInAcceptedCommandList_53(); + break; + case 54: + ChipLogProgress(chipTool, " ***** Test Step 54 : Step 5b: Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList\n"); if (ShouldSkip("TSTAT.S.F03")) { NextTest(); return; } - err = TestStep5aReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_53(); + err = TestStep5bReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_54(); break; - case 54: - ChipLogProgress(chipTool, " ***** Test Step 54 : Step 5b: Read the optional attribute: AcceptedCommandList\n"); + case 55: + ChipLogProgress(chipTool, " ***** Test Step 55 : Step 5c: Read the optional (GetRelayStatusLog) command in AcceptedCommandList\n"); if (ShouldSkip("TSTAT.S.C04.Rsp")) { NextTest(); return; } - err = TestStep5bReadTheOptionalAttributeAcceptedCommandList_54(); + err = TestStep5cReadTheOptionalGetRelayStatusLogCommandInAcceptedCommandList_55(); break; - case 55: - ChipLogProgress(chipTool, " ***** Test Step 55 : Step 6a: Read the global attribute: GeneratedCommandList\n"); + case 56: + ChipLogProgress(chipTool, " ***** Test Step 56 : Step 6a: Read the global attribute: GeneratedCommandList\n"); if (ShouldSkip(" !TSTAT.S.C04.Rsp && !TSTAT.S.C02.Rsp ")) { NextTest(); return; } - err = TestStep6aReadTheGlobalAttributeGeneratedCommandList_55(); + err = TestStep6aReadTheGlobalAttributeGeneratedCommandList_56(); break; - case 56: - ChipLogProgress(chipTool, " ***** Test Step 56 : Step 6b: Read Feature dependent(TSTAT.S.F03(SCH)) commands in GeneratedCommandList\n"); + case 57: + ChipLogProgress(chipTool, " ***** Test Step 57 : Step 6b: Read Feature dependent(TSTAT.S.F03(SCH)) commands in GeneratedCommandList\n"); if (ShouldSkip("TSTAT.S.F03")) { NextTest(); return; } - err = TestStep6bReadFeatureDependentTSTATSF03SCHCommandsInGeneratedCommandList_56(); + err = TestStep6bReadFeatureDependentTSTATSF03SCHCommandsInGeneratedCommandList_57(); break; - case 57: - ChipLogProgress(chipTool, " ***** Test Step 57 : Step 6c: Read optional command (GetRelayStatusLogResponse) in GeneratedCommandList\n"); + case 58: + ChipLogProgress(chipTool, " ***** Test Step 58 : Step 6c: Read optional command (GetRelayStatusLogResponse) in GeneratedCommandList\n"); if (ShouldSkip("TSTAT.S.C04.Rsp")) { NextTest(); return; } - err = TestStep6cReadOptionalCommandGetRelayStatusLogResponseInGeneratedCommandList_57(); + err = TestStep6cReadOptionalCommandGetRelayStatusLogResponseInGeneratedCommandList_58(); break; - case 58: - ChipLogProgress(chipTool, " ***** Test Step 58 : Step 7: Read EventList attribute from the DUT.\n"); + case 59: + ChipLogProgress(chipTool, " ***** Test Step 59 : Step 7: Read EventList attribute from the DUT.\n"); if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { NextTest(); return; @@ -95024,6 +95028,9 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { case 58: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 59: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -95034,7 +95041,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 59; + const uint16_t mTestCount = 60; chip::Optional mNodeId; chip::Optional mCluster; @@ -96156,7 +96163,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5aReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_53() + CHIP_ERROR TestStep5aReadTheMandatoryCommandsInAcceptedCommandList_53() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96164,12 +96171,32 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 5a: Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList Error: %@", err); + NSLog(@"Step 5a: Read the mandatory commands in AcceptedCommandList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("acceptedCommandList", "list", "list")); VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 0UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep5bReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_54() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 5b: Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "list", "list")); VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 1UL)); VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 2UL)); VerifyOrReturn(CheckConstraintContains("acceptedCommandList", value, 3UL)); @@ -96180,7 +96207,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5bReadTheOptionalAttributeAcceptedCommandList_54() + CHIP_ERROR TestStep5cReadTheOptionalGetRelayStatusLogCommandInAcceptedCommandList_55() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96188,7 +96215,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 5b: Read the optional attribute: AcceptedCommandList Error: %@", err); + NSLog(@"Step 5c: Read the optional (GetRelayStatusLog) command in AcceptedCommandList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -96201,7 +96228,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6aReadTheGlobalAttributeGeneratedCommandList_55() + CHIP_ERROR TestStep6aReadTheGlobalAttributeGeneratedCommandList_56() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96225,7 +96252,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bReadFeatureDependentTSTATSF03SCHCommandsInGeneratedCommandList_56() + CHIP_ERROR TestStep6bReadFeatureDependentTSTATSF03SCHCommandsInGeneratedCommandList_57() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96246,7 +96273,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6cReadOptionalCommandGetRelayStatusLogResponseInGeneratedCommandList_57() + CHIP_ERROR TestStep6cReadOptionalCommandGetRelayStatusLogResponseInGeneratedCommandList_58() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96313,39 +96340,47 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { err = TestStep1WaitForTheCommissionedDeviceToBeRetrieved_0(); break; case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : Step 2: TH read ClusterRevision attribute from the DUT\n"); - err = TestStep2ThReadClusterRevisionAttributeFromTheDut_1(); + ChipLogProgress(chipTool, " ***** Test Step 1 : Step 2: TH reads from the DUT the ClusterRevision attribute.\n"); + err = TestStep2ThReadsFromTheDutTheClusterRevisionAttribute_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Step 3: Read FeatureMap attribute from the DUT\n"); - err = TestStep3ReadFeatureMapAttributeFromTheDut_2(); + ChipLogProgress(chipTool, " ***** Test Step 2 : Step 3: TH reads from the DUT the FeatureMap attribute.\n"); + err = TestStep3ThReadsFromTheDutTheFeatureMapAttribute_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4: Read the global attribute: AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TH reads from the DUT the AttributeList attribute.\n"); if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4ReadTheGlobalAttributeAttributeList_3(); + err = TestStep4aThReadsFromTheDutTheAttributeListAttribute_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: Read the global attribute: AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads from the DUT the AttributeList attribute.\n"); if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4ReadTheGlobalAttributeAttributeList_4(); + err = TestStep4aThReadsFromTheDutTheAttributeListAttribute_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 5: Read the global attribute: AcceptedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeAcceptedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4b: TH reads optional attribute(ScheduleProgrammingVisibility) in AttributeList\n"); + if (ShouldSkip("TSUIC.S.A0002")) { + NextTest(); + return; + } + err = TestStep4bThReadsOptionalAttributeScheduleProgrammingVisibilityInAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6: Read the global attribute: GeneratedCommandList\n"); - err = TestStep6ReadTheGlobalAttributeGeneratedCommandList_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5: TH reads from the DUT the AcceptedCommandList attribute.\n"); + err = TestStep5ThReadsFromTheDutTheAcceptedCommandListAttribute_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 7: TH reads from the DUT the EventList attribute.\n"); + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6: TH reads from the DUT the GeneratedCommandList attribute.\n"); + err = TestStep6ThReadsFromTheDutTheGeneratedCommandListAttribute_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 7: TH reads from the DUT the EventList attribute.\n"); if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { NextTest(); return; @@ -96387,6 +96422,9 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -96397,7 +96435,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 8; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -96412,7 +96450,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { return WaitForCommissionee("alpha", value); } - CHIP_ERROR TestStep2ThReadClusterRevisionAttributeFromTheDut_1() + CHIP_ERROR TestStep2ThReadsFromTheDutTheClusterRevisionAttribute_1() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96420,7 +96458,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeClusterRevisionWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 2: TH read ClusterRevision attribute from the DUT Error: %@", err); + NSLog(@"Step 2: TH reads from the DUT the ClusterRevision attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -96436,7 +96474,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3ReadFeatureMapAttributeFromTheDut_2() + CHIP_ERROR TestStep3ThReadsFromTheDutTheFeatureMapAttribute_2() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96444,7 +96482,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 3: Read FeatureMap attribute from the DUT Error: %@", err); + NSLog(@"Step 3: TH reads from the DUT the FeatureMap attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -96460,7 +96498,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_3() + CHIP_ERROR TestStep4aThReadsFromTheDutTheAttributeListAttribute_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96468,14 +96506,13 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 4: Read the global attribute: AttributeList Error: %@", err); + NSLog(@"Step 4a: TH reads from the DUT the AttributeList attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 1UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); @@ -96489,7 +96526,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_4() + CHIP_ERROR TestStep4aThReadsFromTheDutTheAttributeListAttribute_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96497,14 +96534,13 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 4: Read the global attribute: AttributeList Error: %@", err); + NSLog(@"Step 4a: TH reads from the DUT the AttributeList attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 1UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); @@ -96517,7 +96553,28 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeAcceptedCommandList_5() + CHIP_ERROR TestStep4bThReadsOptionalAttributeScheduleProgrammingVisibilityInAttributeList_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterThermostatUserInterfaceConfiguration alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4b: TH reads optional attribute(ScheduleProgrammingVisibility) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep5ThReadsFromTheDutTheAcceptedCommandListAttribute_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96525,7 +96582,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 5: Read the global attribute: AcceptedCommandList Error: %@", err); + NSLog(@"Step 5: TH reads from the DUT the AcceptedCommandList attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -96541,7 +96598,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeGeneratedCommandList_6() + CHIP_ERROR TestStep6ThReadsFromTheDutTheGeneratedCommandListAttribute_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96549,7 +96606,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 6: Read the global attribute: GeneratedCommandList Error: %@", err); + NSLog(@"Step 6: TH reads from the DUT the GeneratedCommandList attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -107686,7 +107743,7 @@ class Test_TC_WNCV_3_4 : public TestCommandBridge { { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = mFastMotionDuration.HasValue() ? mFastMotionDuration.Value() : 3000UL; + value.ms = mFastMotionDuration.HasValue() ? mFastMotionDuration.Value() : 5000UL; return WaitForMs("alpha", value); } @@ -108038,7 +108095,7 @@ class Test_TC_WNCV_3_5 : public TestCommandBridge { { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = mFastMotionDuration.HasValue() ? mFastMotionDuration.Value() : 3000UL; + value.ms = mFastMotionDuration.HasValue() ? mFastMotionDuration.Value() : 5000UL; return WaitForMs("alpha", value); }