From 26a8c9e8f9f142f75f7b3c6c8c62ad4e04e99e3c Mon Sep 17 00:00:00 2001 From: manjunath-grl Date: Tue, 15 Aug 2023 23:08:11 +0530 Subject: [PATCH] Revert back EventList changes --- .../certification/Test_TC_ACFREMON_1_1.yaml | 55 +- .../suites/certification/Test_TC_ACL_1_1.yaml | 60 +- .../suites/certification/Test_TC_ACT_1_1.yaml | 31 + .../certification/Test_TC_AIRQUAL_1_1.yaml | 57 +- .../certification/Test_TC_ALOGIN_1_12.yaml | 27 +- .../certification/Test_TC_APBSC_1_10.yaml | 28 +- .../Test_TC_APPLAUNCHER_1_3.yaml | 27 +- .../Test_TC_AUDIOOUTPUT_1_8.yaml | 26 +- .../certification/Test_TC_BIND_1_1.yaml | 39 + .../certification/Test_TC_BINFO_1_1.yaml | 89 +- .../certification/Test_TC_BOOL_1_1.yaml | 45 +- .../certification/Test_TC_BRBINFO_1_1.yaml | 93 +- .../suites/certification/Test_TC_CC_1_1.yaml | 38 +- .../certification/Test_TC_CDOCONC_1_1.yaml | 53 +- .../certification/Test_TC_CGEN_1_1.yaml | 27 +- .../certification/Test_TC_CHANNEL_1_6.yaml | 27 +- .../certification/Test_TC_CMOCONC_1_1.yaml | 55 +- .../certification/Test_TC_CNET_1_3.yaml | 44 + .../Test_TC_CONTENTLAUNCHER_1_11.yaml | 27 +- .../suites/certification/Test_TC_DA_1_8.yaml | 134 +- .../certification/Test_TC_DESC_1_1.yaml | 39 +- .../certification/Test_TC_DGETH_1_1.yaml | 41 + .../certification/Test_TC_DGGEN_1_1.yaml | 107 +- .../certification/Test_TC_DGSW_1_1.yaml | 74 +- .../certification/Test_TC_DGTHREAD_1_1.yaml | 125 +- .../certification/Test_TC_DGWIFI_1_1.yaml | 91 +- .../certification/Test_TC_DLOG_1_1.yaml | 39 + .../certification/Test_TC_DRLK_1_1.yaml | 69 +- .../suites/certification/Test_TC_FAN_1_1.yaml | 10 + .../certification/Test_TC_FLABEL_1_1.yaml | 38 + .../certification/Test_TC_FLDCONC_1_1.yaml | 54 +- .../suites/certification/Test_TC_FLW_1_1.yaml | 38 + .../certification/Test_TC_GRPKEY_1_1.yaml | 54 +- .../suites/certification/Test_TC_G_1_1.yaml | 26 +- .../certification/Test_TC_HEPAFREMON_1_1.yaml | 56 +- .../certification/Test_TC_ICDM_1_1.yaml | 57 +- .../suites/certification/Test_TC_ILL_1_1.yaml | 34 + .../suites/certification/Test_TC_I_1_1.yaml | 35 +- .../Test_TC_KEYPADINPUT_1_2.yaml | 27 +- .../certification/Test_TC_LCFG_1_1.yaml | 26 +- .../certification/Test_TC_LOWPOWER_1_1.yaml | 27 +- .../certification/Test_TC_LTIME_1_2.yaml | 26 +- .../certification/Test_TC_LUNIT_1_2.yaml | 26 +- .../suites/certification/Test_TC_LVL_1_1.yaml | 28 +- .../suites/certification/Test_TC_LWM_1_1.yaml | 8 + .../certification/Test_TC_MEDIAINPUT_1_4.yaml | 28 +- .../Test_TC_MEDIAPLAYBACK_1_7.yaml | 28 +- .../suites/certification/Test_TC_MOD_1_1.yaml | 56 +- .../certification/Test_TC_NDOCONC_1_1.yaml | 55 +- .../suites/certification/Test_TC_OCC_1_1.yaml | 27 +- .../suites/certification/Test_TC_OO_1_1.yaml | 41 + .../certification/Test_TC_OPCREDS_1_2.yaml | 55 + .../certification/Test_TC_OPSTATE_1_1.yaml | 87 +- .../certification/Test_TC_OZCONC_1_1.yaml | 55 +- .../suites/certification/Test_TC_PCC_1_1.yaml | 478 +- .../certification/Test_TC_PMHCONC_1_1.yaml | 55 +- .../certification/Test_TC_PMICONC_1_1.yaml | 55 +- .../certification/Test_TC_PMKCONC_1_1.yaml | 55 +- .../suites/certification/Test_TC_PRS_1_1.yaml | 43 + .../certification/Test_TC_PSCFG_1_1.yaml | 55 +- .../suites/certification/Test_TC_PS_1_1.yaml | 137 +- .../certification/Test_TC_REFALM_1_1.yaml | 13 + .../suites/certification/Test_TC_RH_1_1.yaml | 54 +- .../certification/Test_TC_RNCONC_1_1.yaml | 55 +- .../certification/Test_TC_RVCCLEANM_1_1.yaml | 55 +- .../certification/Test_TC_RVCOPSTATE_1_1.yaml | 87 +- .../certification/Test_TC_RVCRUNM_1_1.yaml | 55 +- .../certification/Test_TC_SMOKECO_1_1.yaml | 117 +- .../certification/Test_TC_SWTCH_1_1.yaml | 172 +- .../suites/certification/Test_TC_S_1_1.yaml | 102 +- .../certification/Test_TC_TCCM_1_1.yaml | 8 + .../certification/Test_TC_TCTL_1_1.yaml | 15 + .../certification/Test_TC_TGTNAV_1_9.yaml | 27 +- .../certification/Test_TC_TIMESYNC_1_1.yaml | 143 +- .../suites/certification/Test_TC_TMP_1_1.yaml | 57 +- .../certification/Test_TC_TSTAT_1_1.yaml | 57 +- .../certification/Test_TC_TSUIC_1_1.yaml | 59 +- .../certification/Test_TC_TVOCCONC_1_1.yaml | 55 +- .../certification/Test_TC_ULABEL_1_1.yaml | 35 + .../certification/Test_TC_WAKEONLAN_1_5.yaml | 28 +- .../certification/Test_TC_WNCV_1_1.yaml | 28 +- .../tests/suites/certification/ci-pics-values | 2 +- .../chip-tool/zap-generated/test/Commands.h | 8790 ++++++++++--- .../zap-generated/test/Commands.h | 10978 ++++++++++++---- 84 files changed, 18388 insertions(+), 6051 deletions(-) diff --git a/src/app/tests/suites/certification/Test_TC_ACFREMON_1_1.yaml b/src/app/tests/suites/certification/Test_TC_ACFREMON_1_1.yaml index 49c15891841dca..56cae49a569db6 100644 --- a/src/app/tests/suites/certification/Test_TC_ACFREMON_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACFREMON_1_1.yaml @@ -82,6 +82,16 @@ tests: hasMasksSet: [0x3] - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [2, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -177,14 +187,43 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5: TH reads EventList attribute from DUT" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: TH reads EventList attribute from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + #List values range check support https://github.com/project-chip/connectedhomeip/issues/26570 + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool activatedcarbonfiltermonitoring read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685958846.723249][11454:11456] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0072 Attribute 0x0000_FFFA DataVersion: 403478864 + [1685958846.723431][11454:11456] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" PICS: "!ACFREMON.S.C00.Rsp" diff --git a/src/app/tests/suites/certification/Test_TC_ACL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_ACL_1_1.yaml index 312847a7b57067..f0d11108473f9a 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4a: TH reads AttributeList attribute from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 2, 3, 4, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList attribute from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -104,14 +114,48 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5a: TH reads EventList attribute from DUT" - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0, 1] + - label: "Step 5a: TH reads EventList attribute from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0, 1] + + - label: + "Step 5b: TH reads EventList attribute from DUT. 1.The list SHALL NOT + contain any additional values in the standard or scoped range: + (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the + Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - + 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), + these values SHALL be ignored. 3.The list SHALL NOT contain any values + in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), + (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where + XXXX is the allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool accesscontrol read event-list 1 0 + + Via the TH (chip-tool), verify: + -that EventList attribute contains list of supported events. + -that list has two entries as value of 0 and 1 (if SAccessControlEntryChanged and AccessControlExtensionChanged event is supported). + + [1676456597.556478][24006:24008] CHIP:DMG: } + [1676456597.556640][24006:24008] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_FFFA DataVersion: 3448736795 + [1676456597.556677][24006:24008] CHIP:TOO: EventList: 2 entries + [1676456597.556687][24006:24008] CHIP:TOO: [1]: 0 + [1676456597.556693][24006:24008] CHIP:TOO: [2]: 1 + [1676456597.556763][24006:24008] CHIP:EM: <<< [E:51140i S:1376 M:55400435 (Ack:189635613)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676456597.556778][24006:24008] CHIP:IN: (S) Sending msg 55400435 on secure session with LSID: 1376 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" # List values range check support https://github.com/project-chip/connectedhomeip/issues/26570 - label: diff --git a/src/app/tests/suites/certification/Test_TC_ACT_1_1.yaml b/src/app/tests/suites/certification/Test_TC_ACT_1_1.yaml index 1287673e7da9f2..f4f7fb1bb43081 100644 --- a/src/app/tests/suites/certification/Test_TC_ACT_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACT_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -64,6 +74,27 @@ tests: type: list contains: [2] + - label: "Step 5: TH reads EventList attribute from DUT" + verification: | + ./chip-tool actions read event-list 1 1 + + Via the TH (chip-tool), verify: + -that EventList attribute contains list of supported events. + -that list has 1 entry(0) for this cluster. + + [1676460741.103254][37023:37025] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_FFFA DataVersion: 928273128 + [1676460741.103303][37023:37025] CHIP:TOO: EventList: 1 entries + [1676460741.103320][37023:37025] CHIP:TOO: [1]: 0 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + # Checking only type check all commands are optional - label: "Step 6: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_AIRQUAL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_AIRQUAL_1_1.yaml index 8b861be9f6370e..7f7621b75a50d6 100644 --- a/src/app/tests/suites/certification/Test_TC_AIRQUAL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_AIRQUAL_1_1.yaml @@ -94,6 +94,16 @@ tests: hasMasksSet: [0x8] - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -139,16 +149,45 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5: TH reads EventList attribute from DUT" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: TH reads EventList attribute from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool airquality read event-list 1 1 + + On TH(Chip-tool), verify the Event-list value is 0 entries + + [1685259470.356105][111277:111279] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_005B Attribute 0x0000_FFFA DataVersion: 3241788930 + [1685259470.356143][111277:111279] CHIP:TOO: EventList: 0 entries + [1685259470.356213][111277:111279] CHIP:EM: <<< [E:2990i S:55081 M:20552289 (Ack:224151602)] (S) Msg TX to 1:0000000000000001 [BFD3] --- Type 0000:10 (SecureChannel:StandaloneAck) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - - label: "Step 6:a Read the global attribute: AcceptedCommandList" + - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" attribute: "AcceptedCommandList" response: diff --git a/src/app/tests/suites/certification/Test_TC_ALOGIN_1_12.yaml b/src/app/tests/suites/certification/Test_TC_ALOGIN_1_12.yaml index cc9889b96431a5..b60b6d484f7ce0 100644 --- a/src/app/tests/suites/certification/Test_TC_ALOGIN_1_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_ALOGIN_1_12.yaml @@ -50,6 +50,16 @@ tests: type: bitmap32 - label: "Step 3: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -72,11 +82,12 @@ tests: constraints: type: list contains: [1] - # EventList disabled for 1.2 - # - label: "Step 6: TH reads EventList attribute from DUT" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: TH reads EventList attribute from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_APBSC_1_10.yaml b/src/app/tests/suites/certification/Test_TC_APBSC_1_10.yaml index f70965471ecb97..7c79ec9d5a8920 100644 --- a/src/app/tests/suites/certification/Test_TC_APBSC_1_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_APBSC_1_10.yaml @@ -50,6 +50,17 @@ tests: type: bitmap32 - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [2, 4, 5, 6, 7, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -99,11 +110,12 @@ tests: value: [] constraints: type: list - # EventList disabled for 1.2 - # - label: "Step 6: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml index 3c347770e58a01..f1198214bb2ab8 100644 --- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_1_3.yaml @@ -60,6 +60,16 @@ tests: type: bitmap32 - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -101,11 +111,12 @@ tests: constraints: type: list contains: [3] - # EventList disabled for 1.2 - # - label: "Step 6: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml index 55b592ecedf0de..6493ece836f96e 100644 --- a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_1_8.yaml @@ -60,6 +60,16 @@ tests: hasMasksClear: [0x2] - label: "Step 3: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -82,10 +92,12 @@ tests: value: [] constraints: type: list - # - label: "Step 6: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml b/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml index fbb27f8652c68c..d9f3ce1c885008 100644 --- a/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BIND_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -92,6 +102,35 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool binding read event-list 1 1 + + Verify " EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log: + [1676456961.540195][24182:24184] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001E Attribute 0x0000_FFFA DataVersion: 2461106731 + [1676456961.540229][24182:24184] CHIP:TOO: EventList: 0 entries + [1676456961.540302][24182:24184] CHIP:EM: <<< [E:6972i S:40230 M:131899248 (Ack:28190068)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676456961.540320][24182:24184] CHIP:IN: (S) Sending msg 131899248 on secure session with LSID: 40230 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + # List values range check support https://github.com/project-chip/connectedhomeip/issues/26570 - label: "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list diff --git a/src/app/tests/suites/certification/Test_TC_BINFO_1_1.yaml b/src/app/tests/suites/certification/Test_TC_BINFO_1_1.yaml index 3902cc32ceacee..fdf891bbc0791f 100644 --- a/src/app/tests/suites/certification/Test_TC_BINFO_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BINFO_1_1.yaml @@ -51,6 +51,36 @@ tests: type: bitmap32 - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 19, + 65528, + 65529, + 65530, + 65531, + 65532, + 65533, + ] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -211,20 +241,19 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5a: TH1 reads EventList from DUT" - # PICS: - # " !BINFO.S.E00 && - # !BINFO.S.E01 && !BINFO.S.E02 && !BINFO.S.A0011 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: TH1 reads EventList from DUT" + PICS: + " !BINFO.S.E00 && !BINFO.S.E01 && !BINFO.S.E02 && !BINFO.S.A0011 && + PICS_EVENT_LIST_ENABLED" + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - label: "Step 5b: Read BINFO.S.E00(StartUp) event in EventList" - PICS: BINFO.S.E00 + PICS: BINFO.S.E00 && PICS_EVENT_LIST_ENABLED command: "readAttribute" attribute: "EventList" response: @@ -233,7 +262,7 @@ tests: contains: [0] - label: "Step 5c: Read BINFO.S.E01(ShutDown) event in EventList" - PICS: BINFO.S.E01 + PICS: BINFO.S.E01 && PICS_EVENT_LIST_ENABLED command: "readAttribute" attribute: "EventList" response: @@ -242,7 +271,7 @@ tests: contains: [1] - label: "Step 5d: Read BINFO.S.E02(Leave) event in EventList" - PICS: BINFO.S.E02 + PICS: BINFO.S.E02 && PICS_EVENT_LIST_ENABLED command: "readAttribute" attribute: "EventList" response: @@ -251,7 +280,7 @@ tests: contains: [2] - label: "Step 5e: Read (ReachableChanged) event in EventList" - PICS: BINFO.S.A0011 + PICS: BINFO.S.A0011 && PICS_EVENT_LIST_ENABLED command: "readAttribute" attribute: "EventList" response: @@ -259,6 +288,36 @@ tests: type: list contains: [3] + - label: + "Step 5f: TH reads EventList attribute from DUT. 1.The list SHALL NOT + contain any additional values in the standard or scoped range: + (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the + Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - + 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), + these values SHALL be ignored. 3.The list SHALL NOT contain any values + in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), + (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where + XXXX is the allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool basicinformation read event-list 1 + + Verify "EventList " consists the list of supported events (0, 1, 2)on the TH(Chip-tool) Log: + [1676291718.628403][27706:27708] CHIP:DMG: } + [1676291718.628931][27706:27708] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_FFFA DataVersion: 1838069172 + [1676291718.628983][27706:27708] CHIP:TOO: EventList: 3 entries + [1676291718.629003][27706:27708] CHIP:TOO: [1]: 0 + [1676291718.629015][27706:27708] CHIP:TOO: [2]: 1 + [1676291718.629026][27706:27708] CHIP:TOO: [3]: 2 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + # List values range check support https://github.com/project-chip/connectedhomeip/issues/26570 - label: "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list diff --git a/src/app/tests/suites/certification/Test_TC_BOOL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_BOOL_1_1.yaml index 6a876f3cf29abe..eef7cf54c85715 100644 --- a/src/app/tests/suites/certification/Test_TC_BOOL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BOOL_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -70,20 +80,21 @@ tests: value: [] constraints: type: list - # EventList disabled for 1.2 - # - label: "Step 7: Read the global attribute: EventList" - # PICS: BOOL.S.E00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [0] - # constraints: - # type: list - # - label: "Step 7: Read the global attribute: EventList" - # PICS: " !BOOL.S.E00 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 7: Read the global attribute: EventList" + PICS: BOOL.S.E00 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [0] + constraints: + type: list + + - label: "Step 7: Read the global attribute: EventList" + PICS: " !BOOL.S.E00 && PICS_EVENT_LIST_ENABLED " + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml index c370a2d94656ef..63e238f760b461 100644 --- a/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml @@ -64,6 +64,16 @@ tests: type: bitmap32 - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [17, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: " !PICS_EVENT_LIST_ENABLED " command: "readAttribute" attribute: "AttributeList" response: @@ -249,33 +259,62 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5a: TH reads optional event(StartUp) in EventList" - # PICS: BRBINFO.S.E00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0] - - # - label: "Step 5b: TH reads optional attribute(ShutDown) in EventList" - # PICS: BRBINFO.S.E01 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1] - - # - label: "Step 5c: TH reads optional attribute(Leave) in EventList" - # PICS: BRBINFO.S.E02 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [2] + - label: "Step 5a: TH reads optional event(StartUp) in EventList" + PICS: BRBINFO.S.E00 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0] + + - label: "Step 5b: TH reads optional attribute(ShutDown) in EventList" + PICS: BRBINFO.S.E01 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1] + + - label: "Step 5c: TH reads optional attribute(Leave) in EventList" + PICS: BRBINFO.S.E02 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [2] + + - label: + "Step 5d: TH reads EventList attribute from DUT. 1.The list SHALL NOT + contain any additional values in the standard or scoped range: + (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the + Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - + 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), + these values SHALL be ignored. 3.The list SHALL NOT contain any values + in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), + (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where + XXXX is the allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool bridgeddevicebasicinformation read event-list 1 3 + + Via the TH (chip-tool), verify: + -that EventList attribute contains list of supported events. + -that list has empty (0 entries) for this cluster. + + 1676439985.362352][22002:22004] CHIP:DMG: } + [1676439985.362396][22002:22004] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_FFFA DataVersion: 266846256 + [1676439985.362407][22002:22004] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: TH1 reads AcceptedCommandList from DUT" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml index afc00b8011894f..990b1b942a77a3 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml @@ -112,6 +112,28 @@ tests: hasMasksSet: [0x10] - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [ + 8, + 15, + 16385, + 16394, + 65528, + 65529, + 65530, + 65531, + 65532, + 65533, + ] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -608,14 +630,14 @@ tests: type: list contains: [16400] - # EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - label: "Step 6a: Read the optional command(MoveToHue) in AcceptedCommandList" diff --git a/src/app/tests/suites/certification/Test_TC_CDOCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CDOCONC_1_1.yaml index c05dc795204e36..4f020eaecd679e 100644 --- a/src/app/tests/suites/certification/Test_TC_CDOCONC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CDOCONC_1_1.yaml @@ -185,6 +185,16 @@ tests: hasMasksClear: [0x20, 0x1] - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [9, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: " !PICS_EVENT_LIST_ENABLED " command: "readAttribute" attribute: "AttributeList" response: @@ -352,14 +362,41 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads EventList attribute from DUT. 1.The list SHALL NOT + contain any additional values in the standard or scoped range: + (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the + Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - + 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), + these values SHALL be ignored. 3.The list SHALL NOT contain any values + in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), + (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where + XXXX is the allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool carbondioxideconcentrationmeasurement read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685960313.959334][11536:11538] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_040D Attribute 0x0000_FFFA DataVersion: 832916414 + [1685960313.959445][11536:11538] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_CGEN_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CGEN_1_1.yaml index 78469161d30345..983b77c6b33a4f 100644 --- a/src/app/tests/suites/certification/Test_TC_CGEN_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CGEN_1_1.yaml @@ -48,6 +48,17 @@ tests: type: bitmap32 - label: "Step 4: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [0, 1, 2, 3, 4, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -55,14 +66,14 @@ tests: type: list contains: [0, 1, 2, 3, 4, 65528, 65529, 65531, 65532, 65533] - # EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - label: "Step 6: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml index ba92efb91bb92d..a89062e3f6fdeb 100644 --- a/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml @@ -72,6 +72,16 @@ tests: hasMasksSet: [0x2] - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -157,11 +167,12 @@ tests: constraints: type: list contains: [1] - # EventList disabled for 1.2 - # - label: "Step 6: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_CMOCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CMOCONC_1_1.yaml index 5abf63b62a4a36..c01ac0d8fb20fc 100644 --- a/src/app/tests/suites/certification/Test_TC_CMOCONC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CMOCONC_1_1.yaml @@ -185,6 +185,16 @@ tests: hasMasksClear: [0x20] - label: "Step 4a: Read the global attribute: AttributeList" + command: "readAttribute" + attribute: "AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + response: + constraints: + type: list + contains: [9, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -351,14 +361,43 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + # List values range check support https://github.com/project-chip/connectedhomeip/issues/26570 + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool carbonmonoxideconcentrationmeasurement read event-list 1 1 + + Via the TH (chip-tool), verify that theEventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685965965.418394][11855:11857] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_040C Attribute 0x0000_FFFA DataVersion: 2062554595 + [1685965965.418498][11855:11857] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_CNET_1_3.yaml b/src/app/tests/suites/certification/Test_TC_CNET_1_3.yaml index 6565fdb6d2783d..76f25e442c61b4 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_1_3.yaml @@ -73,6 +73,16 @@ tests: value: 4 - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -201,6 +211,40 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + Onnetwork + ./chip-tool networkcommissioning read event-list 1 0 + + Via the TH (chip-tool), verify: + -that EventList attribute contains list of supported events. + -that list has empty (0 entries) for this cluster. + + [1677044346.136984][29792:29794] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFA DataVersion: 2890326041 + [1677044346.137022][29792:29794] CHIP:TOO: EventList: 0 entries + [1677044346.137100][29792:29794] CHIP:EM: <<< [E:3325i S:48426 M:159215324 (Ack:164155971)] (S) Msg TX to 1:0000000000000001 [682F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1677044346.137117][29792:29794] CHIP:IN: (S) Sending msg 159215324 on secure session with LSID: 48426 + [1677044346.137158][29792:29794] CHIP:EM: Flushed pending ack for MessageCounter:164155971 on exchange 3325i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + - label: "Step 6a: Read AcceptedCommandList If DUT supports Wi-Fi/Thread related features CNET.S.F00(WI),CNET.S.F01(TH)" diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml index 98e42191c009bc..17ed1badddc10e 100644 --- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml @@ -73,6 +73,16 @@ tests: hasMasksSet: [0x2] - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -129,11 +139,12 @@ tests: constraints: type: list contains: [2] - # EventList disabled for 1.2 - # - label: "Step 6: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_8.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_8.yaml index c02817728e23e1..72263840727302 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_8.yaml @@ -34,7 +34,7 @@ tests: disabled: true - label: - "Step : For each of the following test cases, start the TH using the + "Step 1a: For each of the following test cases, start the TH using the appropriate certificate set, commission the TH using the DUT, then factory reset the TH:" verification: | @@ -43,18 +43,17 @@ tests: - Have the DUT commission the TH. Verify that the TH is successfully commissioned for each test case - factory reset the TH command when using chip-all-clusters-app: sudo rm -rf /tmp/chip_* - disabled: true - label: - "Step 1: CD Test Vector: The product_id_array field has one PID value + "Step 1b: CD Test Vector: The product_id_array field has one PID value which matches the PID value in DAC." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Fallback VID and PID encoding example from + "Step 1c: PAI Test Vector: Fallback VID and PID encoding example from spec: valid example showing that order or separators are not considered at all for the overall validity of the embedded fields" verification: | @@ -62,75 +61,77 @@ tests: disabled: true - label: - "Step : PAI Test Vector: Fallback VID and PID encoding example: valid - but less human-readable" + "Step 1d: PAI Test Vector: Fallback VID and PID encoding example: + valid but less human-readable" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : CD Test Vector: The authorized_paa_list contains two PAAs one - of which is valid PAA authorized to sign the PAI." + "Step 1e: CD Test Vector: The authorized_paa_list contains two PAAs + one of which is valid PAA authorized to sign the PAI." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Valid certificate public key curve prime256v1" + "Step 1f: DAC Test Vector: Valid certificate public key curve + prime256v1" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Valid certificate public key curve prime256v1" + "Step 1g: PAI Test Vector: Valid certificate public key curve + prime256v1" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Certificate includes optional Authority + "Step 1h: PAI Test Vector: Certificate includes optional Authority Information Access extension" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Certificate includes optional Subject + "Step 1i: PAI Test Vector: Certificate includes optional Subject Alternative Name extension" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Certificate includes optional Extended Key + "Step 1j: DAC Test Vector: Certificate includes optional Extended Key Usage extension" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : CD Test Vector: The product_id_array field has 100 PID values - one of which matches the PID value in DAC." + "Step 1k: CD Test Vector: The product_id_array field has 100 PID + values one of which matches the PID value in DAC." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Fallback VID and PID encoding example from + "Step 1l: PAI Test Vector: Fallback VID and PID encoding example from spec: valid but less readable" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Fallback VID and PID encoding example: valid - but less human-readable" + "Step 1m: DAC Test Vector: Fallback VID and PID encoding example: + valid but less human-readable" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Mix of Fallback and Matter OID encoding for + "Step 1n: DAC Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: valid Matter OIDs are used and wrong values in the common-name are ignored" verification: | @@ -138,14 +139,14 @@ tests: disabled: true - label: - "Step : CD Test Vector: The dac_origin_vendor_id and + "Step 1o: CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields are not present." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Certificate Key Usage extension + "Step 1p: PAI Test Vector: Certificate Key Usage extension diginalSignature field is wrong (not present for DAC and present for PAI which is OK as optional)" verification: | @@ -153,62 +154,62 @@ tests: disabled: true - label: - "Step : PAI Test Vector: Valid certificate signature algorithm + "Step 1q: PAI Test Vector: Valid certificate signature algorithm ECDSA_WITH_SHA256" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Valid certificate signature algorithm + "Step 1r: DAC Test Vector: Valid certificate signature algorithm ECDSA_WITH_SHA256" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Fallback VID and PID encoding example from + "Step 1s: DAC Test Vector: Fallback VID and PID encoding example from spec: valid example showing that order or separators are not considered at all for the overall validity of the embedded fields" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - - label: "Step : CD Test Vector: Valid CMS version set to v3." + - label: "Step 1t: CD Test Vector: Valid CMS version set to v3." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Fallback VID and PID encoding example from + "Step 1u: PAI Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : CD Test Vector: The subjectKeyIdentifier contains SKID of a + "Step 1v: CD Test Vector: The subjectKeyIdentifier contains SKID of a well-known Zigbee Alliance certificate." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Certificate Basic Constraint extension + "Step 1w: PAI Test Vector: Certificate Basic Constraint extension PathLen field set to 0" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Certificate includes optional Authority + "Step 1x: DAC Test Vector: Certificate includes optional Authority Information Access extension" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Fallback VID and PID encoding example from + "Step 1y: PAI Test Vector: Fallback VID and PID encoding example from spec: invalid since substring following Mpid: is not exactly 4 uppercase hexadecimal digits" verification: | @@ -216,45 +217,45 @@ tests: disabled: true - label: - "Step : DAC Test Vector: Fallback VID and PID encoding example from + "Step 1z: DAC Test Vector: Fallback VID and PID encoding example from spec: valid but less readable" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Certificate includes optional Extended Key + "Step 1a1: PAI Test Vector: Certificate includes optional Extended Key Usage extension" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Fallback VID and PID encoding example from + "Step 1a2: PAI Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : CD Test Vector: The product_id_array field has 10 PID values - one of which matches the PID value in DAC." + "Step 1a3: CD Test Vector: The product_id_array field has 10 PID + values one of which matches the PID value in DAC." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - - label: "Step : CD Test Vector: Valid CMS digest algorithm SHA256." + - label: "Step 1a4: CD Test Vector: Valid CMS digest algorithm SHA256." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - - label: "Step : CD Test Vector: Valid format_version field set to 1." + - label: "Step 1a5: CD Test Vector: Valid format_version field set to 1." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Fallback VID and PID encoding example from + "Step 1a6: PAI Test Vector: Fallback VID and PID encoding example from spec: valid but highly discouraged since embedding of substrings within other substrings may be confusing to human readers" verification: | @@ -262,48 +263,49 @@ tests: disabled: true - label: - "Step : CD Test Vector: The version_number field matches the VID and - PID used in a DeviceSoftwareVersionModel entry in the DCL matching the - certification record associated with the product presenting this CD." + "Step 1a7: CD Test Vector: The version_number field matches the VID + and PID used in a DeviceSoftwareVersionModel entry in the DCL matching + the certification record associated with the product presenting this + CD." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - - label: "Step : CD Test Vector: Valid CMS eContentType pkcs7-data." + - label: "Step 1a8: CD Test Vector: Valid CMS eContentType pkcs7-data." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : CD Test Vector: The optional authorized_paa_list field is not - present." + "Step 1a9: CD Test Vector: The optional authorized_paa_list field is + not present." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : CD Test Vector: The authorized_paa_list contains one valid PAA - which is authorized to sign the PAI." + "Step 1a10: CD Test Vector: The authorized_paa_list contains one valid + PAA which is authorized to sign the PAI." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Certificate includes optional Subject + "Step 1a11: DAC Test Vector: Certificate includes optional Subject Alternative Name extension" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : CD Test Vector: The authorized_paa_list contains ten PAAs one - of which is valid PAA authorized to sign the PAI." + "Step 1a12: CD Test Vector: The authorized_paa_list contains ten PAAs + one of which is valid PAA authorized to sign the PAI." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : CD Test Vector: The dac_origin_vendor_id and + "Step 1a13: CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields present and contain the VID and PID values that match the VID and PID found in the DAC Subject DN." verification: | @@ -311,65 +313,67 @@ tests: disabled: true - label: - "Step : PAI Test Vector: Valid certificate version field set to v3(2)" + "Step 1a14: PAI Test Vector: Valid certificate version field set to + v3(2)" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Fallback VID and PID encoding example from - spec: invalid since substring following Mpid: is not exactly 4 + "Step 1a15: PAI Test Vector: Fallback VID and PID encoding example + from spec: invalid since substring following Mpid: is not exactly 4 uppercase hexadecimal digits" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : CD Test Vector: Origin VID/PID different than VID/PID (correct - use of origin)" + "Step 1a16: CD Test Vector: Origin VID/PID different than VID/PID + (correct use of origin)" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Valid certificate version field set to v3(2)" + "Step 1a17: DAC Test Vector: Valid certificate version field set to + v3(2)" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Fallback VID and PID encoding example from - spec: valid and recommended since easily human-readable" + "Step 1a18: DAC Test Vector: Fallback VID and PID encoding example + from spec: valid and recommended since easily human-readable" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : PAI Test Vector: Mix of Fallback and Matter OID encoding for - VID and PID: valid Matter OIDs are used and wrong values in the + "Step 1a19: PAI Test Vector: Mix of Fallback and Matter OID encoding + for VID and PID: valid Matter OIDs are used and wrong values in the common-name are ignored" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Fallback VID and PID encoding example from - spec: valid but highly discouraged since embedding of substrings + "Step 1a20: DAC Test Vector: Fallback VID and PID encoding example + from spec: valid but highly discouraged since embedding of substrings within other substrings may be confusing to human readers" verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : CD Test Vector: Valid CMS signature algorithm + "Step 1a21: CD Test Vector: Valid CMS signature algorithm ECDSA_WITH_SHA256." verification: | Verify that the TH is successfully commissioned for each test case disabled: true - label: - "Step : DAC Test Vector: Fallback VID and PID encoding example from - spec: valid and recommended since easily human-readable" + "Step 1a22: DAC Test Vector: Fallback VID and PID encoding example + from spec: valid and recommended since easily human-readable" verification: | Verify that the TH is successfully commissioned for each test case disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml index db5a5733f4c659..59afd050075034 100644 --- a/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DESC_1_1.yaml @@ -60,8 +60,17 @@ tests: constraints: type: bitmap32 - #List values range check support https://github.com/project-chip/connectedhomeip/issues/26570 - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 3, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -108,6 +117,34 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool descriptor read event-list 1 0 + + Verify "EventList" is empty on the TH(Chip-tool) and below is the example log provided for raspi platform: + [1676366852.531123][9747:9749] CHIP:DMG: } + [1676366852.531291][9747:9749] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_FFFA DataVersion: 2384113486 + [1676366852.531334][9747:9749] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + # List values range check support https://github.com/project-chip/connectedhomeip/issues/26570 - label: "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml index 4c3d5e4d9cda60..9506cc4abf3c31 100644 --- a/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGETH_1_1.yaml @@ -70,6 +70,16 @@ tests: hasMasksSet: [0x2] - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -214,6 +224,37 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool ethernetnetworkdiagnostics read event-list 1 0 + + Verify " EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log: + [1676459303.132712][25176:25178] CHIP:DMG: } + [1676459303.132751][25176:25178] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFFA DataVersion: 2330608789 + [1676459303.132772][25176:25178] CHIP:TOO: EventList: 0 entries + [1676459303.132795][25176:25178] CHIP:EM: <<< [E:41866i S:29076 M:220910528 (Ack:11574043)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676459303.132799][25176:25178] CHIP:IN: (S) Sending msg 220910528 on secure session with LSID: 29076 + [1676459303.132809][25176:25178] CHIP:EM: Flushed pending ack for MessageCounter:11574043 on exchange 41866i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + - label: "Step 6a: TH reads AcceptedCommandList from DUT" PICS: ( DGETH.S.F00 || DGETH.S.F01 ) command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml index 4bf0dcdd581f52..ab8b23246903d0 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml @@ -49,6 +49,16 @@ tests: type: bitmap32 - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 8, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -161,41 +171,74 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5a: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [3] + - label: "Step 5a: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [3] + + - label: "Step 5b: Read optional event(HardwareFaultChange) in EventList" + PICS: DGGEN.S.E00 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0] + + - label: "Step 5c: Read optional event(RadioFaultChange) in EventList" + PICS: DGGEN.S.E01 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1] - # - label: "Step 5b: Read optional event(HardwareFaultChange) in EventList" - # PICS: DGGEN.S.E00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0] + - label: "Step 5d: Read optional event(NetworkFaultChange) in EventList" + PICS: DGGEN.S.E02 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [2] - # - label: "Step 5c: Read optional event(RadioFaultChange) in EventList" - # PICS: DGGEN.S.E01 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1] + - label: + "Step 5e: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool generaldiagnostics read event-list 1 0 - # - label: "Step 5d: Read optional event(NetworkFaultChange) in EventList" - # PICS: DGGEN.S.E02 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [2] + [1676459408.977604][25255:25257] CHIP:DMG: } + [1676459408.977730][25255:25257] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Attribute 0x0000_FFFA DataVersion: 4000280266 + [1676459408.977747][25255:25257] CHIP:TOO: EventList: 4 entries + [1676459408.977752][25255:25257] CHIP:TOO: [1]: 0 + [1676459408.977755][25255:25257] CHIP:TOO: [2]: 1 + [1676459408.977759][25255:25257] CHIP:TOO: [3]: 2 + [1676459408.977761][25255:25257] CHIP:TOO: [4]: 3 + [1676459408.977790][25255:25257] CHIP:EM: <<< [E:3742i S:56131 M:239009454 (Ack:224914310)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676459408.977795][25255:25257] CHIP:IN: (S) Sending msg 239009454 on secure session with LSID: 56131 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml index ba1b0a00745dac..fe83bf51609e1b 100644 --- a/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGSW_1_1.yaml @@ -61,6 +61,16 @@ tests: hasMasksSet: [0x1] - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -151,24 +161,52 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5a: TH reads EventList from DUT" - # PICS: DGSW.S.E00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0] - - # - label: "Step 5b: TH reads EventList from DUT" - # PICS: " !DGSW.S.E00 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: TH reads EventList from DUT" + PICS: DGSW.S.E00 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0] + + - label: "Step 5b: TH reads EventList from DUT" + PICS: " !DGSW.S.E00 && PICS_EVENT_LIST_ENABLED " + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5c: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool softwarediagnostics read event-list 1 0 + + [1676459464.108583][25294:25296] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_FFFA DataVersion: 650337896 + [1676459464.108607][25294:25296] CHIP:TOO: EventList: 1 entries + [1676459464.108612][25294:25296] CHIP:TOO: [1]: 0 + [1676459464.108635][25294:25296] CHIP:EM: <<< [E:23624i S:46243 M:182610763 (Ack:167177651)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676459464.108640][25294:25296] CHIP:IN: (S) Sending msg 182610763 on secure session with LSID: 46243 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: TH reads AcceptedCommandList from DUT" PICS: DGSW.S.F00 diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml index 28a765341d849c..2f2564ba64e77b 100644 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml @@ -96,6 +96,41 @@ tests: hasMasksSet: [0x8] - label: "Step 4a: TH reads mandatory attributes in AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [ + 0, + 1, + 2, + 3, + 4, + 5, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 59, + 60, + 61, + 62, + 65528, + 65529, + 65530, + 65531, + 65532, + 65533, + ] + + - label: "Step 4a: TH reads mandatory attributes in AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -227,36 +262,66 @@ tests: type: list contains: [58] - # EventList disabled for 1.2 - # - label: "Step 5a: TH reads EventList from DUT" - # PICS: " !DGTHREAD.S.E00 && !DGTHREAD.S.E01 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list - - # - label: - # "Step 5b: TH reads DGTHREAD.S.E00(ConnectionStatus) event in EventList" - # PICS: DGTHREAD.S.E00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0] - - # - label: - # "Step 5c: TH reads DGTHREAD.S.E01(NetworkFaultChange) event in - # EventList" - # PICS: DGTHREAD.S.E01 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1] + - label: "Step 5a: TH reads EventList from DUT" + PICS: " !DGTHREAD.S.E00 && !DGTHREAD.S.E01 && PICS_EVENT_LIST_ENABLED" + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads DGTHREAD.S.E00(ConnectionStatus) event in EventList" + PICS: DGTHREAD.S.E00 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0] + + - label: + "Step 5c: TH reads DGTHREAD.S.E01(NetworkFaultChange) event in + EventList" + PICS: DGTHREAD.S.E01 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1] + + - label: + "Step 5d: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool threadnetworkdiagnostics read event-list 54 0 + + Verify " EventList attribute " consists the list of supported events, on TH(chip-tool) + + 1676459946.528321][25797:25799] CHIP:DMG: } + [1676459946.528472][25797:25799] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_FFFA DataVersion: 3757870882 + [1676459946.528508][25797:25799] CHIP:TOO: EventList: 0 entries + [1676459946.528588][25797:25799] CHIP:EM: <<< [E:39264i S:15932 M:176950481 (Ack:89396356)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676459946.528602][25797:25799] CHIP:IN: (S) Sending msg 176950481 on secure session with LSID: 15932 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: TH reads AcceptedCommandList from DUT" PICS: " !DGTHREAD.S.F01 " diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml index d2514f632af4ee..6f1fc9d599369a 100644 --- a/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml @@ -71,6 +71,17 @@ tests: hasMasksSet: [0x2] - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [0, 1, 2, 3, 4, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -138,42 +149,44 @@ tests: value: [] constraints: type: list - # EventList disabled for 1.2 - # - label: "Step 7a: TH reads EventList from DUT" - # PICS: " !DGWIFI.S.E00 && !DGWIFI.S.E01 && !DGWIFI.S.E02 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list - # - label: - # "Step 7b: TH reads optional attribute (Disconnection) in EventList - # from DUT" - # PICS: DGWIFI.S.E00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0] - # - label: - # "Step 7c: TH reads optional attribute (AssociationFailure) in - # EventList from DUT" - # PICS: DGWIFI.S.E01 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1] - # - label: - # "Step 7d: TH reads optional attribute (ConnectionStatus) in EventList - # from DUT" - # PICS: DGWIFI.S.E02 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [2] + + - label: "Step 7a: TH reads EventList from DUT" + PICS: + " !DGWIFI.S.E00 && !DGWIFI.S.E01 && !DGWIFI.S.E02 && + PICS_EVENT_LIST_ENABLED" + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + - label: + "Step 7b: TH reads optional attribute (Disconnection) in EventList + from DUT" + PICS: DGWIFI.S.E00 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0] + - label: + "Step 7c: TH reads optional attribute (AssociationFailure) in + EventList from DUT" + PICS: DGWIFI.S.E01 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1] + - label: + "Step 7d: TH reads optional attribute (ConnectionStatus) in EventList + from DUT" + PICS: DGWIFI.S.E02 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [2] diff --git a/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml index 06040323ba0875..e6889393400d8c 100644 --- a/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DLOG_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4a: TTH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TTH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -92,6 +102,35 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool diagnosticlogs read event-list 1 0 + + Verify " EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log: + [1676460292.457787][25934:25936] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0032 Attribute 0x0000_FFFA DataVersion: 1490287489 + [1676460292.457829][25934:25936] CHIP:TOO: EventList: 0 entries + [1676460292.457878][25934:25936] CHIP:EM: <<< [E:19170i S:29205 M:215468614 (Ack:174747327)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676460292.457892][25934:25936] CHIP:IN: (S) Sending msg 215468614 on secure session with LSID: 29205 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + - label: "Step 6a: TTH reads AcceptedCommandList from DUT" command: "readAttribute" attribute: "AcceptedCommandList" diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml index 4cd64f7ea0f44c..ace9293841b932 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml @@ -174,6 +174,17 @@ tests: hasMasksSet: [0x1000] - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [0, 1, 2, 37, 38, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -385,35 +396,35 @@ tests: type: list contains: [44] - # EventList disabled for 1.2 - # - label: "Step 5a: TH reads EventList from DUT" - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0, 2, 3] - - # - label: - # "Step 5b: TH reads optional event(Door position sensor) in EventList" - # PICS: DRLK.S.F05 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1] - - # - label: - # "Step 5c: TH reads optional event(User commands and database) in - # EventList" - # PICS: DRLK.S.F08 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [4] + - label: "Step 5a: TH reads EventList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0, 2, 3] + + - label: + "Step 5b: TH reads optional event(Door position sensor) in EventList" + PICS: DRLK.S.F05 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1] + + - label: + "Step 5c: TH reads optional event(User commands and database) in + EventList" + PICS: DRLK.S.F08 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [4] - label: "Step 6a: TH reads AcceptedCommandList from DUT" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_FAN_1_1.yaml b/src/app/tests/suites/certification/Test_TC_FAN_1_1.yaml index 20b698cb6e85d0..6b278a1a7ea1c2 100644 --- a/src/app/tests/suites/certification/Test_TC_FAN_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_FAN_1_1.yaml @@ -128,6 +128,16 @@ tests: hasMasksSet: [0x20] - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 3, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: diff --git a/src/app/tests/suites/certification/Test_TC_FLABEL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_FLABEL_1_1.yaml index a098c2480f2c35..61132393faad94 100644 --- a/src/app/tests/suites/certification/Test_TC_FLABEL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_FLABEL_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -92,6 +102,34 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool fixedlabel read event-list 1 0 + + Verify "EventList" contains a list of supported events. for this cluster the list SHALL be empty(0 entries) on the TH(Chip-tool) Log: + 1676374181.204773][11726:11728] CHIP:DMG: } + [1676374181.204925][11726:11728] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0040 Attribute 0x0000_FFFA DataVersion: 1038008956 + [1676374181.204971][11726:11728] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + # List values range check support https://github.com/project-chip/connectedhomeip/issues/26570 - label: "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list diff --git a/src/app/tests/suites/certification/Test_TC_FLDCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_FLDCONC_1_1.yaml index e0c9d9a7244fa7..b64b3feee7a915 100644 --- a/src/app/tests/suites/certification/Test_TC_FLDCONC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_FLDCONC_1_1.yaml @@ -187,6 +187,16 @@ tests: - label: "Step 4a: Read the global attribute: AttributeList" command: "readAttribute" attribute: "AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + response: + constraints: + type: list + contains: [9, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + command: "readAttribute" + attribute: "AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" response: constraints: type: list @@ -352,14 +362,42 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool formaldehydeconcentrationmeasurement read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685960313.959334][11536:11538] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_042B Attribute 0x0000_FFFA DataVersion: 41919546 + [1685960313.959445][11536:11538] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_FLW_1_1.yaml b/src/app/tests/suites/certification/Test_TC_FLW_1_1.yaml index 37d1993e862170..2ae4c280ed81c6 100644 --- a/src/app/tests/suites/certification/Test_TC_FLW_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_FLW_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -104,6 +114,34 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool flowmeasurement read event-list 1 1 + + Verify "EventList " consists the list of supported events, Also verify that the DUT response with an empty list (0 entries) if there is no events on the TH(Chip-tool) Log: + [1676363157.137814][9032:9034] CHIP:DMG: } + [1676363157.137855][9032:9034] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0404 Attribute 0x0000_FFFA DataVersion: 2916521407 + [1676363157.137868][9032:9034] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + # List values range check support https://github.com/project-chip/connectedhomeip/issues/26570 - label: "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list diff --git a/src/app/tests/suites/certification/Test_TC_GRPKEY_1_1.yaml b/src/app/tests/suites/certification/Test_TC_GRPKEY_1_1.yaml index 9a9d4eb4ead37d..bbc25e6b518983 100644 --- a/src/app/tests/suites/certification/Test_TC_GRPKEY_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_GRPKEY_1_1.yaml @@ -61,6 +61,16 @@ tests: hasMasksSet: [0x1] - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 3, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: " !PICS_EVENT_LIST_ENABLED " command: "readAttribute" attribute: "AttributeList" response: @@ -106,13 +116,43 @@ tests: - name: "expectedValue" value: "y" - # - label: "Step 5a: TH1 reads EventList from DUT" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: TH1 reads EventList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool groupkeymanagement read event-list 1 0 + + Verify "EventList" contains the list of supported events, for this cluster list is empty(0 entries) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1689923450.468055][6130:6132] CHIP:DMG: } + [1689923450.468251][6130:6132] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_FFFA DataVersion: 4114127542 + [1689923450.468339][6130:6132] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 5b: TH reads EventList attribute from DUT. 1.The list SHALL NOT diff --git a/src/app/tests/suites/certification/Test_TC_G_1_1.yaml b/src/app/tests/suites/certification/Test_TC_G_1_1.yaml index dd933420efd39d..f0e103e587b49b 100644 --- a/src/app/tests/suites/certification/Test_TC_G_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_1_1.yaml @@ -58,6 +58,16 @@ tests: hasMasksSet: [0x1] - label: "Step 4: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -65,14 +75,14 @@ tests: type: list contains: [0, 65528, 65529, 65531, 65532, 65533] - # EventList disabled for 1.2 - # - label: "Step 5: TH reads EventList from DUT" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5: TH reads EventList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - label: "Step 6: TH reads AcceptedCommandList from DUT" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_HEPAFREMON_1_1.yaml b/src/app/tests/suites/certification/Test_TC_HEPAFREMON_1_1.yaml index 2f12608801499f..267e5c7e4dbd3f 100644 --- a/src/app/tests/suites/certification/Test_TC_HEPAFREMON_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_HEPAFREMON_1_1.yaml @@ -81,7 +81,17 @@ tests: type: bitmap32 hasMasksSet: [0x3] - - label: "Step 4a: Read the global attribute: AttributeList" + - label: "Step 4: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [2, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -176,14 +186,42 @@ tests: - name: "expectedValue" value: "y" - # EventList disabled for 1.2 - # - label: "Step 5: TH reads EventList attribute from DUT" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: TH reads EventList attribute from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool hepafiltermonitoring read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685962407.372836][11665:11667] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0071 Attribute 0x0000_FFFA DataVersion: 1815992336 + [1685962407.372946][11665:11667] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_ICDM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_ICDM_1_1.yaml index 6174152fce3db8..1f40e0cdb01e16 100755 --- a/src/app/tests/suites/certification/Test_TC_ICDM_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ICDM_1_1.yaml @@ -58,6 +58,16 @@ tests: type: bitmap32 - label: "Step 4a: TH reads AttributeList attribute from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList attribute from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -143,15 +153,44 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool icdmanagement read event-list 1 0 + + On TH(chip-tool), Verify that the DUT response provides a list of supported events. + For this cluster the list is usually empty but it can contain manufacturer specific event IDs. + + + [1685123881696] [39723:393591] [TOO] Endpoint: 0 Cluster: 0x0000_0046 Attribute 0x0000_FFFA DataVersion: 93993128 + [1685123881696] [39723:393591] [TOO] EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: TH reads AcceptedCommandList attribute from DUT" PICS: " !ICDM.S.F00 && !ICDM.S.C03.Rsp " diff --git a/src/app/tests/suites/certification/Test_TC_ILL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_ILL_1_1.yaml index 4219db229dbbbc..8ea873b567d34b 100644 --- a/src/app/tests/suites/certification/Test_TC_ILL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ILL_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -75,6 +85,30 @@ tests: type: list contains: [4] + #Manufacturer specific event IDs check not possible + - label: + "Step 5: Read EventList attribute from the DUT.For this cluster the + list is usually empty but it can contain manufacturer specific event + IDs." + verification: | + ./chip-tool illuminancemeasurement read event-list 1 1 + + On TH(chip-tool), Verify that the DUT response provides a list of supported events. For this cluster the list is usually empty but it can contain manufacturer specific event IDs. + [1676460615.124432][26109:26111] CHIP:DMG: } + [1676460615.124515][26109:26111] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0400 Attribute 0x0000_FFFA DataVersion: 3234297781 + [1676460615.124549][26109:26111] CHIP:TOO: EventList: 0 entries + [1676460615.124602][26109:26111] CHIP:EM: <<< [E:27336i S:46366 M:151273397 (Ack:143578317)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676460615.124616][26109:26111] CHIP:IN: (S) Sending msg 151273397 on secure session with LSID: 46366 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + - label: "Step 6: Read the global attribute: AcceptedCommandList" command: "readAttribute" attribute: "AcceptedCommandList" diff --git a/src/app/tests/suites/certification/Test_TC_I_1_1.yaml b/src/app/tests/suites/certification/Test_TC_I_1_1.yaml index deca64e22d4544..fb5fb954f62b3b 100644 --- a/src/app/tests/suites/certification/Test_TC_I_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_I_1_1.yaml @@ -57,7 +57,17 @@ tests: # constraints: # type: bitmap32 - - label: "Step 4: Read the global attribute: AttributeList" + - label: "Step 4: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -101,6 +111,7 @@ tests: value: [] constraints: type: list + #Commenting out the step IdentifyQueryResponse (0x00) is not supported by Matter 1.0 #- label: # "Read the optional command(IdentifyQueryResponse) in @@ -112,3 +123,25 @@ tests: # value: [0] # constraints: # type: list + + #Manufacturer specific event IDs check not possible + - label: + "Step 7: Read EventList attribute from the DUT. For this cluster the + list is usually empty but it can contain manufacturer specific event + IDs." + verification: | + ./chip-tool identify read event-list 1 1 + + On TH(chip-tool) verify that the DUT response provides a list of supported events. For this cluster the list is empty + 1676291532.905818][27664:27666] CHIP:DMG: } + [1676291532.905861][27664:27666] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFA DataVersion: 4211856524 + [1676291532.905871][27664:27666] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml index be47ef92e3dc27..a13c83a6d3da94 100644 --- a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml @@ -84,6 +84,16 @@ tests: hasMasksSet: [0x4] - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -106,11 +116,12 @@ tests: constraints: type: list contains: [1] - # EventList disabled for 1.2 - # - label: "Step 6: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_LCFG_1_1.yaml b/src/app/tests/suites/certification/Test_TC_LCFG_1_1.yaml index 85fe3ed8af7bc6..9797c149fd9fbf 100644 --- a/src/app/tests/suites/certification/Test_TC_LCFG_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LCFG_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -55,14 +65,14 @@ tests: type: list contains: [0, 1, 65528, 65529, 65531, 65532, 65533] - # EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - label: "Step 6: TH reads AcceptedCommandList from DUT" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_LOWPOWER_1_1.yaml b/src/app/tests/suites/certification/Test_TC_LOWPOWER_1_1.yaml index e955835625c738..5aca08d6cb6097 100644 --- a/src/app/tests/suites/certification/Test_TC_LOWPOWER_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LOWPOWER_1_1.yaml @@ -50,6 +50,16 @@ tests: type: bitmap32 - label: "Step 3: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + value: [65528, 65529, 65530, 65531, 65532, 65533] + constraints: + type: list + + - label: "Step 3: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -72,11 +82,12 @@ tests: value: [] constraints: type: list - # EventList disabled for 1.2 - # - label: "Step 6: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_LTIME_1_2.yaml b/src/app/tests/suites/certification/Test_TC_LTIME_1_2.yaml index 33950dd9f0a6a9..57fe0341318cfc 100644 --- a/src/app/tests/suites/certification/Test_TC_LTIME_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_LTIME_1_2.yaml @@ -49,6 +49,16 @@ tests: maxValue: 1 - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -78,14 +88,14 @@ tests: type: list contains: [2] - # EventList disabled for 1.2 - # - label: "Step 5: TH reads EventList from DUT" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5: TH reads EventList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - label: "Step 6: TH reads AcceptedCommandList from DUT" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_LUNIT_1_2.yaml b/src/app/tests/suites/certification/Test_TC_LUNIT_1_2.yaml index 7fbfe8f6e54b36..fa50e96346d9f3 100644 --- a/src/app/tests/suites/certification/Test_TC_LUNIT_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_LUNIT_1_2.yaml @@ -60,6 +60,16 @@ tests: hasMasksSet: [0x1] - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -78,14 +88,14 @@ tests: type: list contains: [0] - # EventList disabled for 1.2 - # - label: "Step 5: TH reads EventList from DUT" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5: TH reads EventList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - label: "Step 6: TH reads AcceptedCommandList from DUT" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml index a4905e2992c8cb..969f09c8313941 100644 --- a/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml @@ -82,6 +82,16 @@ tests: hasMasksSet: [0x4] - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 15, 17, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -199,12 +209,12 @@ tests: value: [] constraints: type: list - #EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 5: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_LWM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_LWM_1_1.yaml index 36dc76ce57e379..e06d2b9761edd9 100644 --- a/src/app/tests/suites/certification/Test_TC_LWM_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LWM_1_1.yaml @@ -74,6 +74,14 @@ tests: [1690184549.210831][15408:15410] CHIP:TOO: [10]: 65533 disabled: true + - label: "Step 5: TH reads from the DUT the EventList attribute." + verification: | + ./chip-tool laundrywashermode read event-list 1 1 + Verify "EventList" contains a list of supported events, for this cluster the list is emty(0 entries) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + [1690184560.096147][15413:15415] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0051 Attribute 0x0000_FFFA DataVersion: 3075628268 + [1690184560.096165][15413:15415] CHIP:TOO: EventList: 0 entries + disabled: true + - label: "Step 6: TH reads from the DUT the AcceptedCommandList attribute." verification: | ./chip-tool laundrywashermode read accepted-command-list 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml index 9885a39219daea..19f5ac35d7d12a 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_1_4.yaml @@ -62,6 +62,16 @@ tests: hasMasksSet: [0x1] - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -103,12 +113,12 @@ tests: value: [] constraints: type: list - #EventList disabled for 1.2 - # - label: "Step 6: Read the global attribute: EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml index 57fe8a15f3d28a..18b9fde6dcd66e 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml @@ -73,6 +73,16 @@ tests: hasMasksSet: [0x2] - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -234,12 +244,12 @@ tests: constraints: type: list contains: [10] - #EventList disabled for 1.2 - # - label: "Step 6: Read the global attribute: EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml b/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml index abd126fe080310..1463f1ef97e668 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml @@ -68,6 +68,16 @@ tests: type: bitmap32 - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 3, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -145,15 +155,43 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Read the global attribute: EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: TH reads from the DUT the EventList attribute" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool modeselect read event-list 1 1 + + Verify "EventList" contains a list of supported events, for this cluster the list is emty(0 entries) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1689917350.563148][4845:4847] CHIP:DMG: } + [1689917350.570130][4845:4847] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_FFFA DataVersion: 2316721935 + [1689917350.572844][4845:4847] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: TH reads AcceptedCommandList attribute from DUT" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_NDOCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_NDOCONC_1_1.yaml index 2331248c0ee889..94419844933a8e 100644 --- a/src/app/tests/suites/certification/Test_TC_NDOCONC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_NDOCONC_1_1.yaml @@ -185,6 +185,16 @@ tests: hasMasksClear: [0x20] - label: "Step 4a: Read the global attribute: AttributeList" + command: "readAttribute" + attribute: "AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + response: + constraints: + type: list + contains: [9, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -351,15 +361,42 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + command: "readAttribute" + attribute: "EventList" + PICS: PICS_EVENT_LIST_ENABLED + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool nitrogendioxideconcentrationmeasurement read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685965965.418394][11855:11857] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0413 Attribute 0x0000_FFFA DataVersion: 2476226943 + [1685965965.418498][11855:11857] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_OCC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_OCC_1_1.yaml index f286978e90739b..ae73ecbd1b2307 100644 --- a/src/app/tests/suites/certification/Test_TC_OCC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_OCC_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -55,15 +65,14 @@ tests: type: list contains: [0, 1, 2, 65528, 65529, 65531, 65532, 65533] - #EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - label: "Step 6: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_OO_1_1.yaml b/src/app/tests/suites/certification/Test_TC_OO_1_1.yaml index bbd098e4903721..3978eeb80ee4f6 100644 --- a/src/app/tests/suites/certification/Test_TC_OO_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_OO_1_1.yaml @@ -70,6 +70,16 @@ tests: hasMasksSet: [0x2] - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -131,6 +141,37 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool onoff read event-list 1 1 + + Verify "EventList" contains a list of supported events, for this cluster the list is emty(0 entries) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1676352490.164738][6271:6273] CHIP:DMG: SuppressResponse = true, + [1676352490.164742][6271:6273] CHIP:DMG: InteractionModelRevision = 1 + [1676352490.164745][6271:6273] CHIP:DMG: } + [1676352490.164804][6271:6273] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_FFFA DataVersion: 2406349519 + [1676352490.164822][6271:6273] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" attribute: "AcceptedCommandList" diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_1_2.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_1_2.yaml index 9debb492a15792..4317aaa975c8dc 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_1_2.yaml @@ -51,6 +51,30 @@ tests: type: bitmap32 - label: "Step 4a: TH reads AttributeList from DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [ + 0xFFFD, + 0xFFFC, + 0xFFFB, + 0xFFFA, + 0xFFF9, + 0xFFF8, + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + ] + + - label: "Step 4a: TH reads AttributeList from DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -114,6 +138,37 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool operationalcredentials read event-list 1 0 + + Verify " EventList " on the TH(Chip-tool) Log: + Below is the example value which is observed in the RPI platform the value may be differ based on the dut implementation. + [1677044259.559572][29732:29734] CHIP:DMG: } + [1677044259.559655][29732:29734] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_FFFA DataVersion: 806612356 + [1677044259.560285][29732:29734] CHIP:TOO: EventList: 0 entries + [1677044259.560354][29732:29734] CHIP:EM: <<< [E:35511i S:22620 M:102340651 (Ack:219865295)] (S) Msg TX to 1:0000000000000001 [682F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1677044259.560369][29732:29734] CHIP:IN: (S) Sending msg 102340651 on secure session with LSID: 22620 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + - label: "Step 6a: TH reads AcceptedCommandList from DUT" command: "readAttribute" attribute: "AcceptedCommandList" diff --git a/src/app/tests/suites/certification/Test_TC_OPSTATE_1_1.yaml b/src/app/tests/suites/certification/Test_TC_OPSTATE_1_1.yaml index 9f896040d95167..a2c7bfb0dbb87f 100644 --- a/src/app/tests/suites/certification/Test_TC_OPSTATE_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPSTATE_1_1.yaml @@ -48,6 +48,17 @@ tests: type: bitmap32 - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [0, 1, 3, 4, 5, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -110,26 +121,62 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Step 5a: TH reads from the DUT the EventList attribute." - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x00] - - # - label: - # "Step 5b: TH reads from the DUT the optional - # event(OperationCompletion) in EventList." - # PICS: PICS_EVENT_LIST_ENABLED && OPSTATE.S.E01 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x01] + - label: "Step 5a: TH reads from the DUT the EventList attribute." + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x00] + + - label: + "Step 5b: TH reads from the DUT the optional + event(OperationCompletion) in EventList." + PICS: PICS_EVENT_LIST_ENABLED && OPSTATE.S.E01 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x01] + + - label: + "Step 5c: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool operationalstate read event-list 1 1 + + Verify " EventList attribute " value consists the list of mandatory event (0) and it may include the optional events (1) on the TH(Chip-tool) Log: + Below is the sample log provided for the raspi platform: + + + [1689672855.519671][16517:16519] CHIP:DMG: } + [1689672855.519771][16517:16519] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_FFFA DataVersion: 2102885775 + [1689672855.519802][16517:16519] CHIP:TOO: EventList: 2 entries + [1689672855.519820][16517:16519] CHIP:TOO: [1]: 0 + [1689672855.519826][16517:16519] CHIP:TOO: [2]: 1 + [1689672855.519881][16517:16519] CHIP:EM: <<< [E:4310i S:43612 M:6147213 (Ack:7921904)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689672855.519894][16517:16519] CHIP:IN: (S) Sending msg 6147213 on secure session with LSID: 43612 + [1689672855.519920][16517:16519] CHIP:EM: Flushed pending ack for MessageCounter:7921904 on exchange 4310i + [1689672855.520077][16517:16517] CHIP:CTL: Shutting down the commissioner + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the optional command(Start) in AcceptedCommandList" PICS: OPSTATE.S.C02 diff --git a/src/app/tests/suites/certification/Test_TC_OZCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_OZCONC_1_1.yaml index ae0778de4c1070..659fc245be8625 100644 --- a/src/app/tests/suites/certification/Test_TC_OZCONC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_OZCONC_1_1.yaml @@ -187,6 +187,16 @@ tests: - label: "Step 4a: Read the global attribute: AttributeList" command: "readAttribute" attribute: "AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + response: + constraints: + type: list + contains: [9, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + command: "readAttribute" + attribute: "AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" response: constraints: type: list @@ -349,15 +359,42 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + command: "readAttribute" + attribute: "EventList" + PICS: PICS_EVENT_LIST_ENABLED + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: Read the global attribute: EventList. 1.The list SHALL NOT + contain any additional values in the standard or scoped range: + (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The + list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool ozoneconcentrationmeasurement read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685965965.418394][11855:11857] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0415 Attribute 0x0000_FFFA DataVersion: 2247512014 + [1685965965.418498][11855:11857] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_PCC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PCC_1_1.yaml index c85e44e8fa425b..fcf5943f1f5538 100644 --- a/src/app/tests/suites/certification/Test_TC_PCC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PCC_1_1.yaml @@ -128,6 +128,31 @@ tests: hasMasksSet: [0x40] - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [ + 0, + 1, + 2, + 17, + 18, + 19, + 32, + 65528, + 65529, + 65530, + 65531, + 65532, + 65533, + ] + + - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -371,206 +396,259 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Step 5a: TH reads EventList from DUT" - # PICS: - # "PICS_EVENT_LIST_ENABLED && !PCC.S.E00 && !PCC.S.E01 && !PCC.S.E02 && - # !PCC.S.E03 && !PCC.S.E04 && !PCC.S.E05 && !PCC.S.E06 && !PCC.S.E07 && - # !PCC.S.E08 && !PCC.S.E09 && !PCC.S.E0a && !PCC.S.E0b && !PCC.S.E0c && - # !PCC.S.E0d && !PCC.S.E0e && !PCC.S.E0f && !PCC.S.E10 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list - - # - label: - # "Step 5b: TH reads from the DUT the EventList optional - # (SupplyVoltageLow)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x00] - - # - label: - # "Step 5c: TH reads from the DUT the EventList optional - # (SupplyVoltageHigh)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E01 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x01] - - # - label: - # "Step 5d: TH reads from the DUT the EventList optional - # (PowerMissingPhase)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E02 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x02] - - # - label: - # "Step 5e: TH reads from the DUT the EventList optional - # (SystemPressureLow)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E03 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x03] - - # - label: - # "Step 5f: TH reads from the DUT the EventList optional - # (SystemPressureHigh)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E04 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x04] - - # - label: - # "Step 5g: TH reads from the DUT the EventList optional - # (DryRunning)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E05 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x05] - - # - label: - # "Step 5h: TH reads from the DUT the EventList optional - # (MotorTemperatureHigh)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E06 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x06] - - # - label: - # "Step 5i: TH reads from the DUT the EventList optional - # (PumpMotorFatalFailure)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E07 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x07] - - # - label: - # "Step 5j: TH reads from the DUT the EventList optional - # (ElectronicTemperatureHigh)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E08 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x08] - - # - label: - # "Step 5k: TH reads from the DUT the EventList optional - # (PumpBlocked)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E09 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x09] - - # - label: - # "Step 5l: TH reads from the DUT the EventList optional - # (SensorFailure)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0a - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x0a] - - # - label: - # "Step 5m: TH reads from the DUT the EventList optional - # (ElectronicNonFatalFailure)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0b - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x0b] - - # - label: - # "Step 5n: TH reads from the DUT the EventList optional - # (ElectronicFatalFailure)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0c - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x0c] - - # - label: - # "Step 5o: TH reads from the DUT the EventList optional - # (GeneralFault)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0d - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x0d] - - # - label: - # "Step 5p: TH reads from the DUT the EventList optional - # (Leakage)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0e - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x0e] - - # - label: - # "Step 5q: TH reads from the DUT the EventList optional - # (AirDetection)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0f - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x0f] - - # - label: - # "Step 5r: TH reads from the DUT the EventList optional - # (TurbineOperation)attribute." - # PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E10 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x10] + - label: "Step 5a: TH reads EventList from DUT" + PICS: + "PICS_EVENT_LIST_ENABLED && !PCC.S.E00 && !PCC.S.E01 && !PCC.S.E02 && + !PCC.S.E03 && !PCC.S.E04 && !PCC.S.E05 && !PCC.S.E06 && !PCC.S.E07 && + !PCC.S.E08 && !PCC.S.E09 && !PCC.S.E0a && !PCC.S.E0b && !PCC.S.E0c && + !PCC.S.E0d && !PCC.S.E0e && !PCC.S.E0f && !PCC.S.E10 " + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList optional + (SupplyVoltageLow)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E00 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x00] + + - label: + "Step 5c: TH reads from the DUT the EventList optional + (SupplyVoltageHigh)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E01 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x01] + + - label: + "Step 5d: TH reads from the DUT the EventList optional + (PowerMissingPhase)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E02 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x02] + + - label: + "Step 5e: TH reads from the DUT the EventList optional + (SystemPressureLow)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E03 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x03] + + - label: + "Step 5f: TH reads from the DUT the EventList optional + (SystemPressureHigh)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E04 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x04] + + - label: + "Step 5g: TH reads from the DUT the EventList optional + (DryRunning)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E05 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x05] + + - label: + "Step 5h: TH reads from the DUT the EventList optional + (MotorTemperatureHigh)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E06 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x06] + + - label: + "Step 5i: TH reads from the DUT the EventList optional + (PumpMotorFatalFailure)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E07 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x07] + + - label: + "Step 5j: TH reads from the DUT the EventList optional + (ElectronicTemperatureHigh)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E08 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x08] + + - label: + "Step 5k: TH reads from the DUT the EventList optional + (PumpBlocked)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E09 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x09] + + - label: + "Step 5l: TH reads from the DUT the EventList optional + (SensorFailure)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0a + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x0a] + + - label: + "Step 5m: TH reads from the DUT the EventList optional + (ElectronicNonFatalFailure)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0b + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x0b] + + - label: + "Step 5n: TH reads from the DUT the EventList optional + (ElectronicFatalFailure)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0c + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x0c] + + - label: + "Step 5o: TH reads from the DUT the EventList optional + (GeneralFault)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0d + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x0d] + + - label: + "Step 5p: TH reads from the DUT the EventList optional + (Leakage)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0e + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x0e] + + - label: + "Step 5q: TH reads from the DUT the EventList optional + (AirDetection)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E0f + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x0f] + + - label: + "Step 5r: TH reads from the DUT the EventList optional + (TurbineOperation)attribute." + PICS: PICS_EVENT_LIST_ENABLED && PCC.S.E10 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x10] + + - label: + "Step 5s: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool pumpconfigurationandcontrol read event-list 1 1 + + On TH(chip-tool) Verify that the DUT response contains the EventList attribute and have the list of supported events: + The list MAY include these optional entries: + - 0x00: SHALL be included if and only if PCC.S.E0000(SupplyVoltageLow) + - 0x01: SHALL be included if and only if PCC.S.E0001(SupplyVoltageHigh) + - 0x02: SHALL be included if and only if PCC.S.E0002(PowerMissingPhase) + - 0x03: SHALL be included if and only if PCC.S.E0003(SystemPressureLow) + - 0x04: SHALL be included if and only if PCC.S.E0004(SystemPressureHigh) + - 0x05: SHALL be included if and only if PCC.S.E0005(DryRunning) + - 0x06: SHALL be included if and only if PCC.S.E0006(MotorTemperatureHigh) + - 0x07: SHALL be included if and only if PCC.S.E0007(PumpMotorFatalFailure) + - 0x08: SHALL be included if and only if PCC.S.E0008(ElectronicTemperatureHigh) + - 0x09: SHALL be included if and only if PCC.S.E0009(PumpBlocked) + - 0x0a: SHALL be included if and only if PCC.S.E000a(SensorFailure) + - 0x0b: SHALL be included if and only if PCC.S.E000b(ElectronicNonFatalFailure) + - 0x0c: SHALL be included if and only if PCC.S.E000c(ElectronicFatalFailure) + - 0x0d: SHALL be included if and only if PCC.S.E000d(GeneralFault) + - 0x0e: SHALL be included if and only if PCC.S.E000e(Leakage) + - 0x0f: SHALL be included if and only if PCC.S.E000f(AirDetection) + - 0x10: SHALL be included if and only if PCC.S.E0010(TurbineOperation) + + Below is the example log which is observed in the RPI platform the value may be differ based on the dut implementation. + + + [1686205705.406393][87308:87310] CHIP:DMG: InteractionModelRevision = 1 + [1686205705.406398][87308:87310] CHIP:DMG: } + [1686205705.406480][87308:87310] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0200 Attribute 0x0000_FFFA DataVersion: 1492393553 + [1686205705.406516][87308:87310] CHIP:TOO: EventList: 0 entries + [1686205705.406573][87308:87310] CHIP:EM: <<< [E:31574i S:8973 M:178548658 (Ack:33480356)] (S) Msg TX to 1:0000000000000001 [6D93] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686205705.406586][87308:87310] CHIP:IN: (S) Sending msg 178548658 on secure session with LSID: 8973 + [1686205705.406613][87308:87310] CHIP:EM: Flushed pending ack for MessageCounter:33480356 on exchange 31574i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list diff --git a/src/app/tests/suites/certification/Test_TC_PMHCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PMHCONC_1_1.yaml index 8fdb3ef8d99a9d..1ea2ab1c48abe4 100644 --- a/src/app/tests/suites/certification/Test_TC_PMHCONC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PMHCONC_1_1.yaml @@ -187,6 +187,16 @@ tests: - label: "Step 4a: Read the global attribute: AttributeList" command: "readAttribute" attribute: "AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + response: + constraints: + type: list + contains: [9, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + command: "readAttribute" + attribute: "AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" response: constraints: type: list @@ -351,15 +361,42 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + command: "readAttribute" + attribute: "EventList" + PICS: PICS_EVENT_LIST_ENABLED + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool pm1concentrationmeasurement read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685965965.418394][11855:11857] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_042C Attribute 0x0000_FFFA DataVersion: 435533597 + [1685965965.418498][11855:11857] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_PMICONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PMICONC_1_1.yaml index c16fc7434ecf18..e5a30836467c32 100644 --- a/src/app/tests/suites/certification/Test_TC_PMICONC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PMICONC_1_1.yaml @@ -187,6 +187,16 @@ tests: - label: "Step 4a: Read the global attribute: AttributeList" command: "readAttribute" attribute: "AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + response: + constraints: + type: list + contains: [9, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + command: "readAttribute" + attribute: "AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" response: constraints: type: list @@ -351,15 +361,42 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + command: "readAttribute" + attribute: "EventList" + PICS: PICS_EVENT_LIST_ENABLED + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool pm25concentrationmeasurement read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685965965.418394][11855:11857] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_042A Attribute 0x0000_FFFA DataVersion: 3260928085 + [1685965965.418498][11855:11857] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_PMKCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PMKCONC_1_1.yaml index 5efb0b6549f627..7184fa2ffd1079 100644 --- a/src/app/tests/suites/certification/Test_TC_PMKCONC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PMKCONC_1_1.yaml @@ -187,6 +187,16 @@ tests: - label: "Step 4a: Read the global attribute: AttributeList" command: "readAttribute" attribute: "AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + response: + constraints: + type: list + contains: [9, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + command: "readAttribute" + attribute: "AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" response: constraints: type: list @@ -351,15 +361,42 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + command: "readAttribute" + attribute: "EventList" + PICS: PICS_EVENT_LIST_ENABLED + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool pm10concentrationmeasurement read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685965965.418394][11855:11857] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_042D Attribute 0x0000_FFFA DataVersion: 3341825536 + [1685965965.418498][11855:11857] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_PRS_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PRS_1_1.yaml index 7a724376723fc3..c0d8aa716b2a09 100644 --- a/src/app/tests/suites/certification/Test_TC_PRS_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PRS_1_1.yaml @@ -60,6 +60,16 @@ tests: hasMasksSet: [0x1] - label: "Step 4a: Read the global mandatory attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global mandatory attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -165,6 +175,39 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool pressuremeasurement read event-list 1 1 + + Verify " EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log: + Below is the example log which is observed in the RPI platform the value may be differ based on the dut implementation. + + [1686210799.291240][88805:88807] CHIP:DMG: } + [1686210799.291272][88805:88807] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0403 Attribute 0x0000_FFFA DataVersion: 897514884 + [1686210799.291292][88805:88807] CHIP:TOO: EventList: 0 entries + [1686210799.291317][88805:88807] CHIP:EM: <<< [E:36299i S:44480 M:65231550 (Ack:23015388)] (S) Msg TX to 1:0000000000000001 [6D93] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686210799.291321][88805:88807] CHIP:IN: (S) Sending msg 65231550 on secure session with LSID: 44480 + [1686210799.291331][88805:88807] CHIP:EM: Flushed pending ack for MessageCounter:23015388 on exchange 36299i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + - label: "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) diff --git a/src/app/tests/suites/certification/Test_TC_PSCFG_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PSCFG_1_1.yaml index 894850a9421549..daf03596787564 100644 --- a/src/app/tests/suites/certification/Test_TC_PSCFG_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PSCFG_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4: TH reads the AttributeList attribute from the DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4: TH reads the AttributeList attribute from the DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -70,25 +80,26 @@ tests: value: [] constraints: type: list - #EvevntList disabled for 1.2 - # #Manufacturer specific event IDs check not possible - # - label: - # "Step 7: Read EventList attribute from the DUT.For this cluster the - # list is usually empty but it can contain manufacturer specific event - # IDs." - # verification: | - # ./chip-tool powersourceconfiguration read event-list 1 0 - # Verify "EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log: - # [1676465821.421939][28007:28009] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002E Attribute 0x0000_FFFA DataVersion: 1659126157 - # [1676465821.421975][28007:28009] CHIP:TOO: EventList: 0 entries - # [1676465821.422017][28007:28009] CHIP:EM: <<< [E:59109i S:5686 M:123325798 (Ack:214612225)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) - # [1676465821.422029][28007:28009] CHIP:IN: (S) Sending msg 123325798 on secure session with LSID: 5686 - # cluster: "LogCommands" - # command: "UserPrompt" - # PICS: PICS_USER_PROMPT - # arguments: - # values: - # - name: "message" - # value: "Please enter 'y' for success" - # - name: "expectedValue" - # value: "y" + + #Manufacturer specific event IDs check not possible + - label: + "Step 7: Read EventList attribute from the DUT.For this cluster the + list is usually empty but it can contain manufacturer specific event + IDs." + verification: | + ./chip-tool powersourceconfiguration read event-list 1 0 + + Verify "EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log: + [1676465821.421939][28007:28009] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002E Attribute 0x0000_FFFA DataVersion: 1659126157 + [1676465821.421975][28007:28009] CHIP:TOO: EventList: 0 entries + [1676465821.422017][28007:28009] CHIP:EM: <<< [E:59109i S:5686 M:123325798 (Ack:214612225)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676465821.422029][28007:28009] CHIP:IN: (S) Sending msg 123325798 on secure session with LSID: 5686 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml index b4edb57fbb80b8..a7c768b7d70c4f 100644 --- a/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml @@ -93,6 +93,17 @@ tests: hasMasksSet: [0x2, 0x8] - label: "Step 4: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [0, 1, 2, 0x1f, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -159,64 +170,68 @@ tests: value: [] constraints: type: list - #EventList disabled for 1.2 - # - label: "Step 7a: Read the global attribute: EventList" - # PICS: "PICS_EVENT_LIST_ENABLED && !PS.S.E00 && !PS.S.E01 && !PS.S.E02 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list - # - label: "Step 7b: Read PS.S.E00(WiredFaultChange) event in EventList" - # PICS: PICS_EVENT_LIST_ENABLED && PS.S.E00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0] - # - label: "Step 7c: Read PS.S.E01(BatFaultChange) event in EventList" - # PICS: PICS_EVENT_LIST_ENABLED && PS.S.E01 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1] - # - label: "Step 7d: Read PS.S.E02(BatChargeFaultChange) event in EventList" - # PICS: PICS_EVENT_LIST_ENABLED && PS.S.E02 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [2] - # #Manufacturer specific event IDs check not possible - # - label: - # "Step 7e: Read EventList attribute from the DUT.For this cluster the - # list is usually empty but it can contain manufacturer specific event - # IDs." - # verification: | - # ./chip-tool powersource read event-list 1 1 - # On TH(chip-tool), Verify that the DUT response provides a list of supported events. This list can be empty or contain following optional event IDs: - # if PS.S.E00(WiredFaultChange) : 0 - # if PS.S.E01(BatFaultChange): 1 - # if PS.S.E02(BatChargeFaultChange): 2 - # Optionally the list can also contain manufacturer specific event IDs. - # [1676465733.563197][27987:27989] CHIP:DMG: } - # [1676465733.563336][27987:27989] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_002F Attribute 0x0000_FFFA DataVersion: 2315782406 - # [1676465733.563366][27987:27989] CHIP:TOO: EventList: 1 entries - # [1676465733.563377][27987:27989] CHIP:TOO: [1]: 1 - # [1676465733.563449][27987:27989] CHIP:EM: <<< [E:56136i S:18318 M:225491668 (Ack:80009006)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) - # [1676465733.563464][27987:27989] CHIP:IN: (S) Sending msg 225491668 on secure session with LSID: 18318 - # [1676465733.563514][27987:27989] CHIP:EM: Flushed pending ack for MessageCounter:80009006 on exchange 56136i - # cluster: "LogCommands" - # command: "UserPrompt" - # PICS: PICS_USER_PROMPT - # arguments: - # values: - # - name: "message" - # value: "Please enter 'y' for success" - # - name: "expectedValue" - # value: "y" + + - label: "Step 7a: Read the global attribute: EventList" + PICS: "PICS_EVENT_LIST_ENABLED && !PS.S.E00 && !PS.S.E01 && !PS.S.E02 " + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: "Step 7b: Read PS.S.E00(WiredFaultChange) event in EventList" + PICS: PICS_EVENT_LIST_ENABLED && PS.S.E00 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0] + + - label: "Step 7c: Read PS.S.E01(BatFaultChange) event in EventList" + PICS: PICS_EVENT_LIST_ENABLED && PS.S.E01 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1] + + - label: "Step 7d: Read PS.S.E02(BatChargeFaultChange) event in EventList" + PICS: PICS_EVENT_LIST_ENABLED && PS.S.E02 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [2] + + #Manufacturer specific event IDs check not possible + - label: + "Step 7e: Read EventList attribute from the DUT.For this cluster the + list is usually empty but it can contain manufacturer specific event + IDs." + verification: | + ./chip-tool powersource read event-list 1 1 + On TH(chip-tool), Verify that the DUT response provides a list of supported events. This list can be empty or contain following optional event IDs: + if PS.S.E00(WiredFaultChange) : 0 + if PS.S.E01(BatFaultChange): 1 + if PS.S.E02(BatChargeFaultChange): 2 + Optionally the list can also contain manufacturer specific event IDs. + [1676465733.563197][27987:27989] CHIP:DMG: } + [1676465733.563336][27987:27989] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_002F Attribute 0x0000_FFFA DataVersion: 2315782406 + [1676465733.563366][27987:27989] CHIP:TOO: EventList: 1 entries + [1676465733.563377][27987:27989] CHIP:TOO: [1]: 1 + [1676465733.563449][27987:27989] CHIP:EM: <<< [E:56136i S:18318 M:225491668 (Ack:80009006)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676465733.563464][27987:27989] CHIP:IN: (S) Sending msg 225491668 on secure session with LSID: 18318 + [1676465733.563514][27987:27989] CHIP:EM: Flushed pending ack for MessageCounter:80009006 on exchange 56136i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_REFALM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_REFALM_1_1.yaml index 6f0cb7de18d797..a13b45da41082a 100644 --- a/src/app/tests/suites/certification/Test_TC_REFALM_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_REFALM_1_1.yaml @@ -75,6 +75,19 @@ tests: [1689677267.384931][18335:18337] CHIP:IN: (S) Sending msg 71138788 on secure session with LSID: 49245 disabled: true + - label: "Step 5: TH reads from the DUT the EventList attribute." + verification: | + ./chip-tool refrigeratoralarm read event-list 1 1 + Verify " EventList attribute " consists the list may contain optional events(1) on the TH(Chip-tool) Log: + Below is the sample log provided for the raspi platform: + [1689677416.105596][18367:18369] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_FFFA DataVersion: 1517282962 + [1689677416.105625][18367:18369] CHIP:TOO: EventList: 1 entries + [1689677416.105635][18367:18369] CHIP:TOO: [1]: 0 + [1689677416.105696][18367:18369] CHIP:EM: <<< [E:51484i S:36714 M:192916227 (Ack:1705890)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689677416.105710][18367:18369] CHIP:IN: (S) Sending msg 192916227 on secure session with LSID: 36714 + [1689677416.105737][18367:18369] CHIP:EM: Flushed pending ack for MessageCounter:1705890 on exchange 51484i + disabled: true + - label: "Step 6: TH reads from the DUT the AcceptedCommandList attribute." verification: | ./chip-tool refrigeratoralarm read accepted-command-list 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_RH_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RH_1_1.yaml index caf6487dec2b0a..47c2f78e3c9ad3 100644 --- a/src/app/tests/suites/certification/Test_TC_RH_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_RH_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -79,25 +89,25 @@ tests: value: [] constraints: type: list - #EventList disabled for 1.2 - # #Manufacturer specific event IDs check not possible - # - label: - # "Step 7: Read EventList attribute from the DUT.For this cluster the - # list is usually empty but it can contain manufacturer specific event - # IDs." - # verification: | - # ./chip-tool relativehumiditymeasurement read event-list 1 1 - # Verify " EventList " consists the list of supported events, in this cluster in RPI the value is 0 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - # [1676357956.011759][8095:8097] CHIP:DMG: } - # [1676357956.011914][8095:8097] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0405 Attribute 0x0000_FFFA DataVersion: 3619476420 - # [1676357956.011967][8095:8097] CHIP:TOO: EventList: 0 entries - # cluster: "LogCommands" - # cluster: "LogCommands" - # command: "UserPrompt" - # PICS: PICS_USER_PROMPT - # arguments: - # values: - # - name: "message" - # value: "Please enter 'y' for success" - # - name: "expectedValue" - # value: "y" + + #Manufacturer specific event IDs check not possible + - label: + "Step 7: Read EventList attribute from the DUT.For this cluster the + list is usually empty but it can contain manufacturer specific event + IDs." + verification: | + ./chip-tool relativehumiditymeasurement read event-list 1 1 + + Verify " EventList " consists the list of supported events, in this cluster in RPI the value is 0 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + [1676357956.011759][8095:8097] CHIP:DMG: } + [1676357956.011914][8095:8097] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0405 Attribute 0x0000_FFFA DataVersion: 3619476420 + [1676357956.011967][8095:8097] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_RNCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RNCONC_1_1.yaml index bd84ddbb159d63..34fc1cd767ad2d 100644 --- a/src/app/tests/suites/certification/Test_TC_RNCONC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_RNCONC_1_1.yaml @@ -187,6 +187,16 @@ tests: - label: "Step 4a: Read the global attribute: AttributeList" command: "readAttribute" attribute: "AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + response: + constraints: + type: list + contains: [9, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + command: "readAttribute" + attribute: "AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" response: constraints: type: list @@ -351,15 +361,42 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + command: "readAttribute" + attribute: "EventList" + PICS: PICS_EVENT_LIST_ENABLED + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool radonconcentrationmeasurement read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685965965.418394][11855:11857] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_042F Attribute 0x0000_FFFA DataVersion: 3741862926 + [1685965965.418498][11855:11857] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml index b169e83a892f36..b2944016faeebc 100644 --- a/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml @@ -60,6 +60,16 @@ tests: hasMasksSet: [0x1] - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -142,15 +152,42 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Read the global attribute: EventList from the DUT" - # PICS: PICS_EVENT_LIST_ENABLED && RVCCLEANM.S.Afffa - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList from the DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: Read the global attribute: EventList from the DUT. 1.The + list SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool rvccleanmode read event-list 1 1 + + Verify "EventList" contains a list of supported events, for this cluster the list is emty(0 entries) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1690182289.222668][14980:14982] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0055 Attribute 0x0000_FFFA DataVersion: 3145953005 + [1690182289.222680][14980:14982] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute AcceptedCommandList. Check if it diff --git a/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_1_1.yaml index 92e454e33d3610..7ef88673b129ff 100644 --- a/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_1_1.yaml @@ -48,6 +48,17 @@ tests: type: bitmap32 - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [0, 1, 3, 4, 5, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -66,26 +77,62 @@ tests: type: list contains: [2] - #EventList disabled for 1.2 - # - label: "Step 5a: TH reads from the DUT the EventList attribute." - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x00] - - # - label: - # "Step 5b: TH reads from the DUT the optional - # event(OperationCompletion) in EventList." - # PICS: PICS_EVENT_LIST_ENABLED && RVCOPSTATE.S.E01 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0x01] + - label: "Step 5a: TH reads from the DUT the EventList attribute." + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x00] + + - label: + "Step 5b: TH reads from the DUT the optional + event(OperationCompletion) in EventList." + PICS: PICS_EVENT_LIST_ENABLED && RVCOPSTATE.S.E01 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0x01] + + - label: + "Step 5c: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool rvcoperationalstate read event-list 1 1 + + Verify " EventList attribute " value consists the list of mandatory event (0) and it may include the optional events (1) on the TH(Chip-tool) Log: + Below is the sample log provided for the raspi platform: + [1690201497.386141][14975:14977] CHIP:DMG: InteractionModelRevision = 1 + [1690201497.386195][14975:14977] CHIP:DMG: } + [1690201497.386630][14975:14977] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0061 Attribute 0x0000_FFFA DataVersion: 3675566847 + [1690201497.386776][14975:14977] CHIP:TOO: EventList: 2 entries + [1690201497.386846][14975:14977] CHIP:TOO: [1]: 0 + [1690201497.386907][14975:14977] CHIP:TOO: [2]: 1 + [1690201497.387222][14975:14977] CHIP:EM: <<< [E:56916i S:1295 M:30022149 (Ack:183426353)] (S) Msg TX to 1:0000000000000001 [9278] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1690201497.387319][14975:14977] CHIP:IN: (S) Sending msg 30022149 on secure session with LSID: 1295 + [1690201497.387559][14975:14977] CHIP:EM: Flushed pending ack for MessageCounter:183426353 on exchange 56916i + [1690201497.387972][14975:14975] CHIP:CTL: Shutting down the commissioner + [1690201497.388046][14975:14975] CHIP:CTL: Stopping commissioning discovery over DNS-SD + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the optional command(Pause) in AcceptedCommandList" PICS: RVCOPSTATE.S.C00.Rsp || RVCOPSTATE.S.C03.Rsp diff --git a/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml index 7eb08eca3ba4f8..376e2b661b6f83 100644 --- a/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml @@ -60,6 +60,16 @@ tests: hasMasksSet: [0x1] - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -142,15 +152,42 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Read the global attribute: EventList from the DUT" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList from the DUT" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool rvcrunmode read event-list 1 1 + + Verify "EventList" contains a list of supported events, for this cluster the list is emty(0 entries) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1690177367.986733][6269:6271] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0054 Attribute 0x0000_FFFA DataVersion: 551764487 + [1690177367.986879][6269:6271] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute AcceptedCommandList. Check if it diff --git a/src/app/tests/suites/certification/Test_TC_SMOKECO_1_1.yaml b/src/app/tests/suites/certification/Test_TC_SMOKECO_1_1.yaml index 7e46d16d49d606..c9762f148a7dc1 100644 --- a/src/app/tests/suites/certification/Test_TC_SMOKECO_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SMOKECO_1_1.yaml @@ -164,71 +164,70 @@ tests: type: list contains: [12] - #EventList disabled for 1.2 - # - label: "TH reads from the DUT the EventList attribute" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [2, 3, 4, 5, 10] + - label: "TH reads from the DUT the EventList attribute" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [2, 3, 4, 5, 10] - # - label: "TH reads from the DUT the EventList attribute(SmokeAlarm)" - # PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0] + - label: "TH reads from the DUT the EventList attribute(SmokeAlarm)" + PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E00 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0] - # - label: "TH reads from the DUT the EventList attribute(COAlarm)" - # PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E01 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1] + - label: "TH reads from the DUT the EventList attribute(COAlarm)" + PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E01 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1] - # - label: "TH reads from the DUT the EventList attribute(AlarmMuted)" - # PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E06 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [6] + - label: "TH reads from the DUT the EventList attribute(AlarmMuted)" + PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E06 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [6] - # - label: "TH reads from the DUT the EventList attribute(MuteEnded)" - # PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E07 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [7] + - label: "TH reads from the DUT the EventList attribute(MuteEnded)" + PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E07 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [7] - # - label: - # "TH reads from the DUT the EventList attribute(InterconnectSmokeAlarm)" - # PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E08 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [8] + - label: + "TH reads from the DUT the EventList attribute(InterconnectSmokeAlarm)" + PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E08 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [8] - # - label: - # "TH reads from the DUT the EventList attribute(InterconnectCOAlarm)" - # PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E09 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [9] + - label: + "TH reads from the DUT the EventList attribute(InterconnectCOAlarm)" + PICS: PICS_EVENT_LIST_ENABLED && SMOKECO.S.E09 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [9] - label: "TH reads from the DUT the AcceptedCommandList attribute" PICS: "!SMOKECO.S.C00.Rsp" diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_1_1.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_1_1.yaml index 6c5fefbd931878..5213f66e66dc3a 100644 --- a/src/app/tests/suites/certification/Test_TC_SWTCH_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SWTCH_1_1.yaml @@ -122,7 +122,16 @@ tests: contains: [2] - label: "Step 4b: Read the global attribute: AttributeList" - PICS: "!SWTCH.S.F04" + PICS: "PICS_EVENT_LIST_ENABLED && !SWTCH.S.F04" + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4b: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED && !SWTCH.S.F04" command: "readAttribute" attribute: "AttributeList" response: @@ -130,87 +139,86 @@ tests: type: list contains: [0, 1, 65528, 65529, 65531, 65532, 65533] - #EventList disabled for 1.2 - # - label: "Step 5a: Read the global attribute: EventList " - # PICS: - # "!SWTCH.S.F00 && !SWTCH.S.F01 && !SWTCH.S.F02 && !SWTCH.S.F03 && - # !SWTCH.S.F04 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list - - # - label: "Step 5b: Read EventList if SWTCH.S.F00(LS)" - # PICS: PICS_EVENT_LIST_ENABLED && SWTCH.S.F00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [0] - - # - label: "Step 5c: Read EventList if SWTCH.S.F01(MS) & !SWTCH.S.F02(MSR)" - # PICS: PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && !SWTCH.S.F02 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1] - - # - label: - # "Step 5d: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & - # !SWTCH.S.F03(MSL) & !SWTCH.S.F04(MSM)" - # PICS: - # " PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && - # !SWTCH.S.F03 && !SWTCH.S.F04 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1, 3] - - # - label: - # "Step 5e: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & - # SWTCH.S.F03(MSL) & !SWTCH.S.F04(MSM)" - # PICS: - # " PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && SWTCH.S.F03 - # && !SWTCH.S.F04 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1, 2, 3, 4] - - # - label: - # "Step 5f: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & - # !SWTCH.S.F03(MSL) & SWTCH.S.F04(MSM) " - # PICS: - # " PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && - # !SWTCH.S.F03 && SWTCH.S.F04 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1, 3, 5, 6] - - # - label: - # "Step 5g: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & - # SWTCH.S.F03(MSL) & SWTCH.S.F04(MSM) " - # PICS: - # " PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && SWTCH.S.F03 - # && SWTCH.S.F04 " - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [1, 2, 3, 4, 5, 6] + - label: "Step 5a: Read the global attribute: EventList " + PICS: + "!SWTCH.S.F00 && !SWTCH.S.F01 && !SWTCH.S.F02 && !SWTCH.S.F03 && + !SWTCH.S.F04 " + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list + + - label: "Step 5b: Read EventList if SWTCH.S.F00(LS)" + PICS: PICS_EVENT_LIST_ENABLED && SWTCH.S.F00 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0] + + - label: "Step 5c: Read EventList if SWTCH.S.F01(MS) & !SWTCH.S.F02(MSR)" + PICS: PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && !SWTCH.S.F02 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1] + + - label: + "Step 5d: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & + !SWTCH.S.F03(MSL) & !SWTCH.S.F04(MSM)" + PICS: + " PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && + !SWTCH.S.F03 && !SWTCH.S.F04 " + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1, 3] + + - label: + "Step 5e: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & + SWTCH.S.F03(MSL) & !SWTCH.S.F04(MSM)" + PICS: + " PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && SWTCH.S.F03 + && !SWTCH.S.F04 " + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1, 2, 3, 4] + + - label: + "Step 5f: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & + !SWTCH.S.F03(MSL) & SWTCH.S.F04(MSM) " + PICS: + " PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && + !SWTCH.S.F03 && SWTCH.S.F04 " + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1, 3, 5, 6] + + - label: + "Step 5g: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & + SWTCH.S.F03(MSL) & SWTCH.S.F04(MSM) " + PICS: + " PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && SWTCH.S.F03 + && SWTCH.S.F04 " + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1, 2, 3, 4, 5, 6] - label: "Step 6: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_S_1_1.yaml b/src/app/tests/suites/certification/Test_TC_S_1_1.yaml index 9a285b46375999..bd0ae223813eb3 100644 --- a/src/app/tests/suites/certification/Test_TC_S_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_S_1_1.yaml @@ -62,7 +62,34 @@ tests: - label: "Step 4: Read AttributeList (global attribute 65531) if S.S.A0005 is true" - PICS: S.S.A0005 + PICS: S.S.A0005 && PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 65528, + 65529, + 65530, + 65531, + 65532, + 65533, + ] + + - label: + "Step 4: Read AttributeList (global attribute 65531) if S.S.A0005 is + true" + PICS: S.S.A0005 && !PICS_EVENT_LIST_ENABLED command: "readAttribute" attribute: "AttributeList" response: @@ -74,7 +101,33 @@ tests: - label: "Step 4: Read AttributeList (global attribute 65531) if S.S.A0005 is false" - PICS: " !S.S.A0005 " + PICS: " !S.S.A0005 && PICS_EVENT_LIST_ENABLED" + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [ + 0, + 1, + 2, + 3, + 4, + 6, + 7, + 65528, + 65529, + 65530, + 65531, + 65532, + 65533, + ] + + - label: + "Step 4: Read AttributeList (global attribute 65531) if S.S.A0005 is + false" + PICS: " !S.S.A0005 && !PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -82,15 +135,42 @@ tests: type: list contains: [0, 1, 2, 3, 4, 6, 7, 65528, 65529, 65531, 65532, 65533] - #EventList disabled for 1.2 - # - label: "Step 5: Read EventList (global attribute 65530)" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # type: list - # contains: [] + - label: "Step 5a: Read EventList (global attribute 65530)" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [] + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool scenes read event-list 1 1 + + Verify the "EventList" value on the TH (Chip-tool) and below is the sample log provided for the raspi platform: + + [1685124260776] [40519:400294] [TOO] Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_FFFA DataVersion: 2585861686 + [1685124260776] [40519:400294] [TOO] EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read AcceptedCommandList (global attribute 65529)" PICS: S.S.C40.Rsp diff --git a/src/app/tests/suites/certification/Test_TC_TCCM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TCCM_1_1.yaml index 3f25a00c50ed40..ea76d9b267cd75 100644 --- a/src/app/tests/suites/certification/Test_TC_TCCM_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TCCM_1_1.yaml @@ -71,6 +71,14 @@ tests: [1690189598.832210][16140:16142] CHIP:TOO: [10]: 65533 disabled: true + - label: "Step 5: TH reads from the DUT the EventList attribute." + verification: | + ./chip-tool refrigeratorandtemperaturecontrolledcabinetmode read event-list 1 1 + Verify "EventList" contains a list of supported events, for this cluster the list is emty(0 entries) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + [1690189614.840538][16147:16149] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0052 Attribute 0x0000_FFFA DataVersion: 473867547 + [1690189614.840589][16147:16149] CHIP:TOO: EventList: 0 entries + disabled: true + - label: "Step 6: TH reads from the DUT the AcceptedCommandList attribute." verification: | ./chip-tool refrigeratorandtemperaturecontrolledcabinetmode read accepted-command-list 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_TCTL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TCTL_1_1.yaml index a625b1c0b2c134..b86b24051b7926 100644 --- a/src/app/tests/suites/certification/Test_TC_TCTL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TCTL_1_1.yaml @@ -113,3 +113,18 @@ tests: [1689770475.939872][9215:9217] CHIP:IN: (S) Sending msg 36313621 on secure session with LSID: 30992 [1689770475.939880][9215:9217] CHIP:EM: Flushed pending ack for MessageCounter:205412119 on exchange 56043i disabled: true + + - label: "Step 7: TH reads from the DUT the EventList attribute." + verification: | + ./chip-tool temperaturecontrol read event-list 1 1 + Verify " EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + [1689770528.788582][9233:9235] CHIP:DMG: InteractionModelRevision = 1 + [1689770528.788587][9233:9235] CHIP:DMG: } + [1689770528.788671][9233:9235] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0056 Attribute 0x0000_FFFA DataVersion: 2844459846 + [1689770528.788703][9233:9235] CHIP:TOO: EventList: 0 entries + [1689770528.788768][9233:9235] CHIP:EM: <<< [E:60387i S:1870 M:236365893 (Ack:64478273)] (S) Msg TX to 1:0000000000000001 [9CA1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689770528.788782][9233:9235] CHIP:IN: (S) Sending msg 236365893 on secure session with LSID: 1870 + [1689770528.788826][9233:9235] CHIP:EM: Flushed pending ack for MessageCounter:64478273 on exchange 60387i + [1689770528.788927][9233:9233] CHIP:CTL: Shutting down the commissioner + [1689770528.788948][9233:9233] CHIP:CTL: Stopping commissioning discovery over DNS-SD + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TGTNAV_1_9.yaml b/src/app/tests/suites/certification/Test_TC_TGTNAV_1_9.yaml index f54803938cba6a..636477d18707dd 100644 --- a/src/app/tests/suites/certification/Test_TC_TGTNAV_1_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_TGTNAV_1_9.yaml @@ -50,6 +50,16 @@ tests: type: bitmap32 - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -82,11 +92,12 @@ tests: constraints: type: list contains: [1] - #EventList disabled for 1.2 - # - label: "Step 6: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_TIMESYNC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TIMESYNC_1_1.yaml index aace42f3765400..57b5be93ad9170 100644 --- a/src/app/tests/suites/certification/Test_TC_TIMESYNC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TIMESYNC_1_1.yaml @@ -139,6 +139,25 @@ tests: ########################## # Mandatory entries - label: "TS4: Check for mandatory attributes in AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + contains: + [ + 0x0000, + 0x0001, + 0xFFF8, + 0xFFF9, + 0xFFFA, + 0xFFFB, + 0xFFFC, + 0xFFFD, + ] + + - label: "TS4: Check for mandatory attributes in AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -283,54 +302,98 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 # Note - additional exclusions not handled here ########################## # TS 5: Event list - NOTE: disabled ########################## # mandatory - # - label: "TS5: Check for mandatory events in EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # contains: [0x03] + - label: "TS5: Check for mandatory events in EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + constraints: + contains: [0x03] - # Feature TZ - # - label: "TS5: Check for TZ feature-based events in EventList" - # PICS: PICS_EVENT_LIST_ENABLED && TIMESYNC.S.F00 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # contains: [0x00, 0x01, 0x02] - - # - label: "TS5: Check for TZ feature-based events not in EventList" - # PICS: "PICS_EVENT_LIST_ENABLED && !TIMESYNC.S.F00" - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # excludes: [0x00, 0x01, 0x02] + #Feature TZ + - label: "TS5: Check for TZ feature-based events in EventList" + PICS: PICS_EVENT_LIST_ENABLED && TIMESYNC.S.F00 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + contains: [0x00, 0x01, 0x02] - # Feature TSC - # - label: "TS5: Check for TSC feature-based events in EventList" - # PICS: PICS_EVENT_LIST_ENABLED && TIMESYNC.S.F03 - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # contains: [0x04] - - # - label: "TS5: Check for TSC feature-based events not in EventList" - # PICS: "PICS_EVENT_LIST_ENABLED && !TIMESYNC.S.F03" - # command: "readAttribute" - # attribute: "EventList" - # response: - # constraints: - # excludes: [0x04] + - label: "TS5: Check for TZ feature-based events not in EventList" + PICS: "PICS_EVENT_LIST_ENABLED && !TIMESYNC.S.F00" + command: "readAttribute" + attribute: "EventList" + response: + constraints: + excludes: [0x00, 0x01, 0x02] + + #Feature TSC + - label: "TS5: Check for TSC feature-based events in EventList" + PICS: PICS_EVENT_LIST_ENABLED && TIMESYNC.S.F03 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + contains: [0x04] + + - label: "TS5: Check for TSC feature-based events not in EventList" + PICS: "PICS_EVENT_LIST_ENABLED && !TIMESYNC.S.F03" + command: "readAttribute" + attribute: "EventList" + response: + constraints: + excludes: [0x04] + + - label: + "TS5: TH reads from the DUT the EventList attribute. 1.The list SHALL + NOT contain any additional values in the standard or scoped range: + (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The + list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool timesynchronization read event-list 1 0 + + Via the TH (chip-tool), verify: + The list SHALL include all the mandatory entries: 0x03 + The list include entries based on feature support: + 0x00 SHALL be included if and only if TIMESYNC.S.F00(TZ) + 0x01 SHALL be included if and only if TIMESYNC.S.F00(TZ) + 0x02 SHALL be included if and only if TIMESYNC.S.F00(TZ) + 0x04 SHALL be included if and only if TIMESYNC.S.F03(TSC) + + Below is the example value which is observed in the RPI platform the value may be differ based on the dut implementation. + + [1688648817.829533][149513:149515] CHIP:DMG: } + [1688648817.829584][149513:149515] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0038 Attribute 0x0000_FFFA DataVersion: 1776331179 + [1688648817.829600][149513:149515] CHIP:TOO: EventList: 5 entries + [1688648817.829606][149513:149515] CHIP:TOO: [1]: 0 + [1688648817.829607][149513:149515] CHIP:TOO: [2]: 1 + [1688648817.829609][149513:149515] CHIP:TOO: [3]: 2 + [1688648817.829610][149513:149515] CHIP:TOO: [4]: 3 + [1688648817.829612][149513:149515] CHIP:TOO: [5]: 4 + [1688648817.829644][149513:149515] CHIP:EM: <<< [E:37598i S:15729 M:18516326 (Ack:233541454)] (S) Msg TX to 1:0000000000000001 [3784] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1688648817.829648][149513:149515] CHIP:IN: (S) Sending msg 18516326 on secure session with LSID: 15729 + [1688648817.829657][149513:149515] CHIP:EM: Flushed pending ack for MessageCounter:233541454 on exchange 37598i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" # Note - additional exclusions not handled here diff --git a/src/app/tests/suites/certification/Test_TC_TMP_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TMP_1_1.yaml index 01f7ce625a9e19..52792256be90dc 100644 --- a/src/app/tests/suites/certification/Test_TC_TMP_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TMP_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -79,26 +89,27 @@ tests: value: [] constraints: type: list - #EventList disabled for 1.2 - # #Manufacturer specific event IDs check not possible - # - label: - # "Step 7: Read EventList attribute from the DUT.For this cluster the - # list is usually empty but it can contain manufacturer specific event - # IDs." - # verification: | - # ./chip-tool temperaturemeasurement read event-list 1 1 - # On TH(chip-tool), Verify that the DUT response provides a list of supported events. For this cluster the list is usually empty but it can contain manufacturer specific event IDs. - # [1676466045.154072][28094:28096] CHIP:DMG: } - # [1676466045.154196][28094:28096] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0402 Attribute 0x0000_FFFA DataVersion: 3399649825 - # [1676466045.154248][28094:28096] CHIP:TOO: EventList: 0 entries - # [1676466045.154309][28094:28096] CHIP:EM: <<< [E:12674i S:5317 M:190747810 (Ack:263910212)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) - # [1676466045.154323][28094:28096] CHIP:IN: (S) Sending msg 190747810 on secure session with LSID: 5317 - # cluster: "LogCommands" - # command: "UserPrompt" - # PICS: PICS_USER_PROMPT - # arguments: - # values: - # - name: "message" - # value: "Please enter 'y' for success" - # - name: "expectedValue" - # value: "y" + + #Manufacturer specific event IDs check not possible + - label: + "Step 7: Read EventList attribute from the DUT.For this cluster the + list is usually empty but it can contain manufacturer specific event + IDs." + verification: | + ./chip-tool temperaturemeasurement read event-list 1 1 + + On TH(chip-tool), Verify that the DUT response provides a list of supported events. For this cluster the list is usually empty but it can contain manufacturer specific event IDs. + [1676466045.154072][28094:28096] CHIP:DMG: } + [1676466045.154196][28094:28096] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0402 Attribute 0x0000_FFFA DataVersion: 3399649825 + [1676466045.154248][28094:28096] CHIP:TOO: EventList: 0 entries + [1676466045.154309][28094:28096] CHIP:EM: <<< [E:12674i S:5317 M:190747810 (Ack:263910212)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676466045.154323][28094:28096] CHIP:IN: (S) Sending msg 190747810 on secure session with LSID: 5317 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" 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 f1652592b0431d..cefd166e28065b 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 @@ -142,6 +142,16 @@ tests: hasMasksSet: [0x40] - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 27, 28, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -607,26 +617,27 @@ tests: constraints: type: list contains: [1] - #EVentList disabled for 1.2 - # #Manufacturer specific event IDs check not possible - # - label: - # "Step 7: Read EventList attribute from the DUT.For this cluster the - # list is usually empty but it can contain manufacturer specific event - # IDs." - # verification: | - # ./chip-tool thermostat read event-list 1 1 - # On TH(chip-tool), Verify that the DUT response provides a list of supported events. For this cluster the list is usually empty but it can contain manufacturer specific event IDs. - # [1676466998.893033][29061:29063] CHIP:DMG: } - # [1676466998.893114][29061:29063] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0201 Attribute 0x0000_FFFA DataVersion: 2603128677 - # [1676466998.893155][29061:29063] CHIP:TOO: EventList: 0 entries - # [1676466998.893209][29061:29063] CHIP:EM: <<< [E:35662i S:59401 M:190799889 (Ack:191492950)] (S) Msg TX to 1:0000000000000001 [3F11] --- Type 0000:10 (SecureChannel:StandaloneAck) - # [1676466998.893221][29061:29063] CHIP:IN: (S) Sending msg 190799889 on secure session with LSID: 59401 - # cluster: "LogCommands" - # command: "UserPrompt" - # PICS: PICS_USER_PROMPT - # arguments: - # values: - # - name: "message" - # value: "Please enter 'y' for success" - # - name: "expectedValue" - # value: "y" + + #Manufacturer specific event IDs check not possible + - label: + "Step 7: Read EventList attribute from the DUT.For this cluster the + list is usually empty but it can contain manufacturer specific event + IDs." + verification: | + ./chip-tool thermostat read event-list 1 1 + + On TH(chip-tool), Verify that the DUT response provides a list of supported events. For this cluster the list is usually empty but it can contain manufacturer specific event IDs. + [1676466998.893033][29061:29063] CHIP:DMG: } + [1676466998.893114][29061:29063] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0201 Attribute 0x0000_FFFA DataVersion: 2603128677 + [1676466998.893155][29061:29063] CHIP:TOO: EventList: 0 entries + [1676466998.893209][29061:29063] CHIP:EM: <<< [E:35662i S:59401 M:190799889 (Ack:191492950)] (S) Msg TX to 1:0000000000000001 [3F11] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676466998.893221][29061:29063] CHIP:IN: (S) Sending msg 190799889 on secure session with LSID: 59401 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" 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 09b1002c230edf..5880ab6abd29d4 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 @@ -47,7 +47,17 @@ tests: constraints: type: bitmap32 - - label: "Step 4a: Read the global attribute: AttributeList" + - label: "Step 4: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -173,26 +183,27 @@ tests: value: "Please enter 'y' for success" - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # #Manufacturer specific event IDs check not possible - # - label: - # "Step 7: Read EventList attribute from the DUT.For this cluster the - # list is usually empty but it can contain manufacturer specific event - # IDs." - # verification: | - # ./chip-tool thermostatuserinterfaceconfiguration read event-list 1 1 - # On TH(chip-tool), Verify that the DUT response provides a list of supported events. For this cluster the list is usually empty but it can contain manufacturer specific event IDs. - # [1676466144.926927][28127:28129] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_FFFA DataVersion: 317726044 - # [1676466144.926964][28127:28129] CHIP:TOO: EventList: 0 entries - # [1676466144.927021][28127:28129] CHIP:EM: <<< [E:22756i S:22644 M:99305003 (Ack:156666885)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) - # [1676466144.927035][28127:28129] CHIP:IN: (S) Sending msg 99305003 on secure session with LSID: 22644 - # [1676466144.927067][28127:28129] CHIP:EM: Flushed pending ack for MessageCounter:156666885 on exchange 22756i - # cluster: "LogCommands" - # command: "UserPrompt" - # PICS: PICS_USER_PROMPT - # arguments: - # values: - # - name: "message" - # value: "Please enter 'y' for success" - # - name: "expectedValue" - # value: "y" + + #Manufacturer specific event IDs check not possible + - label: + "Step 7: Read EventList attribute from the DUT.For this cluster the + list is usually empty but it can contain manufacturer specific event + IDs." + verification: | + ./chip-tool thermostatuserinterfaceconfiguration read event-list 1 1 + + On TH(chip-tool), Verify that the DUT response provides a list of supported events. For this cluster the list is usually empty but it can contain manufacturer specific event IDs. + [1676466144.926927][28127:28129] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_FFFA DataVersion: 317726044 + [1676466144.926964][28127:28129] CHIP:TOO: EventList: 0 entries + [1676466144.927021][28127:28129] CHIP:EM: <<< [E:22756i S:22644 M:99305003 (Ack:156666885)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1676466144.927035][28127:28129] CHIP:IN: (S) Sending msg 99305003 on secure session with LSID: 22644 + [1676466144.927067][28127:28129] CHIP:EM: Flushed pending ack for MessageCounter:156666885 on exchange 22756i + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_TVOCCONC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TVOCCONC_1_1.yaml index 5cf1f5cd65d58f..ff5ef4e560d878 100644 --- a/src/app/tests/suites/certification/Test_TC_TVOCCONC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TVOCCONC_1_1.yaml @@ -187,6 +187,16 @@ tests: - label: "Step 4a: Read the global attribute: AttributeList" command: "readAttribute" attribute: "AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + response: + constraints: + type: list + contains: [9, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + command: "readAttribute" + attribute: "AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" response: constraints: type: list @@ -351,15 +361,42 @@ tests: - name: "expectedValue" value: "y" - #EventList disabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5a: Read the global attribute: EventList" + command: "readAttribute" + attribute: "EventList" + PICS: PICS_EVENT_LIST_ENABLED + response: + value: [] + constraints: + type: list + + - label: + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list + SHALL NOT contain any additional values in the standard or scoped + range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. + The list MAY contain values in the Manufacturer Extensible Identifier + (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed + MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The + list SHALL NOT contain any values in the Test Vendor or invalid range: + (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - + 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the + allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool totalvolatileorganiccompoundsconcentrationmeasurement read event-list 1 1 + + Via the TH (chip-tool), verify that the EventList attribute. Below mentioned log is based on the RPI implementation, Value may vary on real DUT + + [1685965965.418394][11855:11857] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_042E Attribute 0x0000_FFFA DataVersion: 1180043964 + [1685965965.418498][11855:11857] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 6a: Read the global attribute: AcceptedCommandList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml index e62a2a8c116038..17970de7312fdb 100644 --- a/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ULABEL_1_1.yaml @@ -48,6 +48,16 @@ tests: type: bitmap32 - label: "Step 4a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: "Step 4a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -92,6 +102,31 @@ tests: - name: "expectedValue" value: "y" + - label: + "Step 5: Read the global attribute: EventList. 1.The list MAY contain + values in the Manufacturer Extensible Identifier (MEI) range: + (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range + (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT + contain any values in the Test Vendor or invalid range: (0x0000_0100 - + 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - + 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)" + verification: | + ./chip-tool userlabel read event-list 1 0 + + Verify "EventList" contains a list of supported events, for this cluster the list SHALL be empty(0 entries) on the TH(Chip-tool) Log: + 1676373264.278073][11583:11585] CHIP:DMG: } + [1676373264.278133][11583:11585] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0041 Attribute 0x0000_FFFA DataVersion: 916074662 + [1676373264.278155][11583:11585] CHIP:TOO: EventList: 0 entries + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + - label: "Step 6: Read the global attribute: AcceptedCommandList. 1.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) diff --git a/src/app/tests/suites/certification/Test_TC_WAKEONLAN_1_5.yaml b/src/app/tests/suites/certification/Test_TC_WAKEONLAN_1_5.yaml index 3c78e77855be96..6f7a235bf0922b 100644 --- a/src/app/tests/suites/certification/Test_TC_WAKEONLAN_1_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_WAKEONLAN_1_5.yaml @@ -50,6 +50,16 @@ tests: type: bitmap32 - label: "Step 3a: Read the global attribute: AttributeList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [65528, 65529, 65530, 65531, 65531, 65533] + + - label: "Step 3a: Read the global attribute: AttributeList" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -81,12 +91,12 @@ tests: value: [] constraints: type: list - #EventList disabled for 1.2 - # - label: "Step 6: Read the global attribute: EventList" - # PICS: PICS_EVENT_LIST_ENABLED - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + + - label: "Step 6: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_1_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_1_1.yaml index 93eb03d9046175..b8417fe63a2046 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_1_1.yaml @@ -112,6 +112,18 @@ tests: - label: "Step 4a: TH reads from the DUT the (0xFFFB) AttributeList attribute" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: + [0, 7, 10, 13, 23, 65528, 65529, 65530, 65531, 65532, 65533] + + - label: + "Step 4a: TH reads from the DUT the (0xFFFB) AttributeList attribute" + PICS: "!PICS_EVENT_LIST_ENABLED" command: "readAttribute" attribute: "AttributeList" response: @@ -173,14 +185,14 @@ tests: type: list contains: [12, 15] - #EventList diabled for 1.2 - # - label: "Step 5: Read the global attribute: EventList" - # command: "readAttribute" - # attribute: "EventList" - # response: - # value: [] - # constraints: - # type: list + - label: "Step 5: Read the global attribute: EventList" + PICS: PICS_EVENT_LIST_ENABLED + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - label: "Step 6a: TH reads from the DUT the (0xFFF9) AcceptedCommandList diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index 4c8ed132fdc008..6025a953f089ca 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -2210,7 +2210,7 @@ ACFREMON.S.A0002=1 ACFREMON.S.A0003=1 ACFREMON.S.A0004=1 ACFREMON.S.A0005=1 -ACFREMON.S.C00.Rsp=0 +ACFREMON.S.C00.Rsp=1 # Air Quality AIRQUAL.C=0 diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 5e2c47fa8bcba4..ba0267ee2ab9da 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -2225,7 +2225,7 @@ class TestAccessControlClusterSuite : public TestCommand class Test_TC_ACL_1_1Suite : public TestCommand { public: - Test_TC_ACL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_1_1", 8, credsIssuerConfig) + Test_TC_ACL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_1_1", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -2292,6 +2292,7 @@ class Test_TC_ACL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -2303,18 +2304,49 @@ class Test_TC_ACL_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } break; case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -2352,17 +2384,24 @@ class Test_TC_ACL_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: TH reads AttributeList attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: TH reads optional attribute (Extension) in AttributeList"); - VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: TH reads AttributeList attribute from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, + LogStep(5, "Step 4b: TH reads optional attribute (Extension) in AttributeList"); + VerifyOrDo(!ShouldSkip("ACL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 6: { + LogStep(6, "Step 4c: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -2377,8 +2416,30 @@ class Test_TC_ACL_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 6: { - LogStep(6, + case 7: { + LogStep(7, "Step 5a: TH reads EventList attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, + "Step 5b: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " + "standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the Manufacturer " + "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " + "0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test Vendor or invalid " + "range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "Step 6: TH reads AcceptedCommandList attribute from DUT. 1. The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -2392,8 +2453,8 @@ class Test_TC_ACL_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 7: { - LogStep(7, + case 10: { + LogStep(10, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -10105,7 +10166,7 @@ class Test_TC_AIRQUAL_1_1Suite : public TestCommand { public: Test_TC_AIRQUAL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_AIRQUAL_1_1", 13, credsIssuerConfig) + TestCommand("Test_TC_AIRQUAL_1_1", 16, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -10205,6 +10266,7 @@ class Test_TC_AIRQUAL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -10212,9 +10274,39 @@ class Test_TC_AIRQUAL_1_1Suite : public TestCommand break; case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } break; case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -10222,11 +10314,11 @@ class Test_TC_AIRQUAL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 10: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 11: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -10238,7 +10330,7 @@ class Test_TC_AIRQUAL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 12: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -10302,12 +10394,19 @@ class Test_TC_AIRQUAL_1_1Suite : public TestCommand } case 7: { LogStep(7, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AirQuality::Id, AirQuality::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { + LogStep(8, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AirQuality::Id, AirQuality::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 9: { LogStep( - 8, + 9, "Step 4b: TH reads from the DUT the AttributeList attribute. 1.The list SHALL NOT contain any additional values in " "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -10322,14 +10421,36 @@ class Test_TC_AIRQUAL_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 9: { - LogStep(9, "Step 6:a Read the global attribute: AcceptedCommandList"); + case 10: { + LogStep(10, "Step 5a: TH reads EventList attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AirQuality::Id, AirQuality::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 11: { + LogStep(11, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AirQuality::Id, AirQuality::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { + case 13: { LogStep( - 10, + 13, "Step 6b: TH reads from the DUT the AcceptedCommandList attribute. 1.The list SHALL NOT contain any additional " "values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list " "MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " @@ -10344,14 +10465,14 @@ class Test_TC_AIRQUAL_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 11: { - LogStep(11, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 14: { + LogStep(14, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AirQuality::Id, AirQuality::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 12: { + case 15: { LogStep( - 12, + 15, "Step 7b: TH reads from the DUT the GeneratedCommandList attribute. 1.The list SHALL NOT contain any additional " "values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list " "MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " @@ -10458,7 +10579,7 @@ class Test_TC_AIRQUAL_2_1Suite : public TestCommand class Test_TC_BOOL_1_1Suite : public TestCommand { public: - Test_TC_BOOL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BOOL_1_1", 6, credsIssuerConfig) + Test_TC_BOOL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BOOL_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -10522,12 +10643,27 @@ class Test_TC_BOOL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -10539,7 +10675,7 @@ class Test_TC_BOOL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 5: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -10551,104 +10687,149 @@ class Test_TC_BOOL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "Step 1: Wait for the commissioned device to be retrieved"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Step 2: Read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::ClusterRevision::Id, - true, chip::NullOptional); - } - case 2: { - LogStep(2, "Step 3: Read the global attribute: FeatureMap"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::FeatureMap::Id, true, - chip::NullOptional); - } - case 3: { - LogStep(3, "Step 4: Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::AttributeList::Id, - true, chip::NullOptional); - } - case 4: { - LogStep(4, "Step 5: Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, - BooleanState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); - } - case 5: { - LogStep(5, "Step 6: Read the global attribute: GeneratedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, - BooleanState::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_BOOL_2_1Suite : public TestCommand -{ -public: - Test_TC_BOOL_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BOOL_2_1", 2, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_BOOL_2_1Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNextListItemDecodes("eventList", iter_0, 0)); + VerifyOrReturn(CheckValue("eventList[0]", iter_0.GetValue(), 0UL)); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 1)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } break; - case 1: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - bool value; + chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Step 1: Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Step 2: Read the global attribute: ClusterRevision"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::ClusterRevision::Id, + true, chip::NullOptional); + } + case 2: { + LogStep(2, "Step 3: Read the global attribute: FeatureMap"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 3: { + LogStep(3, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 4: { + LogStep(4, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 5: { + LogStep(5, "Step 5: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, + BooleanState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "Step 6: Read the global attribute: GeneratedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, + BooleanState::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "Step 7: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("BOOL.S.E00 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Step 7: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip(" !BOOL.S.E00 && PICS_EVENT_LIST_ENABLED "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), BooleanState::Id, BooleanState::Attributes::EventList::Id, true, + chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_BOOL_2_1Suite : public TestCommand +{ +public: + Test_TC_BOOL_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BOOL_2_1", 2, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_BOOL_2_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); } break; default: @@ -10688,7 +10869,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand { public: Test_TC_BRBINFO_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_BRBINFO_1_1", 23, credsIssuerConfig) + TestCommand("Test_TC_BRBINFO_1_1", 28, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -10747,6 +10928,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -10758,7 +10940,12 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: @@ -10767,7 +10954,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; case 6: @@ -10776,7 +10963,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 7: @@ -10785,7 +10972,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 8: @@ -10794,7 +10981,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; case 9: @@ -10803,7 +10990,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 10: @@ -10812,7 +10999,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; case 11: @@ -10821,7 +11008,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); } break; case 12: @@ -10830,7 +11017,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; case 13: @@ -10839,7 +11026,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); } break; case 14: @@ -10848,7 +11035,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); } break; case 15: @@ -10857,7 +11044,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 14UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); } break; case 16: @@ -10866,7 +11053,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 14UL)); } break; case 17: @@ -10875,14 +11062,54 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); } break; case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); + } break; case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + 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)); { chip::app::DataModel::DecodableList value; @@ -10894,11 +11121,11 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 20: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 21: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -10910,7 +11137,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 22: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -10953,95 +11180,102 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: TH reads optional attribute(VendorName) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip(" !PICS_EVENT_LIST_ENABLED "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4c: TH reads optional attribute(VendorID) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4b: TH reads optional attribute(VendorName) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4d: TH reads optional attribute(ProductName) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 4c: TH reads optional attribute(VendorID) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4e: TH reads optional attribute(NodeLabel) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 4d: TH reads optional attribute(ProductName) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4f: TH reads optional attribute(HardwareVersion) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 4e: TH reads optional attribute(NodeLabel) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4g: TH reads optional attribute(HardwareVersionString) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 4f: TH reads optional attribute(HardwareVersion) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 4h: TH reads optional attribute(SoftwareVersion) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 4g: TH reads optional attribute(HardwareVersionString) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 4i: TH reads optional attribute(SoftwareVersionString) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 4h: TH reads optional attribute(SoftwareVersion) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "Step 4j: TH reads optional attribute(ManufacturingDate) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(12, "Step 4i: TH reads optional attribute(SoftwareVersionString) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "Step 4k: TH reads optional attribute(PartNumber) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(13, "Step 4j: TH reads optional attribute(ManufacturingDate) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "Step 4l: TH reads optional attribute(ProductURL) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(14, "Step 4k: TH reads optional attribute(PartNumber) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 15: { - LogStep(15, "Step 4m: TH reads optional attribute(ProductLabel) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(15, "Step 4l: TH reads optional attribute(ProductURL) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4n: TH reads optional attribute(SerialNumber) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4m: TH reads optional attribute(ProductLabel) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { - LogStep(17, "Step 4o: TH reads optional attribute(UniqueID) in AttributeList"); - VerifyOrDo(!ShouldSkip("BRBINFO.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(17, "Step 4n: TH reads optional attribute(SerialNumber) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 18: { - LogStep(18, + LogStep(18, "Step 4o: TH reads optional attribute(UniqueID) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 19: { + LogStep(19, "Step 4p: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -11056,13 +11290,47 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 19: { - LogStep(19, "Step 6a: TH1 reads AcceptedCommandList from DUT"); + case 20: { + LogStep(20, "Step 5a: TH reads optional event(StartUp) in EventList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.E00 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::EventList::Id, true, chip::NullOptional); + } + case 21: { + LogStep(21, "Step 5b: TH reads optional attribute(ShutDown) in EventList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.E01 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::EventList::Id, true, chip::NullOptional); + } + case 22: { + LogStep(22, "Step 5c: TH reads optional attribute(Leave) in EventList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.E02 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::EventList::Id, true, chip::NullOptional); + } + case 23: { + LogStep(23, + "Step 5d: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " + "standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the Manufacturer " + "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " + "0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test Vendor or invalid " + "range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 24: { + LogStep(24, "Step 6a: TH1 reads AcceptedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 25: { + LogStep(25, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -11076,13 +11344,13 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 21: { - LogStep(21, "Step 7a: TH1 reads GeneratedCommandList from DUT"); + case 26: { + LogStep(26, "Step 7a: TH1 reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, BridgedDeviceBasicInformation::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 27: { + LogStep(27, "Step 7b: TH1 reads GeneratedCommandList from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -12075,7 +12343,7 @@ class Test_TC_BRBINFO_2_1Suite : public TestCommand class Test_TC_ACT_1_1Suite : public TestCommand { public: - Test_TC_ACT_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_1_1", 7, credsIssuerConfig) + Test_TC_ACT_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -12140,6 +12408,7 @@ class Test_TC_ACT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -12151,10 +12420,29 @@ class Test_TC_ACT_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -12163,7 +12451,7 @@ class Test_TC_ACT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxLength("value", value, 11)); } break; - case 6: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -12209,22 +12497,39 @@ class Test_TC_ACT_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Actions::Id, Actions::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: Read the optional attribute(SetupURL) in AttributeList"); - VerifyOrDo(!ShouldSkip("ACT.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Actions::Id, Actions::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 6: Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Actions::Id, Actions::Attributes::AcceptedCommandList::Id, true, + LogStep(5, "Step 4b: Read the optional attribute(SetupURL) in AttributeList"); + VerifyOrDo(!ShouldSkip("ACT.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Actions::Id, Actions::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 7: Read the global attribute: GeneratedCommandList"); + LogStep(6, "Step 5: TH reads EventList attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "Step 6: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Actions::Id, Actions::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Step 7: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Actions::Id, Actions::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -12236,7 +12541,7 @@ class Test_TC_ACT_1_1Suite : public TestCommand class Test_TC_BIND_1_1Suite : public TestCommand { public: - Test_TC_BIND_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BIND_1_1", 7, credsIssuerConfig) + Test_TC_BIND_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BIND_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -12300,6 +12605,7 @@ class Test_TC_BIND_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -12307,7 +12613,17 @@ class Test_TC_BIND_1_1Suite : public TestCommand break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -12317,6 +12633,14 @@ class Test_TC_BIND_1_1Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -12351,11 +12675,18 @@ class Test_TC_BIND_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, + LogStep(4, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Binding::Id, Binding::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -12370,8 +12701,24 @@ class Test_TC_BIND_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 5: { - LogStep(5, + case 6: { + LogStep(6, + "Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -12385,8 +12732,8 @@ class Test_TC_BIND_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 6: { - LogStep(6, + case 8: { + LogStep(8, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -12408,7 +12755,7 @@ class Test_TC_BIND_1_1Suite : public TestCommand class Test_TC_CC_1_1Suite : public TestCommand { public: - Test_TC_CC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_1_1", 77, credsIssuerConfig) + Test_TC_CC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_1_1", 79, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -12515,6 +12862,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16394UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -12526,7 +12874,15 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16385UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16394UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 10: @@ -12535,7 +12891,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; case 11: @@ -12544,7 +12900,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; case 12: @@ -12553,7 +12909,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 13: @@ -12562,7 +12918,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 14: @@ -12571,7 +12927,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; case 15: @@ -12580,7 +12936,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; case 16: @@ -12589,7 +12945,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; case 17: @@ -12598,7 +12954,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: @@ -12607,7 +12963,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; case 19: @@ -12616,7 +12972,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); } break; case 20: @@ -12625,7 +12981,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; case 21: @@ -12634,7 +12990,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); } break; case 22: @@ -12643,7 +12999,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); } break; case 23: @@ -12652,7 +13008,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); } break; case 24: @@ -12661,7 +13017,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 25UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); } break; case 25: @@ -12670,7 +13026,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 25UL)); } break; case 26: @@ -12679,7 +13035,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 27UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); } break; case 27: @@ -12688,7 +13044,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 32UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 27UL)); } break; case 28: @@ -12697,7 +13053,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 33UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 32UL)); } break; case 29: @@ -12706,7 +13062,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 34UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 33UL)); } break; case 30: @@ -12715,7 +13071,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 36UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 34UL)); } break; case 31: @@ -12724,7 +13080,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 37UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 36UL)); } break; case 32: @@ -12733,7 +13089,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 38UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 37UL)); } break; case 33: @@ -12742,7 +13098,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 38UL)); } break; case 34: @@ -12751,7 +13107,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); } break; case 35: @@ -12760,7 +13116,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); } break; case 36: @@ -12769,7 +13125,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 48UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); } break; case 37: @@ -12778,7 +13134,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 49UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 48UL)); } break; case 38: @@ -12787,7 +13143,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 50UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 49UL)); } break; case 39: @@ -12796,7 +13152,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 51UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 50UL)); } break; case 40: @@ -12805,7 +13161,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 52UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 51UL)); } break; case 41: @@ -12814,7 +13170,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 54UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 52UL)); } break; case 42: @@ -12823,7 +13179,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 55UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 54UL)); } break; case 43: @@ -12832,7 +13188,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 56UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 55UL)); } break; case 44: @@ -12841,7 +13197,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 58UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 56UL)); } break; case 45: @@ -12850,7 +13206,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 59UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 58UL)); } break; case 46: @@ -12859,7 +13215,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 60UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 59UL)); } break; case 47: @@ -12868,7 +13224,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16384UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 60UL)); } break; case 48: @@ -12877,7 +13233,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16386UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16384UL)); } break; case 49: @@ -12886,7 +13242,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16387UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16386UL)); } break; case 50: @@ -12895,7 +13251,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16388UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16387UL)); } break; case 51: @@ -12904,7 +13260,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16389UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16388UL)); } break; case 52: @@ -12913,7 +13269,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16390UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16389UL)); } break; case 53: @@ -12922,7 +13278,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16395UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16390UL)); } break; case 54: @@ -12931,7 +13287,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16396UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16395UL)); } break; case 55: @@ -12940,7 +13296,7 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16397UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16396UL)); } break; case 56: @@ -12949,10 +13305,31 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16400UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16397UL)); } break; case 57: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16400UL)); + } + break; + case 58: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 59: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -12961,7 +13338,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 58: + case 60: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -12970,7 +13347,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 59: + case 61: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -12979,7 +13356,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 60: + case 62: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -12988,7 +13365,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 61: + case 63: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -12997,7 +13374,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 62: + case 64: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13006,7 +13383,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 63: + case 65: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13015,7 +13392,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 64: + case 66: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13024,7 +13401,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 65: + case 67: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13033,7 +13410,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 66: + case 68: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13042,7 +13419,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); } break; - case 67: + case 69: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13051,7 +13428,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 68: + case 70: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13060,7 +13437,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 64UL)); } break; - case 69: + case 71: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13069,7 +13446,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65UL)); } break; - case 70: + case 72: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13078,7 +13455,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 66UL)); } break; - case 71: + case 73: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13087,7 +13464,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 67UL)); } break; - case 72: + case 74: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13096,7 +13473,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 68UL)); } break; - case 73: + case 75: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13105,7 +13482,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 71UL)); } break; - case 74: + case 76: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13114,7 +13491,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 75UL)); } break; - case 75: + case 77: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13123,7 +13500,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 76UL)); } break; - case 76: + case 78: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13206,413 +13583,426 @@ class Test_TC_CC_1_1Suite : public TestCommand } case 8: { LogStep(8, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4b: Read the optional attribute(CurrentHue) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 4c: Read the optional attribute(CurrentSaturation) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 4b: Read the optional attribute(CurrentHue) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 4d: Read the optional attribute(RemainingTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 4c: Read the optional attribute(CurrentSaturation) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "Step 4e: Read the optional attribute(CurrentX) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(12, "Step 4d: Read the optional attribute(RemainingTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "Step 4f: Read the optional attribute(CurrentY) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(13, "Step 4e: Read the optional attribute(CurrentX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "Step 4g: Read the optional attribute(DriftCompensation) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(14, "Step 4f: Read the optional attribute(CurrentY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 15: { - LogStep(15, "Step 4h: Read the optional attribute(CompensationText) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(15, "Step 4g: Read the optional attribute(DriftCompensation) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4i: Read the optional attribute(ColorTemperatureMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4h: Read the optional attribute(CompensationText) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { - LogStep(17, "Step 4j: Read the optional attribute(NumberOfPrimaries) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(17, "Step 4i: Read the optional attribute(ColorTemperatureMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "Step 4k: Read the optional attribute(Primary1X) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "Step 4j: Read the optional attribute(NumberOfPrimaries) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 19: { - LogStep(19, "Step 4l: Read the optional attribute(Primary1Y) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(19, "Step 4k: Read the optional attribute(Primary1X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 20: { - LogStep(20, "Step 4m: Read the optional attribute(Primary1Intensity) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(20, "Step 4l: Read the optional attribute(Primary1Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 21: { - LogStep(21, "Step 4n: Read the optional attribute(Primary2X) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(21, "Step 4m: Read the optional attribute(Primary1Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 22: { - LogStep(22, "Step 4o: Read the optional attribute(Primary2Y) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(22, "Step 4n: Read the optional attribute(Primary2X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 23: { - LogStep(23, "Step 4p: Read the optional attribute(Primary2Intensity) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(23, "Step 4o: Read the optional attribute(Primary2Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 24: { - LogStep(24, "Step 4q: Read the optional attribute(Primary3X) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(24, "Step 4p: Read the optional attribute(Primary2Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 25: { - LogStep(25, "Step 4r: Read the optional attribute(Primary3Y) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(25, "Step 4q: Read the optional attribute(Primary3X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 26: { - LogStep(26, "Step 4s: Read the optional attribute(Primary3Intensity) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(26, "Step 4r: Read the optional attribute(Primary3Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 27: { - LogStep(27, "Step 4t: Read the optional attribute(Primary4X) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(27, "Step 4s: Read the optional attribute(Primary3Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 28: { - LogStep(28, "Step 4u: Read the optional attribute(Primary4Y) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(28, "Step 4t: Read the optional attribute(Primary4X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 29: { - LogStep(29, "Step 4v: Read the optional attribute(Primary4Intensity) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(29, "Step 4u: Read the optional attribute(Primary4Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 30: { - LogStep(30, "Step 4w: Read the optional attribute(Primary5X) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(30, "Step 4v: Read the optional attribute(Primary4Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 31: { - LogStep(31, "Step 4x: Read the optional attribute(Primary5Y) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(31, "Step 4w: Read the optional attribute(Primary5X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 32: { - LogStep(32, "Step 4y: Read the optional attribute(Primary5Intensity) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(32, "Step 4x: Read the optional attribute(Primary5Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 33: { - LogStep(33, "Step 4z: Read the optional attribute(Primary6X) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(33, "Step 4y: Read the optional attribute(Primary5Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 34: { - LogStep(34, "Step 4a1: Read the optional attribute(Primary6Y) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(34, "Step 4z: Read the optional attribute(Primary6X) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 35: { - LogStep(35, "Step 4a2: Read the optional attribute(Primary6Intensity) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(35, "Step 4a1: Read the optional attribute(Primary6Y) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 36: { - LogStep(36, "Step 4a3: Read the optional attribute(WhitePointX) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(36, "Step 4a2: Read the optional attribute(Primary6Intensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 37: { - LogStep(37, "Step 4a4: Read the optional attribute(WhitePointY) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(37, "Step 4a3: Read the optional attribute(WhitePointX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 38: { - LogStep(38, "Step 4a5: Read the optional attribute(ColorPointRX) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(38, "Step 4a4: Read the optional attribute(WhitePointY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 39: { - LogStep(39, "Step 4a6: Read the optional attribute(ColorPointRY) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(39, "Step 4a5: Read the optional attribute(ColorPointRX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 40: { - LogStep(40, "Step 4a7: Read the optional attribute(ColorPointRIntensity) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0034"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(40, "Step 4a6: Read the optional attribute(ColorPointRY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 41: { - LogStep(41, "Step 4a8: Read the optional attribute(ColorPointGX) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0036"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(41, "Step 4a7: Read the optional attribute(ColorPointRIntensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0034"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 42: { - LogStep(42, "Step 4a9: Read the optional attribute(ColorPointGY) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0037"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(42, "Step 4a8: Read the optional attribute(ColorPointGX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0036"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 43: { - LogStep(43, "Step 4a10: Read the optional attribute(ColorPointGIntensity) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A0038"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(43, "Step 4a9: Read the optional attribute(ColorPointGY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0037"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 44: { - LogStep(44, "Step 4a11: Read the optional attribute(ColorPointBX) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A003a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(44, "Step 4a10: Read the optional attribute(ColorPointGIntensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A0038"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 45: { - LogStep(45, "Step 4a12: Read the optional attribute(ColorPointBY) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A003b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(45, "Step 4a11: Read the optional attribute(ColorPointBX) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A003a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 46: { - LogStep(46, "Step 4a13: Read the optional attribute(ColorPointBIntensity) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A003c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(46, "Step 4a12: Read the optional attribute(ColorPointBY) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A003b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 47: { - LogStep(47, "Step 4a14: Read the optional attribute(EnhancedCurrentHue) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(47, "Step 4a13: Read the optional attribute(ColorPointBIntensity) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A003c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 48: { - LogStep(48, "Step 4a15: Read the optional attribute(ColorLoopActive) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(48, "Step 4a14: Read the optional attribute(EnhancedCurrentHue) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 49: { - LogStep(49, "Step 4a16: Read the optional attribute(ColorLoopDirection) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(49, "Step 4a15: Read the optional attribute(ColorLoopActive) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 50: { - LogStep(50, "Step 4a17: Read the optional attribute(ColorLoopTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(50, "Step 4a16: Read the optional attribute(ColorLoopDirection) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 51: { - LogStep(51, "Step 4a18: Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(51, "Step 4a17: Read the optional attribute(ColorLoopTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 52: { - LogStep(52, "Step 4a19: Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(52, "Step 4a18: Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 53: { - LogStep(53, "Step 4a20: Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A400b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(53, "Step 4a19: Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 54: { - LogStep(54, "Step 4a21: Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A400c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(54, "Step 4a20: Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A400b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 55: { - LogStep(55, "Step 4a22: Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A400d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(55, "Step 4a21: Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A400c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 56: { - LogStep(56, "Step 4a23: Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList"); - VerifyOrDo(!ShouldSkip("CC.S.A4010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(56, "Step 4a22: Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A400d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 57: { - LogStep(57, "Step 6a: Read the optional command(MoveToHue) in AcceptedCommandList"); + LogStep(57, "Step 4a23: Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList"); + VerifyOrDo(!ShouldSkip("CC.S.A4010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 58: { + LogStep(58, "Step 5: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 59: { + LogStep(59, "Step 6a: Read the optional command(MoveToHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 58: { - LogStep(58, "Step 6b: Read the optional command(MoveHue) in AcceptedCommandList"); + case 60: { + LogStep(60, "Step 6b: Read the optional command(MoveHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 59: { - LogStep(59, "Step 6c: Read the optional command(StepHue) in AcceptedCommandList"); + case 61: { + LogStep(61, "Step 6c: Read the optional command(StepHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 60: { - LogStep(60, "Step 6d: Read the optional command(MoveToSaturation) in AcceptedCommandList"); + case 62: { + LogStep(62, "Step 6d: Read the optional command(MoveToSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 61: { - LogStep(61, "Step 6e: Read the optional command(MoveSaturation) in AcceptedCommandList"); + case 63: { + LogStep(63, "Step 6e: Read the optional command(MoveSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 62: { - LogStep(62, "Step 6f: Read the optional command(StepSaturation) in AcceptedCommandList"); + case 64: { + LogStep(64, "Step 6f: Read the optional command(StepSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 63: { - LogStep(63, "Step 6g: Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList"); + case 65: { + LogStep(65, "Step 6g: Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 64: { - LogStep(64, "Step 6h: Read the optional command(MoveToColor) in AcceptedCommandList"); + case 66: { + LogStep(66, "Step 6h: Read the optional command(MoveToColor) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 65: { - LogStep(65, "Step 6i: Read the optional command(MoveColor) in AcceptedCommandList"); + case 67: { + LogStep(67, "Step 6i: Read the optional command(MoveColor) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C08.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 66: { - LogStep(66, "Step 6j: Read the optional command(StepColor) in AcceptedCommandList"); + case 68: { + LogStep(68, "Step 6j: Read the optional command(StepColor) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C09.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 67: { - LogStep(67, "Step 6k: Read the optional command(MoveToColorTemperature) in AcceptedCommandList"); + case 69: { + LogStep(69, "Step 6k: Read the optional command(MoveToColorTemperature) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C0a.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 68: { - LogStep(68, "Step 6l: Read the optional command(EnhancedMoveToHue) in AcceptedCommandList"); + case 70: { + LogStep(70, "Step 6l: Read the optional command(EnhancedMoveToHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 69: { - LogStep(69, "Step 6m: Read the optional command(EnhancedMoveHue) in AcceptedCommandList"); + case 71: { + LogStep(71, "Step 6m: Read the optional command(EnhancedMoveHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 70: { - LogStep(70, "Step 6n: Read the optional command(EnhancedStepHue) in AcceptedCommandList"); + case 72: { + LogStep(72, "Step 6n: Read the optional command(EnhancedStepHue) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C42.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 71: { - LogStep(71, "Step 6o: Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList"); + case 73: { + LogStep(73, "Step 6o: Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C43.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 72: { - LogStep(72, "Step 6p: Read the optional command(ColorLoopSet) in AcceptedCommandList"); + case 74: { + LogStep(74, "Step 6p: Read the optional command(ColorLoopSet) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C44.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 73: { - LogStep(73, "Step 6q: Read the optional command(StopMoveStep) in AcceptedCommandList"); + case 75: { + LogStep(75, "Step 6q: Read the optional command(StopMoveStep) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C47.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 74: { - LogStep(74, "Step 6r: Read the optional command(MoveColorTemperature) in AcceptedCommandList"); + case 76: { + LogStep(76, "Step 6r: Read the optional command(MoveColorTemperature) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C4b.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 75: { - LogStep(75, "Step 6s: Read the optional command(StepColorTemperature) in AcceptedCommandList"); + case 77: { + LogStep(77, "Step 6s: Read the optional command(StepColorTemperature) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CC.S.C4c.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 76: { - LogStep(76, "Step 7: Read the global attribute: GeneratedCommandList"); + case 78: { + LogStep(78, "Step 7: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -24052,7 +24442,7 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand { public: Test_TC_CDOCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CDOCONC_1_1", 31, credsIssuerConfig) + TestCommand("Test_TC_CDOCONC_1_1", 34, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -24232,6 +24622,7 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -24243,7 +24634,12 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 17: @@ -24252,10 +24648,19 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + } + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24267,7 +24672,7 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24280,7 +24685,7 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 8UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24290,7 +24695,7 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24300,7 +24705,7 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24310,7 +24715,7 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24320,7 +24725,7 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 6UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24329,7 +24734,7 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24338,11 +24743,27 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 10UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24354,11 +24775,11 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -24370,7 +24791,7 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 30: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -24484,85 +24905,92 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand } case 15: { LogStep(15, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); - VerifyOrDo(!ShouldSkip("CDOCONC.S.A0007 && CDOCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip(" !PICS_EVENT_LIST_ENABLED "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { + LogStep(17, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); + VerifyOrDo(!ShouldSkip("CDOCONC.S.A0007 && CDOCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, + CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 18: { LogStep( - 17, + 18, "Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when CDOCONC.S.A0007 is not set"); VerifyOrDo(!ShouldSkip(" !CDOCONC.S.A0007 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, MaxMeasuredValue " "and Measurement Unit in AttributeList"); VerifyOrDo(!ShouldSkip("CDOCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and Uncertainty are " "excluded from AttributeList when CDOCONC.S.F00 (MEA) is not set"); VerifyOrDo(!ShouldSkip(" !CDOCONC.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & PeakMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("CDOCONC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, + case 22: { + LogStep(22, "Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from AttributeList when " "CDOCONC.S.F04 (PEA) is not set"); VerifyOrDo(!ShouldSkip(" !CDOCONC.S.F04 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 23: { + LogStep(23, "Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue AverageMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("CDOCONC.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from AttributeList when " "CDOCONC.S.F05 (AVG) is not set"); VerifyOrDo(!ShouldSkip(" !CDOCONC.S.F05 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); + case 25: { + LogStep(25, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); VerifyOrDo(!ShouldSkip("CDOCONC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Step 4k: Check that LevelValue is excluded from AttributeList when CDOCONC.S.F01 (LEV) is not set"); + case 26: { + LogStep(26, "Step 4k: Check that LevelValue is excluded from AttributeList when CDOCONC.S.F01 (LEV) is not set"); VerifyOrDo(!ShouldSkip(" !CDOCONC.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, + case 27: { + LogStep(27, "Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -24577,14 +25005,36 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 27: { - LogStep(27, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 28: { + LogStep(28, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, + CarbonDioxideConcentrationMeasurement::Attributes::EventList::Id, true, chip::NullOptional); + } + case 29: { + LogStep(29, + "Step 5b: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " + "standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the Manufacturer " + "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " + "0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test Vendor or invalid " + "range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 31: { + LogStep(31, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -24598,14 +25048,14 @@ class Test_TC_CDOCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 32: { + LogStep(32, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonDioxideConcentrationMeasurement::Id, CarbonDioxideConcentrationMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 33: { + LogStep(33, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -24864,7 +25314,7 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand { public: Test_TC_CMOCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CMOCONC_1_1", 31, credsIssuerConfig) + TestCommand("Test_TC_CMOCONC_1_1", 34, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -25040,6 +25490,7 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -25051,7 +25502,12 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 17: @@ -25060,10 +25516,19 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + } + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25075,7 +25540,7 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25088,7 +25553,7 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 8UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25098,7 +25563,7 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25108,7 +25573,7 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25118,7 +25583,7 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25128,7 +25593,7 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 6UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25137,7 +25602,7 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25146,11 +25611,27 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 10UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25162,11 +25643,11 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25178,7 +25659,7 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 30: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -25292,85 +25773,92 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand } case 15: { LogStep(15, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); - VerifyOrDo(!ShouldSkip("CMOCONC.S.A0007 && CMOCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { + LogStep(17, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); + VerifyOrDo(!ShouldSkip("CMOCONC.S.A0007 && CMOCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, + CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 18: { LogStep( - 17, + 18, "Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when CMOCONC.S.A0007 is not set"); VerifyOrDo(!ShouldSkip(" !CMOCONC.S.A0007 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, MaxMeasuredValue " "and Measurement Unit in AttributeList"); VerifyOrDo(!ShouldSkip("CMOCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and Uncertainty are " "excluded from AttributeList when CMOCONC.S.F00 (MEA) is not set"); VerifyOrDo(!ShouldSkip(" !CMOCONC.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & PeakMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("CMOCONC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, + case 22: { + LogStep(22, "Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from AttributeList when " "CMOCONC.S.F04 (PEA) is not set"); VerifyOrDo(!ShouldSkip(" !CMOCONC.S.F04 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 23: { + LogStep(23, "Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue AverageMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("CMOCONC.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from AttributeList when " "CMOCONC.S.F05 (AVG) is not set"); VerifyOrDo(!ShouldSkip(" !CMOCONC.S.F05 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); + case 25: { + LogStep(25, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); VerifyOrDo(!ShouldSkip("CMOCONC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Step 4k: Check that LevelValue is excluded from AttributeList when CMOCONC.S.F01 (LEV) is not set"); + case 26: { + LogStep(26, "Step 4k: Check that LevelValue is excluded from AttributeList when CMOCONC.S.F01 (LEV) is not set"); VerifyOrDo(!ShouldSkip(" !CMOCONC.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, + case 27: { + LogStep(27, "Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -25385,14 +25873,36 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 27: { - LogStep(27, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 28: { + LogStep(28, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, + CarbonMonoxideConcentrationMeasurement::Attributes::EventList::Id, true, chip::NullOptional); + } + case 29: { + LogStep(29, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 31: { + LogStep(31, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -25406,14 +25916,14 @@ class Test_TC_CMOCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 32: { + LogStep(32, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), CarbonMonoxideConcentrationMeasurement::Id, CarbonMonoxideConcentrationMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 33: { + LogStep(33, "Step 7b: TH1 reads GeneratedCommandList from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -25674,7 +26184,7 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand { public: Test_TC_FLDCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_FLDCONC_1_1", 31, credsIssuerConfig) + TestCommand("Test_TC_FLDCONC_1_1", 34, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -25850,6 +26360,7 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -25861,7 +26372,12 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 17: @@ -25870,10 +26386,19 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + } + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25885,7 +26410,7 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25898,7 +26423,7 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 8UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25908,7 +26433,7 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25918,7 +26443,7 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25928,7 +26453,7 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25938,7 +26463,7 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 6UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25947,7 +26472,7 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25956,11 +26481,27 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 10UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25972,11 +26513,11 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -25988,7 +26529,7 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 30: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -26102,85 +26643,92 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand } case 15: { LogStep(15, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); - VerifyOrDo(!ShouldSkip("FLDCONC.S.A0007 && FLDCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { + LogStep(17, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); + VerifyOrDo(!ShouldSkip("FLDCONC.S.A0007 && FLDCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, + FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 18: { LogStep( - 17, + 18, "Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when FLDCONC.S.A0007 is not set"); VerifyOrDo(!ShouldSkip(" !FLDCONC.S.A0007 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, MaxMeasuredValue " "and Measurement Unit in AttributeList"); VerifyOrDo(!ShouldSkip("FLDCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and Uncertainty are " "excluded from AttributeList when FLDCONC.S.F00 (MEA) is not set"); VerifyOrDo(!ShouldSkip(" !FLDCONC.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & PeakMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("FLDCONC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, + case 22: { + LogStep(22, "Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from AttributeList when " "FLDCONC.S.F04 (PEA) is not set"); VerifyOrDo(!ShouldSkip(" !FLDCONC.S.F04 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 23: { + LogStep(23, "Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue AverageMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("FLDCONC.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from AttributeList when " "FLDCONC.S.F05 (AVG) is not set"); VerifyOrDo(!ShouldSkip(" !FLDCONC.S.F05 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); + case 25: { + LogStep(25, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); VerifyOrDo(!ShouldSkip("FLDCONC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Step 4k: Check that LevelValue is excluded from AttributeList when FLDCONC.S.F01 (LEV) is not set"); + case 26: { + LogStep(26, "Step 4k: Check that LevelValue is excluded from AttributeList when FLDCONC.S.F01 (LEV) is not set"); VerifyOrDo(!ShouldSkip(" !FLDCONC.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, + case 27: { + LogStep(27, "Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -26195,14 +26743,36 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 27: { - LogStep(27, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 28: { + LogStep(28, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, + FormaldehydeConcentrationMeasurement::Attributes::EventList::Id, true, chip::NullOptional); + } + case 29: { + LogStep(29, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 31: { + LogStep(31, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -26216,14 +26786,14 @@ class Test_TC_FLDCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Step 7: Read the global attribute: GeneratedCommandList"); + case 32: { + LogStep(32, "Step 7: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FormaldehydeConcentrationMeasurement::Id, FormaldehydeConcentrationMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 33: { + LogStep(33, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -26480,7 +27050,7 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand { public: Test_TC_NDOCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_NDOCONC_1_1", 31, credsIssuerConfig) + TestCommand("Test_TC_NDOCONC_1_1", 34, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -26656,6 +27226,7 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -26667,7 +27238,12 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 17: @@ -26676,10 +27252,19 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + } + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -26691,7 +27276,7 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -26704,7 +27289,7 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 8UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -26714,7 +27299,7 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -26724,7 +27309,7 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -26734,7 +27319,7 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -26744,7 +27329,7 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 6UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -26753,7 +27338,7 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -26762,11 +27347,27 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 10UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -26778,11 +27379,11 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -26794,7 +27395,7 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 30: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -26909,85 +27510,92 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand } case 15: { LogStep(15, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); - VerifyOrDo(!ShouldSkip("NDOCONC.S.A0007 && NDOCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { + LogStep(17, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); + VerifyOrDo(!ShouldSkip("NDOCONC.S.A0007 && NDOCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, + NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 18: { LogStep( - 17, + 18, "Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when NDOCONC.S.A0007 is not set"); VerifyOrDo(!ShouldSkip(" !NDOCONC.S.A0007 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, MaxMeasuredValue " "and Measurement Unit in AttributeList"); VerifyOrDo(!ShouldSkip("NDOCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and Uncertainty are " "excluded from AttributeList when NDOCONC.S.F00 (MEA) is not set"); VerifyOrDo(!ShouldSkip(" !NDOCONC.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & PeakMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("NDOCONC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, + case 22: { + LogStep(22, "Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from AttributeList when " "NDOCONC.S.F04 (PEA) is not set"); VerifyOrDo(!ShouldSkip(" !NDOCONC.S.F04 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 23: { + LogStep(23, "Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue AverageMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("NDOCONC.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from AttributeList when " "NDOCONC.S.F05 (AVG) is not set"); VerifyOrDo(!ShouldSkip(" !NDOCONC.S.F05 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); + case 25: { + LogStep(25, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); VerifyOrDo(!ShouldSkip("NDOCONC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Step 4k: Check that LevelValue is excluded from AttributeList when NDOCONC.S.F01 (LEV) is not set"); + case 26: { + LogStep(26, "Step 4k: Check that LevelValue is excluded from AttributeList when NDOCONC.S.F01 (LEV) is not set"); VerifyOrDo(!ShouldSkip(" !NDOCONC.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, + case 27: { + LogStep(27, "Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -27002,14 +27610,36 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 27: { - LogStep(27, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 28: { + LogStep(28, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, + NitrogenDioxideConcentrationMeasurement::Attributes::EventList::Id, true, chip::NullOptional); + } + case 29: { + LogStep(29, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 31: { + LogStep(31, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -27024,14 +27654,14 @@ class Test_TC_NDOCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 32: { + LogStep(32, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), NitrogenDioxideConcentrationMeasurement::Id, NitrogenDioxideConcentrationMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 33: { + LogStep(33, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -27292,7 +27922,7 @@ class Test_TC_NDOCONC_2_1Suite : public TestCommand class Test_TC_OZCONC_1_1Suite : public TestCommand { public: - Test_TC_OZCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OZCONC_1_1", 31, credsIssuerConfig) + Test_TC_OZCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OZCONC_1_1", 34, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -27468,6 +28098,7 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -27479,7 +28110,12 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 17: @@ -27488,10 +28124,19 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + } + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -27503,7 +28148,7 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -27516,7 +28161,7 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 8UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -27526,7 +28171,7 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -27536,7 +28181,7 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -27546,7 +28191,7 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -27556,7 +28201,7 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 6UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -27565,7 +28210,7 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -27574,11 +28219,27 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 10UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -27590,11 +28251,11 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -27606,7 +28267,7 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 30: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -27719,85 +28380,92 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand } case 15: { LogStep(15, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); - VerifyOrDo(!ShouldSkip("OZCONC.S.A0007 && OZCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { + LogStep(17, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); + VerifyOrDo(!ShouldSkip("OZCONC.S.A0007 && OZCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, + OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 18: { LogStep( - 17, + 18, "Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when OZCONC.S.A0007 is not set"); VerifyOrDo(!ShouldSkip(" !OZCONC.S.A0007 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, MaxMeasuredValue " "and Measurement Unit in AttributeList"); VerifyOrDo(!ShouldSkip("OZCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and Uncertainty are " "excluded from AttributeList when OZCONC.S.F00 (MEA) is not set"); VerifyOrDo(!ShouldSkip(" !OZCONC.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & PeakMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("OZCONC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, + case 22: { + LogStep(22, "Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from AttributeList when " "OZCONC.S.F04 (PEA) is not set"); VerifyOrDo(!ShouldSkip(" !OZCONC.S.F04 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 23: { + LogStep(23, "Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue AverageMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("OZCONC.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from AttributeList when " "OZCONC.S.F05 (AVG) is not set"); VerifyOrDo(!ShouldSkip(" !OZCONC.S.F05 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); + case 25: { + LogStep(25, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); VerifyOrDo(!ShouldSkip("OZCONC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Step 4k: Check that LevelValue is excluded from AttributeList when OZCONC.S.F01 (LEV) is not set"); + case 26: { + LogStep(26, "Step 4k: Check that LevelValue is excluded from AttributeList when OZCONC.S.F01 (LEV) is not set"); VerifyOrDo(!ShouldSkip(" !OZCONC.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, + case 27: { + LogStep(27, "Step 4l: TH reads AttributeList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -27811,13 +28479,35 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 27: { - LogStep(27, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 28: { + LogStep(28, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, + OzoneConcentrationMeasurement::Attributes::EventList::Id, true, chip::NullOptional); + } + case 29: { + LogStep(29, + "Step 5b: Read the global attribute: EventList. 1.The list SHALL NOT contain any additional values in the " + "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY contain " + "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " + "allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any values " + "in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - 0xXXXX_FFFF) " + "and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 31: { + LogStep(31, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -27831,13 +28521,13 @@ class Test_TC_OZCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 32: { + LogStep(32, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OzoneConcentrationMeasurement::Id, OzoneConcentrationMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 33: { + LogStep(33, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -28091,7 +28781,7 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand { public: Test_TC_PMHCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_PMHCONC_1_1", 31, credsIssuerConfig) + TestCommand("Test_TC_PMHCONC_1_1", 34, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -28267,6 +28957,7 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -28278,7 +28969,12 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 17: @@ -28287,10 +28983,19 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + } + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28302,7 +29007,7 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28315,7 +29020,7 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 8UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28325,7 +29030,7 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28335,7 +29040,7 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28345,7 +29050,7 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28355,7 +29060,7 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 6UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28364,7 +29069,7 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28373,11 +29078,27 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 10UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28389,11 +29110,11 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28405,7 +29126,7 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 30: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -28519,85 +29240,92 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand } case 15: { LogStep(15, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); - VerifyOrDo(!ShouldSkip("PMHCONC.S.A0007 && PMHCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { + LogStep(17, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); + VerifyOrDo(!ShouldSkip("PMHCONC.S.A0007 && PMHCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, + Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 18: { LogStep( - 17, + 18, "Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when PMHCONC.S.A0007 is not set"); VerifyOrDo(!ShouldSkip(" !PMHCONC.S.A0007 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, MaxMeasuredValue " "and Measurement Unit in AttributeList"); VerifyOrDo(!ShouldSkip("PMHCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and Uncertainty are " "excluded from AttributeList when PMHCONC.S.F00 (MEA) is not set"); VerifyOrDo(!ShouldSkip(" !PMHCONC.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & PeakMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("PMHCONC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, + case 22: { + LogStep(22, "Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from AttributeList when " "PMHCONC.S.F04 (PEA) is not set"); VerifyOrDo(!ShouldSkip(" !PMHCONC.S.F04 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 23: { + LogStep(23, "Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue AverageMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("PMHCONC.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from AttributeList when " "PMHCONC.S.F05 (AVG) is not set"); VerifyOrDo(!ShouldSkip(" !PMHCONC.S.F05 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); + case 25: { + LogStep(25, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); VerifyOrDo(!ShouldSkip("PMHCONC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Step 4k: Check that LevelValue is excluded from AttributeList when PMHCONC.S.F01 (LEV) is not set"); + case 26: { + LogStep(26, "Step 4k: Check that LevelValue is excluded from AttributeList when PMHCONC.S.F01 (LEV) is not set"); VerifyOrDo(!ShouldSkip(" !PMHCONC.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, + case 27: { + LogStep(27, "Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -28612,13 +29340,35 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 27: { - LogStep(27, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 28: { + LogStep(28, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, + Pm1ConcentrationMeasurement::Attributes::EventList::Id, true, chip::NullOptional); + } + case 29: { + LogStep(29, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 31: { + LogStep(31, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -28632,13 +29382,13 @@ class Test_TC_PMHCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 32: { + LogStep(32, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm1ConcentrationMeasurement::Id, Pm1ConcentrationMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 33: { + LogStep(33, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -28892,7 +29642,7 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand { public: Test_TC_PMICONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_PMICONC_1_1", 31, credsIssuerConfig) + TestCommand("Test_TC_PMICONC_1_1", 34, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -29068,6 +29818,7 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -29079,7 +29830,12 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 17: @@ -29088,10 +29844,19 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + } + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29103,7 +29868,7 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29116,7 +29881,7 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 8UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29126,7 +29891,7 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29136,7 +29901,7 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29146,7 +29911,7 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29156,7 +29921,7 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 6UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29165,7 +29930,7 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29174,11 +29939,27 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 10UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29190,11 +29971,11 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29206,7 +29987,7 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 30: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -29320,85 +30101,92 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand } case 15: { LogStep(15, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); - VerifyOrDo(!ShouldSkip("PMICONC.S.A0007 && PMICONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { + LogStep(17, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); + VerifyOrDo(!ShouldSkip("PMICONC.S.A0007 && PMICONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, + Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 18: { LogStep( - 17, + 18, "Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when PMICONC.S.A0007 is not set"); VerifyOrDo(!ShouldSkip(" !PMICONC.S.A0007 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, MaxMeasuredValue " "and Measurement Unit in AttributeList"); VerifyOrDo(!ShouldSkip("PMICONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and Uncertainty are " "excluded from AttributeList when PMICONC.S.F00 (MEA) is not set"); VerifyOrDo(!ShouldSkip(" !PMICONC.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & PeakMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("PMICONC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, + case 22: { + LogStep(22, "Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from AttributeList when " "PMICONC.S.F04 (PEA) is not set"); VerifyOrDo(!ShouldSkip(" !PMICONC.S.F04 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 23: { + LogStep(23, "Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue AverageMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("PMICONC.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from AttributeList when " "PMICONC.S.F05 (AVG) is not set"); VerifyOrDo(!ShouldSkip(" !PMICONC.S.F05 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); + case 25: { + LogStep(25, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); VerifyOrDo(!ShouldSkip("PMICONC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Step 4k: Check that LevelValue is excluded from AttributeList when PMICONC.S.F01 (LEV) is not set"); + case 26: { + LogStep(26, "Step 4k: Check that LevelValue is excluded from AttributeList when PMICONC.S.F01 (LEV) is not set"); VerifyOrDo(!ShouldSkip(" !PMICONC.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, + case 27: { + LogStep(27, "Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -29413,13 +30201,35 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 27: { - LogStep(27, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 28: { + LogStep(28, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, + Pm25ConcentrationMeasurement::Attributes::EventList::Id, true, chip::NullOptional); + } + case 29: { + LogStep(29, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 31: { + LogStep(31, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -29433,13 +30243,13 @@ class Test_TC_PMICONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Step 7b: Read the global attribute: GeneratedCommandList"); + case 32: { + LogStep(32, "Step 7b: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm25ConcentrationMeasurement::Id, Pm25ConcentrationMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 33: { + LogStep(33, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -29694,7 +30504,7 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand { public: Test_TC_PMKCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_PMKCONC_1_1", 31, credsIssuerConfig) + TestCommand("Test_TC_PMKCONC_1_1", 34, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -29870,6 +30680,7 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -29881,7 +30692,12 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 17: @@ -29890,10 +30706,19 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + } + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29905,7 +30730,7 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29918,7 +30743,7 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 8UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29928,7 +30753,7 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29938,7 +30763,7 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29948,7 +30773,7 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29958,7 +30783,7 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 6UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29967,7 +30792,7 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29976,11 +30801,27 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 10UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -29992,11 +30833,11 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30008,7 +30849,7 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 30: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -30122,85 +30963,92 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand } case 15: { LogStep(15, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); - VerifyOrDo(!ShouldSkip("PMKCONC.S.A0007 && PMKCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { + LogStep(17, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); + VerifyOrDo(!ShouldSkip("PMKCONC.S.A0007 && PMKCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, + Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 18: { LogStep( - 17, + 18, "Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when PMKCONC.S.A0007 is not set"); VerifyOrDo(!ShouldSkip(" !PMKCONC.S.A0007 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, MaxMeasuredValue " "and Measurement Unit in AttributeList"); VerifyOrDo(!ShouldSkip("PMKCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and Uncertainty are " "excluded from AttributeList when PMKCONC.S.F00 (MEA) is not set"); VerifyOrDo(!ShouldSkip(" !PMKCONC.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & PeakMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("PMKCONC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, + case 22: { + LogStep(22, "Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from AttributeList when " "PMKCONC.S.F04 (PEA) is not set"); VerifyOrDo(!ShouldSkip(" !PMKCONC.S.F04 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 23: { + LogStep(23, "Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue AverageMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("PMKCONC.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from AttributeList when " "PMKCONC.S.F05 (AVG) is not set"); VerifyOrDo(!ShouldSkip(" !PMKCONC.S.F05 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); + case 25: { + LogStep(25, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); VerifyOrDo(!ShouldSkip("PMKCONC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Step 4k: Check that LevelValue is excluded from AttributeList when PMKCONC.S.F01 (LEV) is not set"); + case 26: { + LogStep(26, "Step 4k: Check that LevelValue is excluded from AttributeList when PMKCONC.S.F01 (LEV) is not set"); VerifyOrDo(!ShouldSkip(" !PMKCONC.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, + case 27: { + LogStep(27, "Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -30215,13 +31063,35 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 27: { - LogStep(27, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 28: { + LogStep(28, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, + Pm10ConcentrationMeasurement::Attributes::EventList::Id, true, chip::NullOptional); + } + case 29: { + LogStep(29, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 31: { + LogStep(31, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -30235,13 +31105,13 @@ class Test_TC_PMKCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 32: { + LogStep(32, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Pm10ConcentrationMeasurement::Id, Pm10ConcentrationMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 33: { + LogStep(33, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -30495,7 +31365,7 @@ class Test_TC_PMKCONC_2_1Suite : public TestCommand class Test_TC_RNCONC_1_1Suite : public TestCommand { public: - Test_TC_RNCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_RNCONC_1_1", 31, credsIssuerConfig) + Test_TC_RNCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_RNCONC_1_1", 34, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -30671,6 +31541,7 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -30682,7 +31553,12 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 17: @@ -30691,10 +31567,19 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + } + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30706,7 +31591,7 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30719,7 +31604,7 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 8UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30729,7 +31614,7 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30739,7 +31624,7 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30749,7 +31634,7 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30759,7 +31644,7 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 6UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30768,7 +31653,7 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30777,11 +31662,27 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 10UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30793,11 +31694,11 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -30809,7 +31710,7 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 30: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -30922,86 +31823,93 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand } case 15: { LogStep(15, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); - VerifyOrDo(!ShouldSkip("RNCONC.S.A0007 && RNCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { + LogStep(17, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); + VerifyOrDo(!ShouldSkip("RNCONC.S.A0007 && RNCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, + RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 18: { LogStep( - 17, + 18, "Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when RNCONC.S.A0007 is not set"); VerifyOrDo(!ShouldSkip(" !RNCONC.S.A0007 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, MaxMeasuredValue " "and Measurement Unit in AttributeList"); VerifyOrDo(!ShouldSkip("RNCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and Uncertainty are " "excluded from AttributeList when RNCONC.S.F00 (MEA) is not set"); VerifyOrDo(!ShouldSkip(" !RNCONC.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & PeakMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("RNCONC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, + case 22: { + LogStep(22, "Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from AttributeList when " "RNCONC.S.F04 (PEA) is not set"); VerifyOrDo(!ShouldSkip(" !RNCONC.S.F04 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 23: { + LogStep(23, "Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue AverageMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("RNCONC.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from AttributeList when " "RNCONC.S.F05 (AVG) is not set"); VerifyOrDo(!ShouldSkip(" !RNCONC.S.F05 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); + case 25: { + LogStep(25, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); VerifyOrDo(!ShouldSkip("RNCONC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Step 4k: Check that LevelValue is excluded from AttributeList when RNCONC.S.F01 (LEV) is not set"); + case 26: { + LogStep(26, "Step 4k: Check that LevelValue is excluded from AttributeList when RNCONC.S.F01 (LEV) is not set"); VerifyOrDo(!ShouldSkip(" !RNCONC.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 26: { + case 27: { LogStep( - 26, + 27, "Step 4l: TH reads the AttributeList attribute from the DUT. 1.The list SHALL NOT contain any additional values in " "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -31016,13 +31924,35 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 27: { - LogStep(27, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 28: { + LogStep(28, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, + RadonConcentrationMeasurement::Attributes::EventList::Id, true, chip::NullOptional); + } + case 29: { + LogStep(29, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 31: { + LogStep(31, "Step 6b: Read the global attribute AcceptedCommandList. 1. The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) 2. The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -31037,13 +31967,13 @@ class Test_TC_RNCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 32: { + LogStep(32, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RadonConcentrationMeasurement::Id, RadonConcentrationMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 33: { + LogStep(33, "Step 7b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -31298,7 +32228,7 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand { public: Test_TC_TVOCCONC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_TVOCCONC_1_1", 31, credsIssuerConfig) + TestCommand("Test_TC_TVOCCONC_1_1", 34, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -31474,6 +32404,7 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -31485,7 +32416,12 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 17: @@ -31494,10 +32430,19 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 7UL)); + } + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31509,7 +32454,7 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31522,7 +32467,7 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 8UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31532,7 +32477,7 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31542,7 +32487,7 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31552,7 +32497,7 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31562,7 +32507,7 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 6UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31571,7 +32516,7 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31580,11 +32525,27 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 10UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 27: + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31596,11 +32557,11 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 28: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 29: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31612,7 +32573,7 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 30: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -31739,19 +32700,27 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand } case 15: { LogStep(15, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TotalVolatileOrganicCompoundsConcentrationMeasurement::Id, TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); - VerifyOrDo(!ShouldSkip("TVOCCONC.S.A0007 && TVOCCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TotalVolatileOrganicCompoundsConcentrationMeasurement::Id, TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { - LogStep(17, + LogStep(17, "Step 4b: Read the optional attribute Uncertainty in AttributeList"); + VerifyOrDo(!ShouldSkip("TVOCCONC.S.A0007 && TVOCCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TotalVolatileOrganicCompoundsConcentrationMeasurement::Id, + TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 18: { + LogStep(18, "Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when TVOCCONC.S.A0007 is not " "set"); VerifyOrDo(!ShouldSkip(" !TVOCCONC.S.A0007 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -31759,8 +32728,8 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, MaxMeasuredValue " "and Measurement Unit in AttributeList"); VerifyOrDo(!ShouldSkip("TVOCCONC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -31768,8 +32737,8 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, + case 20: { + LogStep(20, "Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and Uncertainty are " "excluded from AttributeList when TVOCCONC.S.F00 (MEA) is not set"); VerifyOrDo(!ShouldSkip(" !TVOCCONC.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -31777,8 +32746,8 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, + case 21: { + LogStep(21, "Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & PeakMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("TVOCCONC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -31786,8 +32755,8 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, + case 22: { + LogStep(22, "Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from AttributeList when " "TVOCCONC.S.F04 (PEA) is not set"); VerifyOrDo(!ShouldSkip(" !TVOCCONC.S.F04 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -31795,8 +32764,8 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 23: { + LogStep(23, "Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue AverageMeasuredValueWindow in " "AttributeList"); VerifyOrDo(!ShouldSkip("TVOCCONC.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -31804,8 +32773,8 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, + case 24: { + LogStep(24, "Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from AttributeList when " "TVOCCONC.S.F05 (AVG) is not set"); VerifyOrDo(!ShouldSkip(" !TVOCCONC.S.F05 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -31813,22 +32782,22 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); + case 25: { + LogStep(25, "Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList"); VerifyOrDo(!ShouldSkip("TVOCCONC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TotalVolatileOrganicCompoundsConcentrationMeasurement::Id, TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "Step 4k: Check that LevelValue is excluded from AttributeList when TVOCCONC.S.F01 (LEV) is not set"); + case 26: { + LogStep(26, "Step 4k: Check that LevelValue is excluded from AttributeList when TVOCCONC.S.F01 (LEV) is not set"); VerifyOrDo(!ShouldSkip(" !TVOCCONC.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TotalVolatileOrganicCompoundsConcentrationMeasurement::Id, TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, + case 27: { + LogStep(27, "Step 4b: Read the global attribute: AttributeList. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -31843,14 +32812,37 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 27: { - LogStep(27, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 28: { + LogStep(28, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TotalVolatileOrganicCompoundsConcentrationMeasurement::Id, + TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 29: { + LogStep(29, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 30: { + LogStep(30, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TotalVolatileOrganicCompoundsConcentrationMeasurement::Id, TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, + case 31: { + LogStep(31, "Step 6b: Read the global attribute: AcceptedCommandList. 1. The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) 2. The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -31865,14 +32857,14 @@ class Test_TC_TVOCCONC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 32: { + LogStep(32, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TotalVolatileOrganicCompoundsConcentrationMeasurement::Id, TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 30: { - LogStep(30, + case 33: { + LogStep(33, "Step 7b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -32661,7 +33653,7 @@ class Test_TC_OPCREDS_1_2Suite : public TestCommand { public: Test_TC_OPCREDS_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_OPCREDS_1_2", 9, credsIssuerConfig) + TestCommand("Test_TC_OPCREDS_1_2", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -32725,6 +33717,7 @@ class Test_TC_OPCREDS_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); @@ -32737,9 +33730,32 @@ class Test_TC_OPCREDS_1_2Suite : public TestCommand break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32755,11 +33771,11 @@ class Test_TC_OPCREDS_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); } break; - case 6: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 7: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32771,7 +33787,7 @@ class Test_TC_OPCREDS_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 8: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -32809,11 +33825,18 @@ class Test_TC_OPCREDS_1_2Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, + LogStep(4, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, + OperationalCredentials::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 5: { + LogStep(5, "Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -32828,13 +33851,29 @@ class Test_TC_OPCREDS_1_2Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 5: { - LogStep(5, "Step 6a: TH reads AcceptedCommandList from DUT"); + case 6: { + LogStep(6, + "Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "Step 6a: TH reads AcceptedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, + case 8: { + LogStep(8, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -32849,13 +33888,13 @@ class Test_TC_OPCREDS_1_2Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 7: { - LogStep(7, "Step 7a: TH reads GeneratedCommandList from DUT"); + case 9: { + LogStep(9, "Step 7a: TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, + case 10: { + LogStep(10, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -32877,7 +33916,7 @@ class Test_TC_OPCREDS_1_2Suite : public TestCommand class Test_TC_BINFO_1_1Suite : public TestCommand { public: - Test_TC_BINFO_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BINFO_1_1", 19, credsIssuerConfig) + Test_TC_BINFO_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BINFO_1_1", 22, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -32952,6 +33991,7 @@ class Test_TC_BINFO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -32963,7 +34003,23 @@ class Test_TC_BINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: @@ -32972,7 +34028,7 @@ class Test_TC_BINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); } break; case 6: @@ -32981,7 +34037,7 @@ class Test_TC_BINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); } break; case 7: @@ -32990,7 +34046,7 @@ class Test_TC_BINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 14UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); } break; case 8: @@ -32999,7 +34055,7 @@ class Test_TC_BINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 14UL)); } break; case 9: @@ -33008,7 +34064,7 @@ class Test_TC_BINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); } break; case 10: @@ -33017,7 +34073,7 @@ class Test_TC_BINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; case 11: @@ -33026,14 +34082,35 @@ class Test_TC_BINFO_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); } break; case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); + } break; case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -33042,7 +34119,7 @@ class Test_TC_BINFO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 14: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -33051,7 +34128,7 @@ class Test_TC_BINFO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 15: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -33060,7 +34137,7 @@ class Test_TC_BINFO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 16: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -33069,11 +34146,15 @@ class Test_TC_BINFO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 17: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 18: + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -33111,59 +34192,66 @@ class Test_TC_BINFO_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: TH reads optional attribute(ManufacturingDate) in attributeList"); - VerifyOrDo(!ShouldSkip("BINFO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4c: TH reads optional attribute(PartNumber) in attributeList"); - VerifyOrDo(!ShouldSkip("BINFO.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4b: TH reads optional attribute(ManufacturingDate) in attributeList"); + VerifyOrDo(!ShouldSkip("BINFO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4d: TH reads optional attribute(ProductURL) in attributeList"); - VerifyOrDo(!ShouldSkip("BINFO.S.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 4c: TH reads optional attribute(PartNumber) in attributeList"); + VerifyOrDo(!ShouldSkip("BINFO.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4e: TH reads optional attribute(ProductLabel) in attributeList"); - VerifyOrDo(!ShouldSkip("BINFO.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 4d: TH reads optional attribute(ProductURL) in attributeList"); + VerifyOrDo(!ShouldSkip("BINFO.S.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4f: TH reads optional attribute(SerialNumber) in attributeList"); - VerifyOrDo(!ShouldSkip("BINFO.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 4e: TH reads optional attribute(ProductLabel) in attributeList"); + VerifyOrDo(!ShouldSkip("BINFO.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4g: TH reads optional attribute(LocalConfigDisabled) in attributeList"); - VerifyOrDo(!ShouldSkip("BINFO.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 4f: TH reads optional attribute(SerialNumber) in attributeList"); + VerifyOrDo(!ShouldSkip("BINFO.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 4h: TH reads optional attribute(Reachable) in attributeList"); - VerifyOrDo(!ShouldSkip("BINFO.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 4g: TH reads optional attribute(LocalConfigDisabled) in attributeList"); + VerifyOrDo(!ShouldSkip("BINFO.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 4i: TH reads optional attribute(UniqueID) in attributeList"); - VerifyOrDo(!ShouldSkip("BINFO.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 4h: TH reads optional attribute(Reachable) in attributeList"); + VerifyOrDo(!ShouldSkip("BINFO.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, + LogStep(12, "Step 4i: TH reads optional attribute(UniqueID) in attributeList"); + VerifyOrDo(!ShouldSkip("BINFO.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, + BasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 13: { + LogStep(13, "Step 4j: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -33178,32 +34266,55 @@ class Test_TC_BINFO_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 13: { - LogStep(13, "Step 5b: Read BINFO.S.E00(StartUp) event in EventList"); - VerifyOrDo(!ShouldSkip("BINFO.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::EventList::Id, - true, chip::NullOptional); - } case 14: { - LogStep(14, "Step 5c: Read BINFO.S.E01(ShutDown) event in EventList"); - VerifyOrDo(!ShouldSkip("BINFO.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(14, "Step 5a: TH1 reads EventList from DUT"); + VerifyOrDo(!ShouldSkip(" !BINFO.S.E00 && !BINFO.S.E01 && !BINFO.S.E02 && !BINFO.S.A0011 && PICS_EVENT_LIST_ENABLED"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::EventList::Id, true, chip::NullOptional); } case 15: { - LogStep(15, "Step 5d: Read BINFO.S.E02(Leave) event in EventList"); - VerifyOrDo(!ShouldSkip("BINFO.S.E02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(15, "Step 5b: Read BINFO.S.E00(StartUp) event in EventList"); + VerifyOrDo(!ShouldSkip("BINFO.S.E00 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::EventList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 5e: Read (ReachableChanged) event in EventList"); - VerifyOrDo(!ShouldSkip("BINFO.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 5c: Read BINFO.S.E01(ShutDown) event in EventList"); + VerifyOrDo(!ShouldSkip("BINFO.S.E01 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::EventList::Id, true, chip::NullOptional); } case 17: { - LogStep(17, + LogStep(17, "Step 5d: Read BINFO.S.E02(Leave) event in EventList"); + VerifyOrDo(!ShouldSkip("BINFO.S.E02 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::EventList::Id, + true, chip::NullOptional); + } + case 18: { + LogStep(18, "Step 5e: Read (ReachableChanged) event in EventList"); + VerifyOrDo(!ShouldSkip("BINFO.S.A0011 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::EventList::Id, + true, chip::NullOptional); + } + case 19: { + LogStep(19, + "Step 5f: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " + "standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the Manufacturer " + "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " + "0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test Vendor or invalid " + "range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 20: { + LogStep(20, "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -33217,8 +34328,8 @@ class Test_TC_BINFO_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 18: { - LogStep(18, + case 21: { + LogStep(21, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -34730,7 +35841,7 @@ class Test_TC_BINFO_2_2Suite : public TestCommand class Test_TC_CNET_1_3Suite : public TestCommand { public: - Test_TC_CNET_1_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CNET_1_3", 19, credsIssuerConfig) + Test_TC_CNET_1_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CNET_1_3", 21, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -34816,12 +35927,26 @@ class Test_TC_CNET_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34835,7 +35960,7 @@ class Test_TC_CNET_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34844,7 +35969,7 @@ class Test_TC_CNET_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34853,11 +35978,15 @@ class Test_TC_CNET_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 11: + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34869,7 +35998,7 @@ class Test_TC_CNET_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 12: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34878,7 +36007,7 @@ class Test_TC_CNET_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 13: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34887,7 +36016,7 @@ class Test_TC_CNET_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 14: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34898,11 +36027,11 @@ class Test_TC_CNET_1_3Suite : public TestCommand } } break; - case 15: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 16: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34913,7 +36042,7 @@ class Test_TC_CNET_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 17: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -34924,7 +36053,7 @@ class Test_TC_CNET_1_3Suite : public TestCommand } } break; - case 18: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -34981,30 +36110,37 @@ class Test_TC_CNET_1_3Suite : public TestCommand } case 6: { LogStep(6, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, NetworkCommissioning::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, + LogStep(7, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, + NetworkCommissioning::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 8: { + LogStep(8, "Step 4b: Read mandatory attributes in AttributeList if CNET.S.F00(WI)/CNET.S.F01(TH)/CNET.S.F02(ET) is true"); VerifyOrDo(!ShouldSkip("CNET.S.F00 || CNET.S.F01 || CNET.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, NetworkCommissioning::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Step 4c: Read the optional attribute(ScanMaxTimeSeconds): AttributeList"); + case 9: { + LogStep(9, "Step 4c: Read the optional attribute(ScanMaxTimeSeconds): AttributeList"); VerifyOrDo(!ShouldSkip("CNET.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, NetworkCommissioning::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Step 4d: Reading optional attribute(ConnectMaxTimeSeconds) in AttributeList"); + case 10: { + LogStep(10, "Step 4d: Reading optional attribute(ConnectMaxTimeSeconds) in AttributeList"); VerifyOrDo(!ShouldSkip("CNET.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, NetworkCommissioning::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, + case 11: { + LogStep(11, "Step 4e: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -35019,34 +36155,50 @@ class Test_TC_CNET_1_3Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 11: { + case 12: { + LogStep(12, + "Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 13: { LogStep( - 11, + 13, "Step 6a: Read AcceptedCommandList If DUT supports Wi-Fi/Thread related features CNET.S.F00(WI),CNET.S.F01(TH)"); VerifyOrDo(!ShouldSkip("( CNET.S.F00 || CNET.S.F01 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, NetworkCommissioning::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "Step 6b: Read AcceptedCommandList If DUT supports Wi-Fi related features (CNET.S.F00(WI) is true)"); + case 14: { + LogStep(14, "Step 6b: Read AcceptedCommandList If DUT supports Wi-Fi related features (CNET.S.F00(WI) is true)"); VerifyOrDo(!ShouldSkip("CNET.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, NetworkCommissioning::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Step 6c: Read AcceptedCommandList If DUT supports Thread related features(CNET.S.F01(TH) is true)"); + case 15: { + LogStep(15, "Step 6c: Read AcceptedCommandList If DUT supports Thread related features(CNET.S.F01(TH) is true)"); VerifyOrDo(!ShouldSkip("CNET.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, NetworkCommissioning::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Step 6d: Read AcceptedCommandList If DUT supports Ethernet related features(CNET.S.F02(TH) is true)"); + case 16: { + LogStep(16, "Step 6d: Read AcceptedCommandList If DUT supports Ethernet related features(CNET.S.F02(TH) is true)"); VerifyOrDo(!ShouldSkip("CNET.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, NetworkCommissioning::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, + case 17: { + LogStep(17, "Step 6e: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -35061,24 +36213,24 @@ class Test_TC_CNET_1_3Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 16: { - LogStep(16, + case 18: { + LogStep(18, "Step 7a: Read the GeneratedCommandList If DUT supports Wi-Fi/Thread related features(CNET.S.F00(WI) or " "CNET.S.F01(TH) is true)"); VerifyOrDo(!ShouldSkip("( CNET.S.F00 || CNET.S.F01 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, NetworkCommissioning::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 17: { + case 19: { LogStep( - 17, + 19, "Step 7b: Read the GeneratedCommandList If DUT supports Ethernet related features(CNET.S.F02(ET) must be true)"); VerifyOrDo(!ShouldSkip("CNET.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), NetworkCommissioning::Id, NetworkCommissioning::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 20: { + LogStep(20, "Step 7c: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -35100,7 +36252,7 @@ class Test_TC_CNET_1_3Suite : public TestCommand class Test_TC_DESC_1_1Suite : public TestCommand { public: - Test_TC_DESC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DESC_1_1", 7, credsIssuerConfig) + Test_TC_DESC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DESC_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -35162,6 +36314,7 @@ class Test_TC_DESC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -35169,7 +36322,20 @@ class Test_TC_DESC_1_1Suite : public TestCommand break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -35179,6 +36345,14 @@ class Test_TC_DESC_1_1Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -35218,11 +36392,18 @@ class Test_TC_DESC_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, + LogStep(4, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -35237,8 +36418,24 @@ class Test_TC_DESC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 5: { - LogStep(5, + case 6: { + LogStep(6, + "Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -35252,8 +36449,8 @@ class Test_TC_DESC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 6: { - LogStep(6, + case 8: { + LogStep(8, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -35275,7 +36472,7 @@ class Test_TC_DESC_1_1Suite : public TestCommand class Test_TC_DLOG_1_1Suite : public TestCommand { public: - Test_TC_DLOG_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DLOG_1_1", 9, credsIssuerConfig) + Test_TC_DLOG_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DLOG_1_1", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -35338,6 +36535,7 @@ class Test_TC_DLOG_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -35345,9 +36543,26 @@ class Test_TC_DLOG_1_1Suite : public TestCommand break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -35361,11 +36576,11 @@ class Test_TC_DLOG_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 6: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 7: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -35379,7 +36594,7 @@ class Test_TC_DLOG_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 8: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -35417,11 +36632,18 @@ class Test_TC_DLOG_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: TTH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), DiagnosticLogs::Id, DiagnosticLogs::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, + LogStep(4, "Step 4a: TTH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), DiagnosticLogs::Id, DiagnosticLogs::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 5: { + LogStep(5, "Step 4b: TTH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in " "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY " "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " @@ -35436,13 +36658,29 @@ class Test_TC_DLOG_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 5: { - LogStep(5, "Step 6a: TTH reads AcceptedCommandList from DUT"); + case 6: { + LogStep(6, + "Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "Step 6a: TTH reads AcceptedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), DiagnosticLogs::Id, DiagnosticLogs::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, + case 8: { + LogStep(8, "Step 6b: TTH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -35457,13 +36695,13 @@ class Test_TC_DLOG_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 7: { - LogStep(7, "Step 7a: TTH reads GeneratedCommandList from DUT"); + case 9: { + LogStep(9, "Step 7a: TTH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), DiagnosticLogs::Id, DiagnosticLogs::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, + case 10: { + LogStep(10, "Step 7b: TTH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -35485,7 +36723,7 @@ class Test_TC_DLOG_1_1Suite : public TestCommand class Test_TC_DGETH_1_1Suite : public TestCommand { public: - Test_TC_DGETH_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGETH_1_1", 20, credsIssuerConfig) + Test_TC_DGETH_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGETH_1_1", 22, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -35566,6 +36804,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -35577,7 +36816,11 @@ class Test_TC_DGETH_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 7: @@ -35586,7 +36829,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; case 8: @@ -35595,7 +36838,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; case 9: @@ -35604,7 +36847,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 10: @@ -35613,7 +36856,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 11: @@ -35622,7 +36865,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; case 12: @@ -35631,7 +36874,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; case 13: @@ -35640,7 +36883,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; case 14: @@ -35649,14 +36892,27 @@ class Test_TC_DGETH_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + } break; case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -35665,7 +36921,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 17: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -35677,11 +36933,11 @@ class Test_TC_DGETH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 18: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 19: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -35732,75 +36988,82 @@ class Test_TC_DGETH_1_1Suite : public TestCommand } case 5: { LogStep(5, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4b: TH reads optional attribute(PHYRate) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGETH.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4c: TH reads optional attribute(FullDuplex) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGETH.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 4b: TH reads optional attribute(PHYRate) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGETH.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { + LogStep(8, "Step 4c: TH reads optional attribute(FullDuplex) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGETH.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 9: { LogStep( - 8, + 9, "Step 4d: TH reads optional attribute(PacketRxCount) and Feature dependent(DGETH.S.F00(PKTCNT)) in AttributeList"); VerifyOrDo(!ShouldSkip("DGETH.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 9: { + case 10: { LogStep( - 9, + 10, "Step 4e: TH reads optional attribute(PacketRxCount) and Feature dependent(DGETH.S.F00(PKTCNT)) in AttributeList"); VerifyOrDo(!ShouldSkip("DGETH.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 10: { + case 11: { LogStep( - 10, + 11, "Step 4f: TH reads optional attribute(PacketRxCount) and Feature dependent(DGETH.S.F01(ERRCNT)) in AttributeList"); VerifyOrDo(!ShouldSkip("DGETH.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 11: { + case 12: { LogStep( - 11, + 12, "Step 4g: TH reads optional attribute(PacketRxCount) and Feature dependent(DGETH.S.F01(ERRCNT)) in AttributeList"); VerifyOrDo(!ShouldSkip("DGETH.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 12: { + case 13: { LogStep( - 12, + 13, "Step 4h: TH reads optional attribute(PacketRxCount) and Feature dependent(DGETH.S.F01(ERRCNT)) in AttributeList"); VerifyOrDo(!ShouldSkip("DGETH.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Step 4i: TH reads optional attribute(CarrierDetect) in AttributeList"); + case 14: { + LogStep(14, "Step 4i: TH reads optional attribute(CarrierDetect) in AttributeList"); VerifyOrDo(!ShouldSkip("DGETH.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Step 4j: TH reads optional attribute(TimeSinceReset) in AttributeList"); + case 15: { + LogStep(15, "Step 4j: TH reads optional attribute(TimeSinceReset) in AttributeList"); VerifyOrDo(!ShouldSkip("DGETH.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, + case 16: { + LogStep(16, "Step 4k: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -35815,20 +37078,36 @@ class Test_TC_DGETH_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 16: { - LogStep(16, "Step 6a: TH reads AcceptedCommandList from DUT"); + case 17: { + LogStep(17, + "Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 18: { + LogStep(18, "Step 6a: TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip("( DGETH.S.F00 || DGETH.S.F01 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "Step 6b: TH reads AcceptedCommandList from DUT"); + case 19: { + LogStep(19, "Step 6b: TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip(" !DGETH.S.F00 && !DGETH.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 20: { + LogStep(20, "Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -35843,8 +37122,8 @@ class Test_TC_DGETH_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 19: { - LogStep(19, + case 21: { + LogStep(21, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -36558,7 +37837,7 @@ class Test_TC_DGETH_2_2Suite : public TestCommand class Test_TC_FLW_1_1Suite : public TestCommand { public: - Test_TC_FLW_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLW_1_1", 8, credsIssuerConfig) + Test_TC_FLW_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLW_1_1", 10, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -36624,6 +37903,7 @@ class Test_TC_FLW_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -36635,12 +37915,24 @@ class Test_TC_FLW_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } break; case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -36650,6 +37942,14 @@ class Test_TC_FLW_1_1Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -36684,17 +37984,24 @@ class Test_TC_FLW_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, FlowMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: Read the optional attribute(Tolerance) in AttributeList"); - VerifyOrDo(!ShouldSkip("FLW.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, FlowMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, + LogStep(5, "Step 4b: Read the optional attribute(Tolerance) in AttributeList"); + VerifyOrDo(!ShouldSkip("FLW.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, + FlowMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "Step 4c: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -36709,8 +38016,24 @@ class Test_TC_FLW_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 6: { - LogStep(6, + case 7: { + LogStep(7, + "Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -36725,8 +38048,8 @@ class Test_TC_FLW_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 7: { - LogStep(7, + case 9: { + LogStep(9, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -36884,7 +38207,7 @@ class Test_TC_FLW_2_1Suite : public TestCommand class Test_TC_FLABEL_1_1Suite : public TestCommand { public: - Test_TC_FLABEL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLABEL_1_1", 7, credsIssuerConfig) + Test_TC_FLABEL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLABEL_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -36948,6 +38271,7 @@ class Test_TC_FLABEL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -36955,7 +38279,17 @@ class Test_TC_FLABEL_1_1Suite : public TestCommand break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -36965,6 +38299,14 @@ class Test_TC_FLABEL_1_1Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -36999,11 +38341,18 @@ class Test_TC_FLABEL_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FixedLabel::Id, FixedLabel::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, + LogStep(4, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FixedLabel::Id, FixedLabel::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -37018,8 +38367,24 @@ class Test_TC_FLABEL_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 5: { - LogStep(5, + case 6: { + LogStep(6, + "Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -37033,8 +38398,8 @@ class Test_TC_FLABEL_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 6: { - LogStep(6, + case 8: { + LogStep(8, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -37173,7 +38538,7 @@ class Test_TC_FLABEL_2_1Suite : public TestCommand class Test_TC_FAN_1_1Suite : public TestCommand { public: - Test_TC_FAN_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FAN_1_1", 19, credsIssuerConfig) + Test_TC_FAN_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FAN_1_1", 20, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -37289,12 +38654,30 @@ class Test_TC_FAN_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -37305,7 +38688,7 @@ class Test_TC_FAN_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -37315,7 +38698,7 @@ class Test_TC_FAN_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -37325,7 +38708,7 @@ class Test_TC_FAN_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -37334,11 +38717,11 @@ class Test_TC_FAN_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); } break; - case 14: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 15: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -37350,11 +38733,11 @@ class Test_TC_FAN_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 16: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -37363,7 +38746,7 @@ class Test_TC_FAN_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 18: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -37444,35 +38827,42 @@ class Test_TC_FAN_1_1Suite : public TestCommand } case 9: { LogStep(9, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 3b: Read the feature dependent FAN.S.F00 (SPD) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("FAN.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 3c: Read the feature dependent FAN.S.F02(RCK) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("FAN.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 3b: Read the feature dependent FAN.S.F00 (SPD) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("FAN.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "Step 3d: Read the feature dependent FAN.S.F03(WND) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("FAN.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(12, "Step 3c: Read the feature dependent FAN.S.F02(RCK) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("FAN.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "Step 3e: Read the feature dependent FAN.S.F05(DIR) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("FAN.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(13, "Step 3d: Read the feature dependent FAN.S.F03(WND) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("FAN.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 14: { - LogStep(14, + LogStep(14, "Step 3e: Read the feature dependent FAN.S.F05(DIR) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("FAN.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 15: { + LogStep(15, "Step 3f: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -37487,14 +38877,14 @@ class Test_TC_FAN_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 15: { - LogStep(15, "Step 4a: Read the global attribute: AcceptedCommandList"); + case 16: { + LogStep(16, "Step 4a: Read the global attribute: AcceptedCommandList"); VerifyOrDo(!ShouldSkip(" !FAN.S.C00.Rsp "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, + case 17: { + LogStep(17, "Step 4b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -37509,14 +38899,14 @@ class Test_TC_FAN_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 17: { - LogStep(17, "Step 5a: Read the optional command (ResetCondition) in AcceptedCommandList"); + case 18: { + LogStep(18, "Step 5a: Read the optional command (ResetCondition) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("FAN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FanControl::Id, FanControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 19: { + LogStep(19, "Step 5b: TH reads from the DUT the GeneratedCommandList attribute. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values " "in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed " @@ -38594,7 +39984,7 @@ class Test_TC_FAN_3_6Suite : public TestCommand class Test_TC_CGEN_1_1Suite : public TestCommand { public: - Test_TC_CGEN_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_1_1", 6, credsIssuerConfig) + Test_TC_CGEN_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_1_1", 8, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -38662,6 +40052,7 @@ class Test_TC_CGEN_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -38670,15 +40061,45 @@ class Test_TC_CGEN_1_1Suite : public TestCommand case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - chip::app::DataModel::DecodableList value; + chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + } + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38723,16 +40144,29 @@ class Test_TC_CGEN_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, GeneralCommissioning::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 6: Read the global attribute: AcceptedCommandList"); + LogStep(4, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, - GeneralCommissioning::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + GeneralCommissioning::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 7: Read the global attribute: GeneratedCommandList"); + LogStep(5, "Step 5: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, + GeneralCommissioning::Attributes::EventList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "Step 6: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, + GeneralCommissioning::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "Step 7: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralCommissioning::Id, GeneralCommissioning::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -38911,7 +40345,7 @@ class Test_TC_CGEN_2_1Suite : public TestCommand class Test_TC_DGGEN_1_1Suite : public TestCommand { public: - Test_TC_DGGEN_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_1_1", 14, credsIssuerConfig) + Test_TC_DGGEN_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_1_1", 20, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -38977,6 +40411,7 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -38988,7 +40423,14 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: @@ -38997,7 +40439,7 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 6: @@ -39006,7 +40448,7 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 7: @@ -39015,7 +40457,7 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; case 8: @@ -39024,7 +40466,7 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; case 9: @@ -39033,14 +40475,63 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + } break; case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39049,11 +40540,11 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 12: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 13: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -39091,47 +40582,54 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, GeneralDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: Read optional attribute(UpTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGGEN.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, GeneralDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4c: Read optional attribute(TotalOperationalHours) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGGEN.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4b: Read optional attribute(UpTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGGEN.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, GeneralDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4d: Read optional attribute(BootReason) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGGEN.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 4c: Read optional attribute(TotalOperationalHours) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGGEN.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, GeneralDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4e: Read optional attribute(ActiveHardwareFaults) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGGEN.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 4d: Read optional attribute(BootReason) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGGEN.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, GeneralDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4f: Read optional attribute(ActiveRadioFaults) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGGEN.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 4e: Read optional attribute(ActiveHardwareFaults) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGGEN.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, GeneralDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4g: Read optional attribute(ActiveNetworkFaults) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGGEN.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 4f: Read optional attribute(ActiveRadioFaults) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGGEN.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, GeneralDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, + LogStep(10, "Step 4g: Read optional attribute(ActiveNetworkFaults) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGGEN.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 11: { + LogStep(11, "Step 4h: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -39146,13 +40644,53 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 11: { - LogStep(11, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 12: { + LogStep(12, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 13: { + LogStep(13, "Step 5b: Read optional event(HardwareFaultChange) in EventList"); + VerifyOrDo(!ShouldSkip("DGGEN.S.E00 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 14: { + LogStep(14, "Step 5c: Read optional event(RadioFaultChange) in EventList"); + VerifyOrDo(!ShouldSkip("DGGEN.S.E01 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 15: { + LogStep(15, "Step 5d: Read optional event(NetworkFaultChange) in EventList"); + VerifyOrDo(!ShouldSkip("DGGEN.S.E02 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 16: { + LogStep(16, + "Step 5e: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 17: { + LogStep(17, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, GeneralDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, + case 18: { + LogStep(18, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -39167,8 +40705,8 @@ class Test_TC_DGGEN_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 13: { - LogStep(13, + case 19: { + LogStep(19, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -39492,7 +41030,7 @@ class Test_TC_DGGEN_2_1Suite : public TestCommand class Test_TC_GRPKEY_1_1Suite : public TestCommand { public: - Test_TC_GRPKEY_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_GRPKEY_1_1", 11, credsIssuerConfig) + Test_TC_GRPKEY_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_GRPKEY_1_1", 14, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -39568,6 +41106,7 @@ class Test_TC_GRPKEY_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -39575,13 +41114,46 @@ class Test_TC_GRPKEY_1_1Suite : public TestCommand break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } break; case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39593,11 +41165,11 @@ class Test_TC_GRPKEY_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 8: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 9: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39607,7 +41179,7 @@ class Test_TC_GRPKEY_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 10: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -39652,11 +41224,18 @@ class Test_TC_GRPKEY_1_1Suite : public TestCommand } case 4: { LogStep(4, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, + LogStep(5, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip(" !PICS_EVENT_LIST_ENABLED "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, + GroupKeyManagement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "Step 4b: The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - " "0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain values in the Manufacturer Extensible " "Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), " @@ -39671,8 +41250,30 @@ class Test_TC_GRPKEY_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 6: { - LogStep(6, + case 7: { + LogStep(7, "Step 5a: TH1 reads EventList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, + GroupKeyManagement::Attributes::EventList::Id, true, chip::NullOptional); + } + case 8: { + LogStep(8, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "Step 5b: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " @@ -39687,13 +41288,13 @@ class Test_TC_GRPKEY_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 7: { - LogStep(7, "Step 6a: TH reads AcceptedCommandList from DUT"); + case 10: { + LogStep(10, "Step 6a: TH reads AcceptedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, + case 11: { + LogStep(11, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -39707,13 +41308,13 @@ class Test_TC_GRPKEY_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 9: { - LogStep(9, "Step 7a: TH reads GeneratedCommandList from DUT"); + case 12: { + LogStep(12, "Step 7a: TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, + case 13: { + LogStep(13, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -39735,7 +41336,7 @@ class Test_TC_GRPKEY_1_1Suite : public TestCommand class Test_TC_ICDM_1_1Suite : public TestCommand { public: - Test_TC_ICDM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ICDM_1_1", 16, credsIssuerConfig) + Test_TC_ICDM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ICDM_1_1", 19, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -39810,6 +41411,7 @@ class Test_TC_ICDM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -39821,7 +41423,14 @@ class Test_TC_ICDM_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: @@ -39830,7 +41439,7 @@ class Test_TC_ICDM_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 7: @@ -39839,14 +41448,39 @@ class Test_TC_ICDM_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + } break; case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39858,7 +41492,7 @@ class Test_TC_ICDM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 10: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39868,7 +41502,7 @@ class Test_TC_ICDM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 11: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39877,11 +41511,11 @@ class Test_TC_ICDM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 12: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 13: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39893,7 +41527,7 @@ class Test_TC_ICDM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 14: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -39902,7 +41536,7 @@ class Test_TC_ICDM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 15: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -39947,29 +41581,36 @@ class Test_TC_ICDM_1_1Suite : public TestCommand } case 4: { LogStep(4, "Step 4a: TH reads AttributeList attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4b: Read the optional attribute(RegisteredClients) in AttributeList"); - VerifyOrDo(!ShouldSkip("ICDM.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4a: TH reads AttributeList attribute from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4c: Read the optional attribute(IcdCounter) in AttributeList"); - VerifyOrDo(!ShouldSkip("ICDM.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 4b: Read the optional attribute(RegisteredClients) in AttributeList"); + VerifyOrDo(!ShouldSkip("ICDM.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4d: Read the optional attribute(ClientsSupportedPerFabric) in AttributeList"); - VerifyOrDo(!ShouldSkip("ICDM.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 4c: Read the optional attribute(IcdCounter) in AttributeList"); + VerifyOrDo(!ShouldSkip("ICDM.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, + LogStep(8, "Step 4d: Read the optional attribute(ClientsSupportedPerFabric) in AttributeList"); + VerifyOrDo(!ShouldSkip("ICDM.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 9: { + LogStep(9, "Step 4e: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -39984,26 +41625,48 @@ class Test_TC_ICDM_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 9: { - LogStep(9, "Step 6a: TH reads AcceptedCommandList attribute from DUT"); + case 10: { + LogStep(10, "Step 5a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 11: { + LogStep(11, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "Step 6a: TH reads AcceptedCommandList attribute from DUT"); VerifyOrDo(!ShouldSkip(" !ICDM.S.F00 && !ICDM.S.C03.Rsp "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Step 6b: TH reads AcceptedCommandList attribute from DUT if ICDM.S.F00 is true"); + case 13: { + LogStep(13, "Step 6b: TH reads AcceptedCommandList attribute from DUT if ICDM.S.F00 is true"); VerifyOrDo(!ShouldSkip("ICDM.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "Step 6c: Read the optional command (StayActiveRequest) in AttributeList"); + case 14: { + LogStep(14, "Step 6c: Read the optional command (StayActiveRequest) in AttributeList"); VerifyOrDo(!ShouldSkip("ICDM.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, + case 15: { + LogStep(15, "Step 6d: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -40018,20 +41681,20 @@ class Test_TC_ICDM_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 13: { - LogStep(13, "Step 7a: TH reads GeneratedCommandList attribute from DUT"); + case 16: { + LogStep(16, "Step 7a: TH reads GeneratedCommandList attribute from DUT"); VerifyOrDo(!ShouldSkip(" !ICDM.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Step 7a: TH reads GeneratedCommandList attribute from DUT"); + case 17: { + LogStep(17, "Step 7a: TH reads GeneratedCommandList attribute from DUT"); VerifyOrDo(!ShouldSkip("ICDM.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), IcdManagement::Id, IcdManagement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, + case 18: { + LogStep(18, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -40215,7 +41878,7 @@ class Test_TC_ICDM_2_1Suite : public TestCommand class Test_TC_I_1_1Suite : public TestCommand { public: - Test_TC_I_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_1_1", 7, credsIssuerConfig) + Test_TC_I_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -40277,9 +41940,9 @@ class Test_TC_I_1_1Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -40288,10 +41951,16 @@ class Test_TC_I_1_1Suite : public TestCommand case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - chip::app::DataModel::DecodableList value; + chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: @@ -40300,10 +41969,19 @@ class Test_TC_I_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 64UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 64UL)); + } + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -40315,6 +41993,10 @@ class Test_TC_I_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -40348,26 +42030,45 @@ class Test_TC_I_1_1Suite : public TestCommand chip::NullOptional); } case 3: { - LogStep(3, "Step 4: Read the global attribute: AttributeList"); + LogStep(3, "Step 4: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 5: Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::AcceptedCommandList::Id, true, + LogStep(4, "Step 4: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 6: Read the optional command(TriggerEffect) in AcceptedCommandList"); - VerifyOrDo(!ShouldSkip("I.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 5: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 6: Read the global attribute: GeneratedCommandList"); + LogStep(6, "Step 6: Read the optional command(TriggerEffect) in AcceptedCommandList"); + VerifyOrDo(!ShouldSkip("I.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Step 6: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 8: { + LogStep(8, + "Step 7: Read EventList attribute from the DUT. For this cluster the list is usually empty but it can contain " + "manufacturer specific event IDs."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -41057,7 +42758,7 @@ class Test_TC_I_2_3Suite : public TestCommand class Test_TC_ILL_1_1Suite : public TestCommand { public: - Test_TC_ILL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ILL_1_1", 8, credsIssuerConfig) + Test_TC_ILL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ILL_1_1", 10, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -41123,6 +42824,7 @@ class Test_TC_ILL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -41134,7 +42836,14 @@ class Test_TC_ILL_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: @@ -41143,10 +42852,23 @@ class Test_TC_ILL_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41158,7 +42880,7 @@ class Test_TC_ILL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 7: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41204,28 +42926,47 @@ class Test_TC_ILL_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: Read the optional attribute(Tolerance) in AttributeList"); - VerifyOrDo(!ShouldSkip("ILL.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4c: Read the optional attribute(LightSensorType) in AttributeList"); - VerifyOrDo(!ShouldSkip("ILL.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4b: Read the optional attribute(Tolerance) in AttributeList"); + VerifyOrDo(!ShouldSkip("ILL.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 6: Read the global attribute: AcceptedCommandList"); + LogStep(6, "Step 4c: Read the optional attribute(LightSensorType) in AttributeList"); + VerifyOrDo(!ShouldSkip("ILL.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, - IlluminanceMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + IlluminanceMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 7: Read the global attribute: GeneratedCommandList"); + LogStep(7, + "Step 5: Read EventList attribute from the DUT.For this cluster the list is usually empty but it can contain " + "manufacturer specific event IDs."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "Step 6: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, + IlluminanceMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 9: { + LogStep(9, "Step 7: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), IlluminanceMeasurement::Id, IlluminanceMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -41564,7 +43305,7 @@ class Test_TC_ILL_2_2Suite : public TestCommand class Test_TC_LVL_1_1Suite : public TestCommand { public: - Test_TC_LVL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_1_1", 18, credsIssuerConfig) + Test_TC_LVL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_1_1", 20, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -41657,12 +43398,29 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41672,7 +43430,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16384UL)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41683,7 +43441,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41692,7 +43450,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41701,7 +43459,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41710,7 +43468,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41719,7 +43477,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41728,7 +43486,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); } break; - case 14: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41737,7 +43495,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); } break; - case 15: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41753,7 +43511,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 16: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41762,7 +43520,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -41774,6 +43532,18 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -41827,73 +43597,86 @@ class Test_TC_LVL_1_1Suite : public TestCommand } case 6: { LogStep(6, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 3b: Read the optional attribute(StartUpCurrentLevel and RemainingTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("LVL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 3c: Read the optional attribute(CurrentFrequency, MinFrequency and MinFrequency) in AttributeList"); - VerifyOrDo(!ShouldSkip("LVL.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 3b: Read the optional attribute(StartUpCurrentLevel and RemainingTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("LVL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 3d: Read the optional attribute(MinLevel) in AttributeList"); - VerifyOrDo(!ShouldSkip("LVL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 3c: Read the optional attribute(CurrentFrequency, MinFrequency and MinFrequency) in AttributeList"); + VerifyOrDo(!ShouldSkip("LVL.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 3e: Read the optional attribute(MaxLevel) in AttributeList"); - VerifyOrDo(!ShouldSkip("LVL.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 3d: Read the optional attribute(MinLevel) in AttributeList"); + VerifyOrDo(!ShouldSkip("LVL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 3f: Read the optional attribute(OnOffTransitionTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("LVL.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 3e: Read the optional attribute(MaxLevel) in AttributeList"); + VerifyOrDo(!ShouldSkip("LVL.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "Step 3g: Read the optional attribute(OnTransitionTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("LVL.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(12, "Step 3f: Read the optional attribute(OnOffTransitionTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("LVL.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "Step 3h: Read the optional attribute(OffTransitionTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("LVL.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(13, "Step 3g: Read the optional attribute(OnTransitionTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("LVL.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "Step 3i: Read the optional attribute(DefaultMoveRate) in AttributeList"); - VerifyOrDo(!ShouldSkip("LVL.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(14, "Step 3h: Read the optional attribute(OffTransitionTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("LVL.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 15: { - LogStep(15, "Step 4a: Read the global attribute: AcceptedCommandList"); + LogStep(15, "Step 3i: Read the optional attribute(DefaultMoveRate) in AttributeList"); + VerifyOrDo(!ShouldSkip("LVL.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 16: { + LogStep(16, "Step 4a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "Step 4a.1: Read the Feature-dependent(LVL.S.F02) command in AcceptedCommandList"); + case 17: { + LogStep(17, "Step 4a.1: Read the Feature-dependent(LVL.S.F02) command in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("LVL.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "Step 4b: Read the global attribute: GeneratedCommandList"); + case 18: { + LogStep(18, "Step 4b: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 19: { + LogStep(19, "Step 5: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::EventList::Id, true, + chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -44891,7 +46674,7 @@ class Test_TC_LVL_7_1Suite : public TestCommand class Test_TC_LCFG_1_1Suite : public TestCommand { public: - Test_TC_LCFG_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LCFG_1_1", 6, credsIssuerConfig) + Test_TC_LCFG_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LCFG_1_1", 8, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -44956,12 +46739,40 @@ class Test_TC_LCFG_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -44973,7 +46784,7 @@ class Test_TC_LCFG_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 5: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -45019,16 +46830,29 @@ class Test_TC_LCFG_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), LocalizationConfiguration::Id, LocalizationConfiguration::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 6: TH reads AcceptedCommandList from DUT"); + LogStep(4, "Step 4: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), LocalizationConfiguration::Id, - LocalizationConfiguration::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + LocalizationConfiguration::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 7: TH reads GeneratedCommandList from DUT"); + LogStep(5, "Step 5: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), LocalizationConfiguration::Id, + LocalizationConfiguration::Attributes::EventList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "Step 6: TH reads AcceptedCommandList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), LocalizationConfiguration::Id, + LocalizationConfiguration::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "Step 7: TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), LocalizationConfiguration::Id, LocalizationConfiguration::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -45040,7 +46864,7 @@ class Test_TC_LCFG_1_1Suite : public TestCommand class Test_TC_LUNIT_1_2Suite : public TestCommand { public: - Test_TC_LUNIT_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LUNIT_1_2", 8, credsIssuerConfig) + Test_TC_LUNIT_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LUNIT_1_2", 10, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -45112,6 +46936,7 @@ class Test_TC_LUNIT_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -45123,10 +46948,35 @@ class Test_TC_LUNIT_1_2Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -45138,7 +46988,7 @@ class Test_TC_LUNIT_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 7: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -45191,22 +47041,35 @@ class Test_TC_LUNIT_1_2Suite : public TestCommand } case 4: { LogStep(4, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4b: TH reads Feature dependent(LUNIT.S.F00) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("LUNIT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 6: TH reads AcceptedCommandList from DUT"); + LogStep(6, "Step 4b: TH reads Feature dependent(LUNIT.S.F00) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("LUNIT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, - UnitLocalization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + UnitLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 7: TH reads GeneratedCommandList from DUT"); + LogStep(7, "Step 5: TH reads EventList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::EventList::Id, + true, chip::NullOptional); + } + case 8: { + LogStep(8, "Step 6: TH reads AcceptedCommandList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, + UnitLocalization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 9: { + LogStep(9, "Step 7: TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -45389,7 +47252,7 @@ class Test_TC_LUNIT_3_1Suite : public TestCommand class Test_TC_LTIME_1_2Suite : public TestCommand { public: - Test_TC_LTIME_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LTIME_1_2", 8, credsIssuerConfig) + Test_TC_LTIME_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LTIME_1_2", 10, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -45454,6 +47317,7 @@ class Test_TC_LTIME_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -45465,7 +47329,12 @@ class Test_TC_LTIME_1_2Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: @@ -45474,10 +47343,31 @@ class Test_TC_LTIME_1_2Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -45489,7 +47379,7 @@ class Test_TC_LTIME_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 7: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -45535,28 +47425,41 @@ class Test_TC_LTIME_1_2Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeFormatLocalization::Id, TimeFormatLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: TH reads optional attribute(ActiveCalendarType) in AttributeList from DUT"); - VerifyOrDo(!ShouldSkip("LTIME.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeFormatLocalization::Id, TimeFormatLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4c: TH reads optional attribute(SupportedCalendarTypes) in AttributeList from DUT"); - VerifyOrDo(!ShouldSkip("LTIME.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4b: TH reads optional attribute(ActiveCalendarType) in AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("LTIME.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeFormatLocalization::Id, TimeFormatLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 6: TH reads AcceptedCommandList from DUT"); + LogStep(6, "Step 4c: TH reads optional attribute(SupportedCalendarTypes) in AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("LTIME.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeFormatLocalization::Id, - TimeFormatLocalization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + TimeFormatLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 7: TH reads GeneratedCommandList from DUT"); + LogStep(7, "Step 5: TH reads EventList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeFormatLocalization::Id, + TimeFormatLocalization::Attributes::EventList::Id, true, chip::NullOptional); + } + case 8: { + LogStep(8, "Step 6: TH reads AcceptedCommandList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeFormatLocalization::Id, + TimeFormatLocalization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 9: { + LogStep(9, "Step 7: TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeFormatLocalization::Id, TimeFormatLocalization::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -45569,7 +47472,7 @@ class Test_TC_LOWPOWER_1_1Suite : public TestCommand { public: Test_TC_LOWPOWER_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_LOWPOWER_1_1", 6, credsIssuerConfig) + TestCommand("Test_TC_LOWPOWER_1_1", 8, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -45625,6 +47528,30 @@ class Test_TC_LOWPOWER_1_1Suite : public TestCommand } break; case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter_0, 0)); + VerifyOrReturn(CheckValue("attributeList[0]", iter_0.GetValue(), 65528UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter_0, 1)); + VerifyOrReturn(CheckValue("attributeList[1]", iter_0.GetValue(), 65529UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter_0, 2)); + VerifyOrReturn(CheckValue("attributeList[2]", iter_0.GetValue(), 65530UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter_0, 3)); + VerifyOrReturn(CheckValue("attributeList[3]", iter_0.GetValue(), 65531UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter_0, 4)); + VerifyOrReturn(CheckValue("attributeList[4]", iter_0.GetValue(), 65532UL)); + VerifyOrReturn(CheckNextListItemDecodes("attributeList", iter_0, 5)); + VerifyOrReturn(CheckValue("attributeList[5]", iter_0.GetValue(), 65533UL)); + VerifyOrReturn(CheckNoMoreListItems("attributeList", iter_0, 6)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -45646,7 +47573,7 @@ class Test_TC_LOWPOWER_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 4: + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -45660,7 +47587,7 @@ class Test_TC_LOWPOWER_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 5: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -45672,6 +47599,18 @@ class Test_TC_LOWPOWER_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -45706,19 +47645,32 @@ class Test_TC_LOWPOWER_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 3: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4: Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::AcceptedCommandList::Id, true, + LogStep(4, "Step 3: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 5: Read the global attribute: GeneratedCommandList"); + LogStep(5, "Step 4: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 7: { + LogStep(7, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Attributes::EventList::Id, true, + chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -45728,7 +47680,7 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand { public: Test_TC_KEYPADINPUT_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_KEYPADINPUT_1_2", 9, credsIssuerConfig) + TestCommand("Test_TC_KEYPADINPUT_1_2", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -45818,12 +47770,26 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -45832,7 +47798,7 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -45841,6 +47807,18 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -45895,19 +47873,32 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand } case 6: { LogStep(6, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4: Read the global attribute: AcceptedCommandList"); + LogStep(7, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Step 4: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Step 5: Read the global attribute: GeneratedCommandList"); + case 9: { + LogStep(9, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 10: { + LogStep(10, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::EventList::Id, true, + chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -45917,7 +47908,7 @@ class Test_TC_APPLAUNCHER_1_3Suite : public TestCommand { public: Test_TC_APPLAUNCHER_1_3Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_APPLAUNCHER_1_3", 9, credsIssuerConfig) + TestCommand("Test_TC_APPLAUNCHER_1_3", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -45989,6 +47980,7 @@ class Test_TC_APPLAUNCHER_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -46000,7 +47992,11 @@ class Test_TC_APPLAUNCHER_1_3Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: @@ -46009,10 +48005,19 @@ class Test_TC_APPLAUNCHER_1_3Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46023,7 +48028,7 @@ class Test_TC_APPLAUNCHER_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46032,6 +48037,18 @@ class Test_TC_APPLAUNCHER_1_3Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -46073,31 +48090,44 @@ class Test_TC_APPLAUNCHER_1_3Suite : public TestCommand } case 4: { LogStep(4, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 3b: Read the optional attribute(CatalogList) in AttributeList"); - VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 3c: Read the optional attribute(CurrentApp) in AttributeList"); - VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 3b: Read the optional attribute(CatalogList) in AttributeList"); + VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4: Read the global attribute: AcceptedCommandList"); + LogStep(7, "Step 3c: Read the optional attribute(CurrentApp) in AttributeList"); + VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, - ApplicationLauncher::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + ApplicationLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 5: Read the global attribute: GeneratedCommandList"); + LogStep(8, "Step 4: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, + ApplicationLauncher::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 9: { + LogStep(9, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 10: { + LogStep(10, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, + ApplicationLauncher::Attributes::EventList::Id, true, chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -46107,7 +48137,7 @@ class Test_TC_MEDIAINPUT_1_4Suite : public TestCommand { public: Test_TC_MEDIAINPUT_1_4Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_MEDIAINPUT_1_4", 9, credsIssuerConfig) + TestCommand("Test_TC_MEDIAINPUT_1_4", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -46179,6 +48209,7 @@ class Test_TC_MEDIAINPUT_1_4Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -46190,7 +48221,11 @@ class Test_TC_MEDIAINPUT_1_4Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: @@ -46199,10 +48234,19 @@ class Test_TC_MEDIAINPUT_1_4Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46214,7 +48258,7 @@ class Test_TC_MEDIAINPUT_1_4Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46226,6 +48270,18 @@ class Test_TC_MEDIAINPUT_1_4Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -46267,31 +48323,44 @@ class Test_TC_MEDIAINPUT_1_4Suite : public TestCommand } case 4: { LogStep(4, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 3b: Read the optional attribute(InputList) in AttributeList"); - VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 3c: Read the optional attribute(CurrentInput) in AttributeList"); - VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 3b: Read the optional attribute(InputList) in AttributeList"); + VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4: Read the global attribute: AcceptedCommandList"); + LogStep(7, "Step 3c: Read the optional attribute(CurrentInput) in AttributeList"); + VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Step 4: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Step 5: Read the global attribute: GeneratedCommandList"); + case 9: { + LogStep(9, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 10: { + LogStep(10, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::EventList::Id, true, + chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -46301,7 +48370,7 @@ class Test_TC_WAKEONLAN_1_5Suite : public TestCommand { public: Test_TC_WAKEONLAN_1_5Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_WAKEONLAN_1_5", 7, credsIssuerConfig) + TestCommand("Test_TC_WAKEONLAN_1_5", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -46364,6 +48433,7 @@ class Test_TC_WAKEONLAN_1_5Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -46375,10 +48445,23 @@ class Test_TC_WAKEONLAN_1_5Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46390,7 +48473,7 @@ class Test_TC_WAKEONLAN_1_5Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 6: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46402,6 +48485,18 @@ class Test_TC_WAKEONLAN_1_5Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -46436,25 +48531,38 @@ class Test_TC_WAKEONLAN_1_5Suite : public TestCommand } case 3: { LogStep(3, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 3b: Read the optional attribute(MACAddress) in AttributeList"); - VerifyOrDo(!ShouldSkip("WAKEONLAN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4: Read the global attribute: AcceptedCommandList"); + LogStep(5, "Step 3b: Read the optional attribute(MACAddress) in AttributeList"); + VerifyOrDo(!ShouldSkip("WAKEONLAN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Step 4: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Step 5: Read the global attribute: GeneratedCommandList"); + case 7: { + LogStep(7, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 8: { + LogStep(8, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::EventList::Id, true, + chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -46464,7 +48572,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand { public: Test_TC_CHANNEL_1_6Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CHANNEL_1_6", 14, credsIssuerConfig) + TestCommand("Test_TC_CHANNEL_1_6", 16, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -46545,6 +48653,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -46556,7 +48665,11 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 7: @@ -46565,7 +48678,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; case 8: @@ -46574,10 +48687,19 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46586,7 +48708,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46595,7 +48717,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46604,7 +48726,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46616,7 +48738,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46625,6 +48747,18 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -46672,57 +48806,70 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand } case 5: { LogStep(5, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 3b: Read the optional attribute(ChannelList): AttributeList"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 3c: Reading optional attribute(Lineup) in AttributeList"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 3b: Read the optional attribute(ChannelList): AttributeList"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 3d: Read the optional attribute(CurrentChannel): AttributeList"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 3c: Reading optional attribute(Lineup) in AttributeList"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4a: Read the optional command(ChangeChannel) in AcceptedCommandList"); + LogStep(9, "Step 3d: Read the optional attribute(CurrentChannel): AttributeList"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 10: { + LogStep(10, "Step 4a: Read the optional command(ChangeChannel) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CHANNEL.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Step 4b: Read the optional command(ChangeChannelByNumber) in AcceptedCommandList"); + case 11: { + LogStep(11, "Step 4b: Read the optional command(ChangeChannelByNumber) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CHANNEL.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "Step 4c: Read the optional command(SkipChannel) in AcceptedCommandList"); + case 12: { + LogStep(12, "Step 4c: Read the optional command(SkipChannel) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("CHANNEL.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "Step 5a: Read the global attribute: GeneratedCommandList"); + case 13: { + LogStep(13, "Step 5a: Read the global attribute: GeneratedCommandList"); VerifyOrDo(!ShouldSkip("( !CHANNEL.S.F00 && !CHANNEL.S.F01 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Step 5b: Read the global attribute: GeneratedCommandList"); + case 14: { + LogStep(14, "Step 5b: Read the global attribute: GeneratedCommandList"); VerifyOrDo(!ShouldSkip("CHANNEL.S.F00 || CHANNEL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 15: { + LogStep(15, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::EventList::Id, true, + chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -46732,7 +48879,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand { public: Test_TC_MEDIAPLAYBACK_1_7Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_MEDIAPLAYBACK_1_7", 22, credsIssuerConfig) + TestCommand("Test_TC_MEDIAPLAYBACK_1_7", 24, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -46814,6 +48961,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -46825,7 +48973,12 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 7: @@ -46834,7 +48987,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; case 8: @@ -46843,7 +48996,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 9: @@ -46852,7 +49005,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 10: @@ -46861,7 +49014,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; case 11: @@ -46870,10 +49023,19 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + } + break; + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46884,7 +49046,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46893,7 +49055,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 14: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46902,7 +49064,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 15: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46911,7 +49073,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 16: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46920,7 +49082,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46929,7 +49091,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 18: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46938,7 +49100,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46947,7 +49109,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46956,7 +49118,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -46965,6 +49127,18 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -47013,103 +49187,116 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand } case 5: { LogStep(5, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 3b: Read the optional attribute(StartTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 3c: Read the optional attribute(Duration) in AttributeList"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 3b: Read the optional attribute(StartTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 3d: Read the optional attribute(SampledPosition) in AttributeList"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 3c: Read the optional attribute(Duration) in AttributeList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 3e: Read the optional attribute(PlaybackSpeed) in AttributeList"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 3d: Read the optional attribute(SampledPosition) in AttributeList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 3f: Read the optional attribute(SeekRangeEnd) in AttributeList"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 3e: Read the optional attribute(PlaybackSpeed) in AttributeList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 3g: Read the optional attribute(SeekRangeStart) in AttributeList"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 3f: Read the optional attribute(SeekRangeEnd) in AttributeList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "Step 4a: Read the global attribute: AcceptedCommandList"); + LogStep(12, "Step 3g: Read the optional attribute(SeekRangeStart) in AttributeList"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 13: { + LogStep(13, "Step 4a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Step 4b: Read the optional command(StartOver) in AcceptedCommandList"); + case 14: { + LogStep(14, "Step 4b: Read the optional command(StartOver) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Step 4c: Read the optional command(Previous) in AcceptedCommandList"); + case 15: { + LogStep(15, "Step 4c: Read the optional command(Previous) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "Step 4d: Read the optional command(Next) in AcceptedCommandList"); + case 16: { + LogStep(16, "Step 4d: Read the optional command(Next) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C05.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "Step 4e: Read the optional command(Rewind) in AcceptedCommandList"); + case 17: { + LogStep(17, "Step 4e: Read the optional command(Rewind) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "Step 4f: Read the optional command(FastForward) in AcceptedCommandList"); + case 18: { + LogStep(18, "Step 4f: Read the optional command(FastForward) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C07.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, "Step 4g: Read the optional command(SkipForward) in AcceptedCommandList"); + case 19: { + LogStep(19, "Step 4g: Read the optional command(SkipForward) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C08.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, "Step 4h: Read the optional command(SkipBackward) in AcceptedCommandList"); + case 20: { + LogStep(20, "Step 4h: Read the optional command(SkipBackward) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C09.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 20: { - LogStep(20, "Step 4i: Read the optional command(Seek) in AcceptedCommandList"); + case 21: { + LogStep(21, "Step 4i: Read the optional command(Seek) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0b.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 21: { - LogStep(21, "Step 5: Read the global attribute: GeneratedCommandList"); + case 22: { + LogStep(22, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 23: { + LogStep(23, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::EventList::Id, true, + chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -47119,7 +49306,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand { public: Test_TC_AUDIOOUTPUT_1_8Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_AUDIOOUTPUT_1_8", 7, credsIssuerConfig) + TestCommand("Test_TC_AUDIOOUTPUT_1_8", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -47193,6 +49380,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -47201,13 +49389,28 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - chip::app::DataModel::DecodableList value; + chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -47219,6 +49422,18 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -47260,19 +49475,32 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand } case 4: { LogStep(4, "Step 3: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4: Read the global attribute: AcceptedCommandList"); + LogStep(5, "Step 3: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Step 4: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Step 5: Read the global attribute: GeneratedCommandList"); + case 7: { + LogStep(7, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 8: { + LogStep(8, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::EventList::Id, true, + chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -47281,7 +49509,7 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand class Test_TC_TGTNAV_1_9Suite : public TestCommand { public: - Test_TC_TGTNAV_1_9Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TGTNAV_1_9", 7, credsIssuerConfig) + Test_TC_TGTNAV_1_9Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TGTNAV_1_9", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -47345,6 +49573,7 @@ class Test_TC_TGTNAV_1_9Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -47356,10 +49585,24 @@ class Test_TC_TGTNAV_1_9Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -47368,7 +49611,7 @@ class Test_TC_TGTNAV_1_9Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 6: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -47377,6 +49620,18 @@ class Test_TC_TGTNAV_1_9Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -47411,25 +49666,38 @@ class Test_TC_TGTNAV_1_9Suite : public TestCommand } case 3: { LogStep(3, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, TargetNavigator::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 3b: Read the optional attribute(CurrentTarget) in AttributeList"); - VerifyOrDo(!ShouldSkip("TGTNAV.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, TargetNavigator::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4: Read the global attribute: AcceptedCommandList"); + LogStep(5, "Step 3b: Read the optional attribute(CurrentTarget) in AttributeList"); + VerifyOrDo(!ShouldSkip("TGTNAV.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, - TargetNavigator::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + TargetNavigator::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 5: Read the global attribute: GeneratedCommandList"); + LogStep(6, "Step 4: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, + TargetNavigator::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, TargetNavigator::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 8: { + LogStep(8, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TargetNavigator::Id, TargetNavigator::Attributes::EventList::Id, + true, chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -47438,7 +49706,7 @@ class Test_TC_TGTNAV_1_9Suite : public TestCommand class Test_TC_APBSC_1_10Suite : public TestCommand { public: - Test_TC_APBSC_1_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_APBSC_1_10", 9, credsIssuerConfig) + Test_TC_APBSC_1_10Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_APBSC_1_10", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -47506,6 +49774,7 @@ class Test_TC_APBSC_1_10Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -47517,7 +49786,16 @@ class Test_TC_APBSC_1_10Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: @@ -47526,7 +49804,7 @@ class Test_TC_APBSC_1_10Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; case 6: @@ -47535,10 +49813,19 @@ class Test_TC_APBSC_1_10Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -47550,7 +49837,7 @@ class Test_TC_APBSC_1_10Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -47562,6 +49849,18 @@ class Test_TC_APBSC_1_10Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -47596,37 +49895,50 @@ class Test_TC_APBSC_1_10Suite : public TestCommand } case 3: { LogStep(3, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 3b: Read the optional attribute(VendorName) in AttributeList"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 3c: Read the optional attribute(VendorID) in AttributeList"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 3b: Read the optional attribute(VendorName) in AttributeList"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 3d: Read the optional attribute(ProductID) in AttributeList"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 3c: Read the optional attribute(VendorID) in AttributeList"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4: Read the global attribute: AcceptedCommandList"); + LogStep(7, "Step 3d: Read the optional attribute(ProductID) in AttributeList"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, - ApplicationBasic::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + ApplicationBasic::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 5: Read the global attribute: GeneratedCommandList"); + LogStep(8, "Step 4: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, + ApplicationBasic::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 9: { + LogStep(9, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 10: { + LogStep(10, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::EventList::Id, + true, chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -47636,7 +49948,7 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand { public: Test_TC_CONTENTLAUNCHER_1_11Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CONTENTLAUNCHER_1_11", 11, credsIssuerConfig) + TestCommand("Test_TC_CONTENTLAUNCHER_1_11", 13, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -47717,6 +50029,7 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -47728,7 +50041,11 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 7: @@ -47737,10 +50054,19 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -47749,7 +50075,7 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -47758,7 +50084,7 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -47767,6 +50093,18 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -47815,38 +50153,51 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand } case 5: { LogStep(5, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 3b: Read the optional attribute(AcceptHeader): AttributeList"); - VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 3a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 3c: Read the optional attribute(SupportedStreamingProtocols): AttributeList"); - VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 3b: Read the optional attribute(AcceptHeader): AttributeList"); + VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4a: Read the optional command(LaunchContent) in AcceptedCommandList attribute"); + LogStep(8, "Step 3c: Read the optional attribute(SupportedStreamingProtocols): AttributeList"); + VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, + ContentLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 9: { + LogStep(9, "Step 4a: Read the optional command(LaunchContent) in AcceptedCommandList attribute"); VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Step 4b: Read the optional command(LaunchURL) in AcceptedCommandList attribute"); + case 10: { + LogStep(10, "Step 4b: Read the optional command(LaunchURL) in AcceptedCommandList attribute"); VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Step 5: Read the global attribute: GeneratedCommandList"); + case 11: { + LogStep(11, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 12: { + LogStep(12, "Step 6: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::EventList::Id, + true, chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -47856,7 +50207,7 @@ class Test_TC_ALOGIN_1_12Suite : public TestCommand { public: Test_TC_ALOGIN_1_12Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_ALOGIN_1_12", 6, credsIssuerConfig) + TestCommand("Test_TC_ALOGIN_1_12", 8, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -47919,12 +50270,26 @@ class Test_TC_ALOGIN_1_12Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -47935,7 +50300,7 @@ class Test_TC_ALOGIN_1_12Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 5: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -47944,6 +50309,18 @@ class Test_TC_ALOGIN_1_12Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -47978,19 +50355,32 @@ class Test_TC_ALOGIN_1_12Suite : public TestCommand } case 3: { LogStep(3, "Step 3: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4: Read the global attribute: AcceptedCommandList"); + LogStep(4, "Step 3: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 5: { + LogStep(5, "Step 4: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 5: { - LogStep(5, "Step 5: Read the global attribute: GeneratedCommandList"); + case 6: { + LogStep(6, "Step 5: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 7: { + LogStep(7, "Step 6: TH reads EventList attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Attributes::EventList::Id, true, + chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -52910,7 +55300,7 @@ class Test_TC_CONTENTLAUNCHER_10_7Suite : public TestCommand class Test_TC_MOD_1_1Suite : public TestCommand { public: - Test_TC_MOD_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_1_1", 12, credsIssuerConfig) + Test_TC_MOD_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_1_1", 15, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -52981,6 +55371,7 @@ class Test_TC_MOD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -52992,7 +55383,15 @@ class Test_TC_MOD_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: @@ -53001,14 +55400,39 @@ class Test_TC_MOD_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + } break; case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -53017,11 +55441,11 @@ class Test_TC_MOD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 9: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 10: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -53033,7 +55457,7 @@ class Test_TC_MOD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 11: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -53083,23 +55507,30 @@ class Test_TC_MOD_1_1Suite : public TestCommand } case 4: { LogStep(4, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4b: TH reads the optional attribute(StartUpMode) in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("MOD.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4c: TH reads the optional attribute(OnMode) in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("MOD.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 4b: TH reads the optional attribute(StartUpMode) in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("MOD.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, + LogStep(7, "Step 4c: TH reads the optional attribute(OnMode) in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("MOD.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Step 4d: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -53114,13 +55545,35 @@ class Test_TC_MOD_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 8: { - LogStep(8, "Step 6a: TH reads AcceptedCommandList attribute from DUT"); + case 9: { + LogStep(9, "Step 5a: TH reads from the DUT the EventList attribute"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 10: { + LogStep(10, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 11: { + LogStep(11, "Step 6a: TH reads AcceptedCommandList attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, + case 12: { + LogStep(12, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -53135,13 +55588,13 @@ class Test_TC_MOD_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 10: { - LogStep(10, "Step 7a: TH reads GeneratedCommandList attribute from DUT"); + case 13: { + LogStep(13, "Step 7a: TH reads GeneratedCommandList attribute from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, + case 14: { + LogStep(14, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -53431,7 +55884,7 @@ class OTA_SuccessfulTransferSuite : public TestCommand class Test_TC_OCC_1_1Suite : public TestCommand { public: - Test_TC_OCC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_1_1", 6, credsIssuerConfig) + Test_TC_OCC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_1_1", 8, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -53497,12 +55950,41 @@ class Test_TC_OCC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -53514,7 +55996,7 @@ class Test_TC_OCC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 5: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -53560,16 +56042,29 @@ class Test_TC_OCC_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 6: Read the global attribute: AcceptedCommandList"); + LogStep(4, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + OccupancySensing::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 7: Read the global attribute: GeneratedCommandList"); + LogStep(5, "Step 5: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::EventList::Id, + true, chip::NullOptional); + } + case 6: { + LogStep(6, "Step 6: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, + OccupancySensing::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "Step 7: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, OccupancySensing::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -53943,7 +56438,7 @@ class Test_TC_OCC_2_3Suite : public TestCommand class Test_TC_OO_1_1Suite : public TestCommand { public: - Test_TC_OO_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OO_1_1", 13, credsIssuerConfig) + Test_TC_OO_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OO_1_1", 15, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -54026,12 +56521,27 @@ class Test_TC_OO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -54043,11 +56553,15 @@ class Test_TC_OO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16387UL)); } break; - case 7: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 8: + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -54058,7 +56572,7 @@ class Test_TC_OO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 9: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -54069,11 +56583,11 @@ class Test_TC_OO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 66UL)); } break; - case 10: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 11: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -54085,7 +56599,7 @@ class Test_TC_OO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 12: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -54136,17 +56650,24 @@ class Test_TC_OO_1_1Suite : public TestCommand } case 5: { LogStep(5, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4b: Read the feature dependent(OO.S.F00) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("OO.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, + LogStep(7, "Step 4b: Read the feature dependent(OO.S.F00) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("OO.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Step 4c: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -54161,19 +56682,35 @@ class Test_TC_OO_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 8: { - LogStep(8, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 9: { + LogStep(9, + "Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Step 6b: Read the feature dependent(OO.S.F00) commands in AcceptedCommandList"); + case 11: { + LogStep(11, "Step 6b: Read the feature dependent(OO.S.F00) commands in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("OO.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, + case 12: { + LogStep(12, "Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -54188,13 +56725,13 @@ class Test_TC_OO_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 11: { - LogStep(11, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 13: { + LogStep(13, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, + case 14: { + LogStep(14, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -55159,7 +57696,7 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand { public: Test_TC_OPSTATE_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_OPSTATE_1_1", 14, credsIssuerConfig) + TestCommand("Test_TC_OPSTATE_1_1", 18, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -55227,6 +57764,7 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -55238,14 +57776,54 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55255,7 +57833,7 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 7: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55264,7 +57842,7 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 8: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55274,7 +57852,7 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 9: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55284,11 +57862,11 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 10: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 11: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55300,7 +57878,7 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 12: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55309,7 +57887,7 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 13: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -55347,17 +57925,24 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, OperationalState::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: TH reads from the DUT the optional attribute(CountdownTime) in the AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("OPSTATE.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, OperationalState::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, + LogStep(5, "Step 4b: TH reads from the DUT the optional attribute(CountdownTime) in the AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("OPSTATE.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, + OperationalState::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "Step 4c: TH reads AttributeList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -55371,32 +57956,60 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 6: { - LogStep(6, "Step 6a: Read the optional command(Start) in AcceptedCommandList"); + case 7: { + LogStep(7, "Step 5a: TH reads from the DUT the EventList attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, OperationalState::Attributes::EventList::Id, + true, chip::NullOptional); + } + case 8: { + LogStep(8, "Step 5b: TH reads from the DUT the optional event(OperationCompletion) in EventList."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && OPSTATE.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, OperationalState::Attributes::EventList::Id, + true, chip::NullOptional); + } + case 9: { + LogStep(9, + "Step 5c: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "Step 6a: Read the optional command(Start) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("OPSTATE.S.C02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, OperationalState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Step 6b: Read the optional command(Stop) in AcceptedCommandList"); + case 11: { + LogStep(11, "Step 6b: Read the optional command(Stop) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("OPSTATE.S.C01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, OperationalState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Step 6c: Read the optional command(Pause) in AcceptedCommandList"); + case 12: { + LogStep(12, "Step 6c: Read the optional command(Pause) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("OPSTATE.S.C00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, OperationalState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Step 6d: Read the optional command(Resume) in AcceptedCommandList"); + case 13: { + LogStep(13, "Step 6d: Read the optional command(Resume) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("OPSTATE.S.C03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, OperationalState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, + case 14: { + LogStep(14, "Step 6e: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -55410,22 +58023,22 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 11: { - LogStep(11, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 15: { + LogStep(15, "Step 7a: Read the global attribute: GeneratedCommandList"); VerifyOrDo(!ShouldSkip("!OPSTATE.S.C00 || !OPSTATE.S.C01 || !OPSTATE.S.C02 || !OPSTATE.S.C03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, OperationalState::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 16: { + LogStep(16, "Step 7a: Read the global attribute: GeneratedCommandList"); VerifyOrDo(!ShouldSkip("(OPSTATE.S.C00 || OPSTATE.S.C01 || OPSTATE.S.C02 || OPSTATE.S.C03)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OperationalState::Id, OperationalState::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, + case 17: { + LogStep(17, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -55447,7 +58060,7 @@ class Test_TC_OPSTATE_1_1Suite : public TestCommand class Test_TC_PS_1_1Suite : public TestCommand { public: - Test_TC_PS_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PS_1_1", 14, credsIssuerConfig) + Test_TC_PS_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PS_1_1", 20, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -55552,6 +58165,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 31UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -55563,10 +58177,27 @@ class Test_TC_PS_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 31UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + } + break; + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55577,7 +58208,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55587,7 +58218,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 28UL)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55597,7 +58228,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 25UL)); } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55609,7 +58240,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -55621,6 +58252,49 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -55681,43 +58355,87 @@ class Test_TC_PS_1_1Suite : public TestCommand } case 7: { LogStep(7, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4a: Read the Feature dependent(PS.S.F00-WIRED) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("PS.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4b: Read the Feature dependent(PS.S.F01-BAT) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("PS.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 4a: Read the Feature dependent(PS.S.F00-WIRED) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("PS.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 4c: Read the Feature dependent(PS.S.F02-RECHG) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("PS.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 4b: Read the Feature dependent(PS.S.F01-BAT) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("PS.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 4d: Read the Feature dependent(PS.S.F03-REPLC) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("PS.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 4c: Read the Feature dependent(PS.S.F02-RECHG) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("PS.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "Step 5: Read the global attribute: AcceptedCommandList"); + LogStep(12, "Step 4d: Read the Feature dependent(PS.S.F03-REPLC) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("PS.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 13: { + LogStep(13, "Step 5: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Step 6: Read the global attribute: GeneratedCommandList"); + case 14: { + LogStep(14, "Step 6: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 15: { + LogStep(15, "Step 7a: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && !PS.S.E00 && !PS.S.E01 && !PS.S.E02 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 16: { + LogStep(16, "Step 7b: Read PS.S.E00(WiredFaultChange) event in EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PS.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 17: { + LogStep(17, "Step 7c: Read PS.S.E01(BatFaultChange) event in EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PS.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 18: { + LogStep(18, "Step 7d: Read PS.S.E02(BatChargeFaultChange) event in EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PS.S.E02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 19: { + LogStep(19, + "Step 7e: Read EventList attribute from the DUT.For this cluster the list is usually empty but it can contain " + "manufacturer specific event IDs."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -56288,7 +59006,7 @@ class Test_TC_PS_2_1Suite : public TestCommand class Test_TC_PRS_1_1Suite : public TestCommand { public: - Test_TC_PRS_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PRS_1_1", 14, credsIssuerConfig) + Test_TC_PRS_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PRS_1_1", 16, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -56363,6 +59081,7 @@ class Test_TC_PRS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -56374,7 +59093,14 @@ class Test_TC_PRS_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: @@ -56383,7 +59109,7 @@ class Test_TC_PRS_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; case 7: @@ -56392,7 +59118,7 @@ class Test_TC_PRS_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); } break; case 8: @@ -56401,7 +59127,7 @@ class Test_TC_PRS_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; case 9: @@ -56410,7 +59136,7 @@ class Test_TC_PRS_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); } break; case 10: @@ -56419,12 +59145,17 @@ class Test_TC_PRS_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); + } break; case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -56434,6 +59165,14 @@ class Test_TC_PRS_1_1Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -56475,47 +59214,54 @@ class Test_TC_PRS_1_1Suite : public TestCommand } case 4: { LogStep(4, "Step 4a: Read the global mandatory attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, PressureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4b: Read the optional attribute(ScaledValue) in AttributeList"); - VerifyOrDo(!ShouldSkip("PRS.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4a: Read the global mandatory attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, PressureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4c: Read the optional attribute(MinScaledValue) in AttributeList"); - VerifyOrDo(!ShouldSkip("PRS.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 4b: Read the optional attribute(ScaledValue) in AttributeList"); + VerifyOrDo(!ShouldSkip("PRS.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, PressureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4d: Read the optional attribute(MaxScaledValue) in AttributeList"); - VerifyOrDo(!ShouldSkip("PRS.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 4c: Read the optional attribute(MinScaledValue) in AttributeList"); + VerifyOrDo(!ShouldSkip("PRS.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, PressureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4e: Read the optional attribute(Scale) in AttributeList"); - VerifyOrDo(!ShouldSkip("PRS.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 4d: Read the optional attribute(MaxScaledValue) in AttributeList"); + VerifyOrDo(!ShouldSkip("PRS.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, PressureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4f: Read the optional attribute(Tolerance) in AttributeList"); - VerifyOrDo(!ShouldSkip("PRS.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 4e: Read the optional attribute(Scale) in AttributeList"); + VerifyOrDo(!ShouldSkip("PRS.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, PressureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 4g: Read the optional attribute(ScaledTolerance) in AttributeList"); - VerifyOrDo(!ShouldSkip("PRS.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 4f: Read the optional attribute(Tolerance) in AttributeList"); + VerifyOrDo(!ShouldSkip("PRS.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, PressureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, + LogStep(11, "Step 4g: Read the optional attribute(ScaledTolerance) in AttributeList"); + VerifyOrDo(!ShouldSkip("PRS.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, + PressureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 12: { + LogStep(12, "Step 4h: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -56530,8 +59276,24 @@ class Test_TC_PRS_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 12: { - LogStep(12, + case 13: { + LogStep(13, + "Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -56545,8 +59307,8 @@ class Test_TC_PRS_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 13: { - LogStep(13, + case 15: { + LogStep(15, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -56910,7 +59672,7 @@ class Test_TC_PRS_2_2Suite : public TestCommand class Test_TC_PCC_1_1Suite : public TestCommand { public: - Test_TC_PCC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PCC_1_1", 30, credsIssuerConfig) + Test_TC_PCC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PCC_1_1", 50, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -57043,6 +59805,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 32UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -57054,7 +59817,18 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 32UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 12: @@ -57063,7 +59837,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 13: @@ -57072,7 +59846,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; case 14: @@ -57081,7 +59855,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; case 15: @@ -57090,7 +59864,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; case 16: @@ -57099,7 +59873,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; case 17: @@ -57108,7 +59882,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; case 18: @@ -57117,7 +59891,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); } break; case 19: @@ -57126,7 +59900,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; case 20: @@ -57135,7 +59909,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); } break; case 21: @@ -57144,7 +59918,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); } break; case 22: @@ -57153,7 +59927,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; case 23: @@ -57162,7 +59936,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); } break; case 24: @@ -57171,7 +59945,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); } break; case 25: @@ -57180,7 +59954,7 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); } break; case 26: @@ -57189,18 +59963,196 @@ class Test_TC_PCC_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 33UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); } break; case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 33UL)); + } break; case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + } + break; + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + } + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + } + break; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + } + break; + case 38: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + } + break; + case 39: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + } + break; + case 40: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + } + break; + case 41: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); + } + break; + case 42: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); + } + break; + case 43: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); + } + break; + case 44: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 14UL)); + } + break; + case 45: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); + } + break; + case 46: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); + } + break; + case 47: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 48: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 49: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -57283,107 +60235,114 @@ class Test_TC_PCC_1_1Suite : public TestCommand } case 10: { LogStep(10, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 4b: TH reads optional attribute(MinConstPressure) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "Step 4c TH reads optional attribute(MaxConstPressure) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(12, "Step 4b: TH reads optional attribute(MinConstPressure) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "Step 4d: TH reads optional attribute(MinCompPressure) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(13, "Step 4c TH reads optional attribute(MaxConstPressure) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "Step 4e: TH reads optional attribute(MaxCompPressure) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(14, "Step 4d: TH reads optional attribute(MinCompPressure) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 15: { - LogStep(15, "Step 4f: TH reads optional attribute(MinConstSpeed) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(15, "Step 4e: TH reads optional attribute(MaxCompPressure) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4g: TH reads optional attribute(MaxConstSpeed) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4f: TH reads optional attribute(MinConstSpeed) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { - LogStep(17, "Step 4h: TH reads optional attribute(MinConstFlow) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(17, "Step 4g: TH reads optional attribute(MaxConstSpeed) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "Step 4i: TH reads optional attribute(MaxConstFlow) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "Step 4h: TH reads optional attribute(MinConstFlow) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 19: { - LogStep(19, "Step 4j: TH reads optional attribute(MinConstTemp) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(19, "Step 4i: TH reads optional attribute(MaxConstFlow) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 20: { - LogStep(20, "Step 4k: TH reads optional attribute(MaxConstTemp) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(20, "Step 4j: TH reads optional attribute(MinConstTemp) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 21: { - LogStep(21, "Step 4l: TH reads optional attribute(PumpStatus) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(21, "Step 4k: TH reads optional attribute(MaxConstTemp) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 22: { - LogStep(22, "Step 4m: TH reads optional attribute(Speed) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(22, "Step 4l: TH reads optional attribute(PumpStatus) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 23: { - LogStep(23, "Step 4n: TH reads optional attribute(LifetimeRunningHours) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(23, "Step 4m: TH reads optional attribute(Speed) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 24: { - LogStep(24, "Step 4o: TH reads optional attribute(Power) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(24, "Step 4n: TH reads optional attribute(LifetimeRunningHours) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 25: { - LogStep(25, "Step 4p: TH reads optional attribute(LifetimeEnergyConsumed) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(25, "Step 4o: TH reads optional attribute(Power) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 26: { - LogStep(26, "Step 4q: TH reads optional attribute(ControlMode) attribute in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("PCC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(26, "Step 4p: TH reads optional attribute(LifetimeEnergyConsumed) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); } case 27: { - LogStep(27, + LogStep(27, "Step 4q: TH reads optional attribute(ControlMode) attribute in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("PCC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 28: { + LogStep(28, "Step 4r: TH reads AttributeList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -57397,8 +60356,135 @@ class Test_TC_PCC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 28: { - LogStep(28, + case 29: { + LogStep(29, "Step 5a: TH reads EventList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && !PCC.S.E00 && !PCC.S.E01 && !PCC.S.E02 && !PCC.S.E03 && !PCC.S.E04 " + "&& !PCC.S.E05 && !PCC.S.E06 && !PCC.S.E07 && !PCC.S.E08 && !PCC.S.E09 && !PCC.S.E0a && " + "!PCC.S.E0b && !PCC.S.E0c && !PCC.S.E0d && !PCC.S.E0e && !PCC.S.E0f && !PCC.S.E10 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 30: { + LogStep(30, "Step 5b: TH reads from the DUT the EventList optional (SupplyVoltageLow)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 31: { + LogStep(31, "Step 5c: TH reads from the DUT the EventList optional (SupplyVoltageHigh)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 32: { + LogStep(32, "Step 5d: TH reads from the DUT the EventList optional (PowerMissingPhase)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 33: { + LogStep(33, "Step 5e: TH reads from the DUT the EventList optional (SystemPressureLow)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 34: { + LogStep(34, "Step 5f: TH reads from the DUT the EventList optional (SystemPressureHigh)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 35: { + LogStep(35, "Step 5g: TH reads from the DUT the EventList optional (DryRunning)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 36: { + LogStep(36, "Step 5h: TH reads from the DUT the EventList optional (MotorTemperatureHigh)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E06"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 37: { + LogStep(37, "Step 5i: TH reads from the DUT the EventList optional (PumpMotorFatalFailure)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E07"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 38: { + LogStep(38, "Step 5j: TH reads from the DUT the EventList optional (ElectronicTemperatureHigh)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 39: { + LogStep(39, "Step 5k: TH reads from the DUT the EventList optional (PumpBlocked)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E09"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 40: { + LogStep(40, "Step 5l: TH reads from the DUT the EventList optional (SensorFailure)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 41: { + LogStep(41, "Step 5m: TH reads from the DUT the EventList optional (ElectronicNonFatalFailure)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 42: { + LogStep(42, "Step 5n: TH reads from the DUT the EventList optional (ElectronicFatalFailure)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 43: { + LogStep(43, "Step 5o: TH reads from the DUT the EventList optional (GeneralFault)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 44: { + LogStep(44, "Step 5p: TH reads from the DUT the EventList optional (Leakage)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 45: { + LogStep(45, "Step 5q: TH reads from the DUT the EventList optional (AirDetection)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 46: { + LogStep(46, "Step 5r: TH reads from the DUT the EventList optional (TurbineOperation)attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E10"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, + PumpConfigurationAndControl::Attributes::EventList::Id, true, chip::NullOptional); + } + case 47: { + LogStep(47, + "Step 5s: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 48: { + LogStep(48, "Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -57412,8 +60498,8 @@ class Test_TC_PCC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 29: { - LogStep(29, + case 49: { + LogStep(49, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -58542,7 +61628,7 @@ class Test_TC_PCC_2_4Suite : public TestCommand class Test_TC_PSCFG_1_1Suite : public TestCommand { public: - Test_TC_PSCFG_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PSCFG_1_1", 6, credsIssuerConfig) + Test_TC_PSCFG_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PSCFG_1_1", 8, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -58606,12 +61692,27 @@ class Test_TC_PSCFG_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -58623,7 +61724,7 @@ class Test_TC_PSCFG_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 5: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -58635,6 +61736,10 @@ class Test_TC_PSCFG_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -58669,19 +61774,38 @@ class Test_TC_PSCFG_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), PowerSourceConfiguration::Id, PowerSourceConfiguration::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 5: TH reads the AcceptedCommandList attribute from the DUT"); + LogStep(4, "Step 4: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), PowerSourceConfiguration::Id, - PowerSourceConfiguration::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + PowerSourceConfiguration::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 6: TH reads the GeneratedCommandList attribute from the DUT"); + LogStep(5, "Step 5: TH reads the AcceptedCommandList attribute from the DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), PowerSourceConfiguration::Id, + PowerSourceConfiguration::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "Step 6: TH reads the GeneratedCommandList attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), PowerSourceConfiguration::Id, PowerSourceConfiguration::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 7: { + LogStep(7, + "Step 7: Read EventList attribute from the DUT.For this cluster the list is usually empty but it can contain " + "manufacturer specific event IDs."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -58771,7 +61895,7 @@ class Test_TC_PSCFG_2_1Suite : public TestCommand class Test_TC_RH_1_1Suite : public TestCommand { public: - Test_TC_RH_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_RH_1_1", 7, credsIssuerConfig) + Test_TC_RH_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_RH_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -58837,6 +61961,7 @@ class Test_TC_RH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -58848,10 +61973,26 @@ class Test_TC_RH_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -58863,7 +62004,7 @@ class Test_TC_RH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 6: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -58875,6 +62016,10 @@ class Test_TC_RH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -58909,25 +62054,44 @@ class Test_TC_RH_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, RelativeHumidityMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: Read the optional attribute(Tolerance) in AttributeList"); - VerifyOrDo(!ShouldSkip("RH.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, RelativeHumidityMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 5: Read the global attribute: AcceptedCommandList"); + LogStep(5, "Step 4b: Read the optional attribute(Tolerance) in AttributeList"); + VerifyOrDo(!ShouldSkip("RH.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, - RelativeHumidityMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + RelativeHumidityMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 6: Read the global attribute: GeneratedCommandList"); + LogStep(6, "Step 5: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, + RelativeHumidityMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "Step 6: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RelativeHumidityMeasurement::Id, RelativeHumidityMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 8: { + LogStep(8, + "Step 7: Read EventList attribute from the DUT.For this cluster the list is usually empty but it can contain " + "manufacturer specific event IDs."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -59073,7 +62237,7 @@ class Test_TC_SMOKECO_1_1Suite : public TestCommand { public: Test_TC_SMOKECO_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_SMOKECO_1_1", 18, credsIssuerConfig) + TestCommand("Test_TC_SMOKECO_1_1", 25, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -59241,6 +62405,73 @@ class Test_TC_SMOKECO_1_1Suite : public TestCommand } break; case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + } + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + } + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + } + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + } + break; + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -59252,7 +62483,7 @@ class Test_TC_SMOKECO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 16: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -59261,7 +62492,7 @@ class Test_TC_SMOKECO_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 17: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -59378,19 +62609,61 @@ class Test_TC_SMOKECO_1_1Suite : public TestCommand true, chip::NullOptional); } case 15: { - LogStep(15, "TH reads from the DUT the AcceptedCommandList attribute"); + LogStep(15, "TH reads from the DUT the EventList attribute"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 16: { + LogStep(16, "TH reads from the DUT the EventList attribute(SmokeAlarm)"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 17: { + LogStep(17, "TH reads from the DUT the EventList attribute(COAlarm)"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 18: { + LogStep(18, "TH reads from the DUT the EventList attribute(AlarmMuted)"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E06"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 19: { + LogStep(19, "TH reads from the DUT the EventList attribute(MuteEnded)"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E07"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 20: { + LogStep(20, "TH reads from the DUT the EventList attribute(InterconnectSmokeAlarm)"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 21: { + LogStep(21, "TH reads from the DUT the EventList attribute(InterconnectCOAlarm)"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E09"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 22: { + LogStep(22, "TH reads from the DUT the AcceptedCommandList attribute"); VerifyOrDo(!ShouldSkip("!SMOKECO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "TH reads from the DUT the AcceptedCommandList attribute"); + case 23: { + LogStep(23, "TH reads from the DUT the AcceptedCommandList attribute"); VerifyOrDo(!ShouldSkip("SMOKECO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "TH reads from the DUT the GeneratedCommandList attribute"); + case 24: { + LogStep(24, "TH reads from the DUT the GeneratedCommandList attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -63604,7 +66877,7 @@ class Test_TC_SMOKECO_2_6Suite : public TestCommand class Test_TC_SWTCH_1_1Suite : public TestCommand { public: - Test_TC_SWTCH_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SWTCH_1_1", 12, credsIssuerConfig) + Test_TC_SWTCH_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SWTCH_1_1", 20, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -63736,12 +67009,106 @@ class Test_TC_SWTCH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + } + break; + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -63753,7 +67120,7 @@ class Test_TC_SWTCH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 11: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -63837,17 +67204,71 @@ class Test_TC_SWTCH_1_1Suite : public TestCommand } case 9: { LogStep(9, "Step 4b: Read the global attribute: AttributeList"); - VerifyOrDo(!ShouldSkip("!SWTCH.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && !SWTCH.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 6: Read the global attribute: AcceptedCommandList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::AcceptedCommandList::Id, true, + LogStep(10, "Step 4b: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED && !SWTCH.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 7: Read the global attribute: GeneratedCommandList"); + LogStep(11, "Step 5a: Read the global attribute: EventList "); + VerifyOrDo(!ShouldSkip("!SWTCH.S.F00 && !SWTCH.S.F01 && !SWTCH.S.F02 && !SWTCH.S.F03 && !SWTCH.S.F04 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 12: { + LogStep(12, "Step 5b: Read EventList if SWTCH.S.F00(LS)"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && SWTCH.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 13: { + LogStep(13, "Step 5c: Read EventList if SWTCH.S.F01(MS) & !SWTCH.S.F02(MSR)"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && !SWTCH.S.F02"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 14: { + LogStep(14, "Step 5d: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & !SWTCH.S.F03(MSL) & !SWTCH.S.F04(MSM)"); + VerifyOrDo(!ShouldSkip(" PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03 && !SWTCH.S.F04 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 15: { + LogStep(15, "Step 5e: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & SWTCH.S.F03(MSL) & !SWTCH.S.F04(MSM)"); + VerifyOrDo(!ShouldSkip(" PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && SWTCH.S.F03 && !SWTCH.S.F04 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 16: { + LogStep(16, "Step 5f: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & !SWTCH.S.F03(MSL) & SWTCH.S.F04(MSM) "); + VerifyOrDo(!ShouldSkip(" PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03 && SWTCH.S.F04 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 17: { + LogStep(17, "Step 5g: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & SWTCH.S.F03(MSL) & SWTCH.S.F04(MSM) "); + VerifyOrDo(!ShouldSkip(" PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && SWTCH.S.F03 && SWTCH.S.F04 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 18: { + LogStep(18, "Step 6: Read the global attribute: AcceptedCommandList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + case 19: { + LogStep(19, "Step 7: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -63976,7 +67397,7 @@ class Test_TC_RVCOPSTATE_1_1Suite : public TestCommand { public: Test_TC_RVCOPSTATE_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_RVCOPSTATE_1_1", 11, credsIssuerConfig) + TestCommand("Test_TC_RVCOPSTATE_1_1", 15, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -64044,6 +67465,7 @@ class Test_TC_RVCOPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -64055,10 +67477,50 @@ class Test_TC_RVCOPSTATE_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64068,7 +67530,7 @@ class Test_TC_RVCOPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 6: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64078,7 +67540,7 @@ class Test_TC_RVCOPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 7: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64087,7 +67549,7 @@ class Test_TC_RVCOPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 8: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64097,7 +67559,7 @@ class Test_TC_RVCOPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 9: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64109,7 +67571,7 @@ class Test_TC_RVCOPSTATE_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 10: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64152,49 +67614,84 @@ class Test_TC_RVCOPSTATE_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcOperationalState::Id, RvcOperationalState::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: TH reads from the DUT the optional attribute(CountdownTime) in the AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("RVCOPSTATE.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcOperationalState::Id, RvcOperationalState::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 6a: Read the optional command(Pause) in AcceptedCommandList"); + LogStep(5, "Step 4b: TH reads from the DUT the optional attribute(CountdownTime) in the AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("RVCOPSTATE.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcOperationalState::Id, + RvcOperationalState::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "Step 5a: TH reads from the DUT the EventList attribute."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcOperationalState::Id, + RvcOperationalState::Attributes::EventList::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "Step 5b: TH reads from the DUT the optional event(OperationCompletion) in EventList."); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && RVCOPSTATE.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcOperationalState::Id, + RvcOperationalState::Attributes::EventList::Id, true, chip::NullOptional); + } + case 8: { + LogStep(8, + "Step 5c: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "Step 6a: Read the optional command(Pause) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("RVCOPSTATE.S.C00.Rsp || RVCOPSTATE.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcOperationalState::Id, RvcOperationalState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Step 6b: Read the optional command(Stop) in AcceptedCommandList"); + case 10: { + LogStep(10, "Step 6b: Read the optional command(Stop) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("RVCOPSTATE.S.C01.Rsp || RVCOPSTATE.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcOperationalState::Id, RvcOperationalState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Step 6c: Read the optional command(Start) in AcceptedCommandList"); + case 11: { + LogStep(11, "Step 6c: Read the optional command(Start) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("RVCOPSTATE.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcOperationalState::Id, RvcOperationalState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Step 6d: Read the optional command(Resume) in AcceptedCommandList"); + case 12: { + LogStep(12, "Step 6d: Read the optional command(Resume) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("RVCOPSTATE.S.C03.Rsp || RVCOPSTATE.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcOperationalState::Id, RvcOperationalState::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Step 7: Read the global attribute: GeneratedCommandList"); + case 13: { + LogStep(13, "Step 7: Read the global attribute: GeneratedCommandList"); VerifyOrDo( !ShouldSkip(" !RVCOPSTATE.S.C00.Rsp && !RVCOPSTATE.S.C01.Rsp && !RVCOPSTATE.S.C02.Rsp && !RVCOPSTATE.S.C03.Rsp "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcOperationalState::Id, RvcOperationalState::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Step 7: Read the global attribute: GeneratedCommandList"); + case 14: { + LogStep(14, "Step 7: Read the global attribute: GeneratedCommandList"); VerifyOrDo( !ShouldSkip(" RVCOPSTATE.S.C00.Rsp || RVCOPSTATE.S.C01.Rsp || RVCOPSTATE.S.C02.Rsp || RVCOPSTATE.S.C03.Rsp "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -64209,7 +67706,7 @@ class Test_TC_RVCOPSTATE_1_1Suite : public TestCommand class Test_TC_TMP_1_1Suite : public TestCommand { public: - Test_TC_TMP_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TMP_1_1", 7, credsIssuerConfig) + Test_TC_TMP_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TMP_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -64275,6 +67772,7 @@ class Test_TC_TMP_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -64286,10 +67784,26 @@ class Test_TC_TMP_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64301,7 +67815,7 @@ class Test_TC_TMP_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 6: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64313,6 +67827,10 @@ class Test_TC_TMP_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -64347,25 +67865,44 @@ class Test_TC_TMP_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Step 4b: Read the optional attribute(Tolerance) in AttributeList"); - VerifyOrDo(!ShouldSkip("TMP.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(4, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 5: Read AcceptedCommandList attribute from the DUT"); + LogStep(5, "Step 4b: Read the optional attribute(Tolerance) in AttributeList"); + VerifyOrDo(!ShouldSkip("TMP.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + TemperatureMeasurement::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 6: Read GeneratedCommandList attribute from the DUT"); + LogStep(6, "Step 5: Read AcceptedCommandList attribute from the DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "Step 6: Read GeneratedCommandList attribute from the DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 8: { + LogStep(8, + "Step 7: Read EventList attribute from the DUT.For this cluster the list is usually empty but it can contain " + "manufacturer specific event IDs."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -64510,7 +68047,7 @@ class Test_TC_TMP_2_1Suite : public TestCommand class Test_TC_TSTAT_1_1Suite : public TestCommand { public: - Test_TC_TSTAT_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_1_1", 57, credsIssuerConfig) + Test_TC_TSTAT_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_1_1", 59, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -64634,6 +68171,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 28UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -64645,7 +68183,14 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 27UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 28UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 12: @@ -64654,7 +68199,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; case 13: @@ -64663,7 +68208,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); } break; case 14: @@ -64672,7 +68217,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 15: @@ -64681,10 +68226,19 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); } break; case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); + } + break; + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64695,7 +68249,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 25UL)); } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64706,7 +68260,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 34UL)); } break; - case 18: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64717,7 +68271,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 54UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64728,7 +68282,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 57UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64737,7 +68291,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64746,7 +68300,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64755,7 +68309,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64764,7 +68318,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64773,7 +68327,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 29UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64782,7 +68336,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 35UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64791,7 +68345,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 36UL)); } break; - case 27: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64800,7 +68354,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 37UL)); } break; - case 28: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64809,7 +68363,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); } break; - case 29: + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64818,7 +68372,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 48UL)); } break; - case 30: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64827,7 +68381,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 49UL)); } break; - case 31: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64836,7 +68390,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 50UL)); } break; - case 32: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64845,7 +68399,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 58UL)); } break; - case 33: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64854,7 +68408,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 64UL)); } break; - case 34: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64863,7 +68417,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65UL)); } break; - case 35: + case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64872,7 +68426,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 66UL)); } break; - case 36: + case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64881,7 +68435,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 67UL)); } break; - case 37: + case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64890,7 +68444,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 68UL)); } break; - case 38: + case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64899,7 +68453,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 69UL)); } break; - case 39: + case 40: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64908,7 +68462,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 70UL)); } break; - case 40: + case 41: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64917,7 +68471,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 71UL)); } break; - case 41: + case 42: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64926,7 +68480,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 42: + case 43: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64935,7 +68489,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 43: + case 44: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64944,7 +68498,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 44: + case 45: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64953,7 +68507,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); } break; - case 45: + case 46: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64962,7 +68516,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); } break; - case 46: + case 47: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64971,7 +68525,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 47: + case 48: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64980,7 +68534,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 48: + case 49: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64989,7 +68543,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 49: + case 50: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -64998,7 +68552,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); } break; - case 50: + case 51: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -65007,7 +68561,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 24UL)); } break; - case 51: + case 52: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -65016,7 +68570,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 30UL)); } break; - case 52: + case 53: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -65028,7 +68582,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 53: + case 54: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -65037,7 +68591,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 54: + case 55: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -65049,7 +68603,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 55: + case 56: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -65058,7 +68612,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 56: + case 57: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -65067,6 +68621,10 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; + case 58: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -65150,285 +68708,304 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand } case 10: { LogStep(10, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 4b: Read the Feature dependent(TSTAT.S.F00(HEAT)) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "Step 4c: Read the Feature dependent(TSTAT.S.F01(COOL)) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(12, "Step 4b: Read the Feature dependent(TSTAT.S.F00(HEAT)) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "Step 4d: Read the Feature dependent(TSTAT.S.F02(OCC)) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(13, "Step 4c: Read the Feature dependent(TSTAT.S.F01(COOL)) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "Step 4e: Read the Feature dependent(TSTAT.S.F00(HEAT) & TSTAT.S.F02(OCC)) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(14, "Step 4d: Read the Feature dependent(TSTAT.S.F02(OCC)) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 15: { - LogStep(15, "Step 4f: Read the Feature dependent(TSTAT.S.F01(COOL) & TSTAT.S.F02(OCC)) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(15, "Step 4e: Read the Feature dependent(TSTAT.S.F00(HEAT) & TSTAT.S.F02(OCC)) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4g: Read the Feature dependent(TSTAT.S.F05(AUTO)) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4f: Read the Feature dependent(TSTAT.S.F01(COOL) & TSTAT.S.F02(OCC)) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { - LogStep(17, "Step 4h: Read the Feature dependent(TSTAT.S.F03(SCH)) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(17, "Step 4g: Read the Feature dependent(TSTAT.S.F05(AUTO)) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "Step 4i: Read the Feature dependent(TSTAT.S.F04(SB)) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "Step 4h: Read the Feature dependent(TSTAT.S.F03(SCH)) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 19: { - LogStep(19, "Step 4j: Read the Feature dependent(TSTAT.S.F04(SB) & TSTAT.S.F02(OCC)) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F04 && TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(19, "Step 4i: Read the Feature dependent(TSTAT.S.F04(SB)) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 20: { - LogStep(20, "Step 4k: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(20, "Step 4j: Read the Feature dependent(TSTAT.S.F04(SB) & TSTAT.S.F02(OCC)) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F04 && TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 21: { - LogStep(21, "Step 4l: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(21, "Step 4k: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 22: { - LogStep(22, "Step 4m: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(22, "Step 4l: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 23: { - LogStep(23, "Step 4n: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(23, "Step 4m: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 24: { - LogStep(24, "Step 4o: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A001d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(24, "Step 4n: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 25: { - LogStep(25, "Step 4p: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(25, "Step 4o: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A001d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 26: { - LogStep(26, "Step 4q: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(26, "Step 4p: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 27: { - LogStep(27, "Step 4r: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(27, "Step 4q: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 28: { - LogStep(28, "Step 4s: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(28, "Step 4r: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 29: { - LogStep(29, "Step 4t: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(29, "Step 4s: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 30: { - LogStep(30, "Step 4u: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(30, "Step 4t: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 31: { - LogStep(31, "Step 4x: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(31, "Step 4u: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 32: { - LogStep(32, "Step 5y: Read the optional attribute: AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A003a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(32, "Step 4x: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 33: { - LogStep(33, "Step 4z: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0040"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(33, "Step 5y: Read the optional attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A003a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 34: { - LogStep(34, "Step 4A: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0041"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(34, "Step 4z: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0040"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 35: { - LogStep(35, "Step 4B: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0042"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(35, "Step 4A: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0041"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 36: { - LogStep(36, "Step 4C: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0043"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(36, "Step 4B: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0042"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 37: { - LogStep(37, "Step 5D: Read the optional attribute: AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0044"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(37, "Step 4C: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0043"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 38: { - LogStep(38, "Step 4E: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0045"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(38, "Step 5D: Read the optional attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0044"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 39: { - LogStep(39, "Step 4F: Read the optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0046"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(39, "Step 4E: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0045"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 40: { - LogStep(40, "Step 5G: Read the optional attribute: AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.A0047"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(40, "Step 4F: Read the optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0046"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 41: { - LogStep(41, "Step 4H: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(41, "Step 5G: Read the optional attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.A0047"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 42: { - LogStep(42, "Step 4I: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(42, "Step 4H: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 43: { - LogStep(43, "Step 4J: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(43, "Step 4I: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 44: { - LogStep(44, "Step 4K: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(44, "Step 4J: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 45: { - LogStep(45, "Step 4L: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(45, "Step 4K: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 46: { - LogStep(46, "Step 4M: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(46, "Step 4L: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 47: { - LogStep(47, "Step 4N: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(47, "Step 4M: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 48: { - LogStep(48, "Step 4O: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in AttributeList"); + LogStep(48, "Step 4N: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in AttributeList"); VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 49: { - LogStep(49, "Step 4P: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(49, "Step 4O: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 50: { - LogStep(50, "Step 4Q: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(50, "Step 4P: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 51: { - LogStep(51, "Step 4R: Read the Feature dependent(TSTAT.S.F05(AUTO)) optional attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F05 && TSTAT.S.A001e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(51, "Step 4Q: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, chip::NullOptional); } case 52: { - LogStep(52, "Step 5a: Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList"); + LogStep(52, "Step 4R: Read the Feature dependent(TSTAT.S.F05(AUTO)) optional attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F05 && TSTAT.S.A001e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 53: { + LogStep(53, "Step 5a: Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 53: { - LogStep(53, "Step 5b: Read the optional attribute: AcceptedCommandList"); + case 54: { + LogStep(54, "Step 5b: Read the optional attribute: AcceptedCommandList"); VerifyOrDo(!ShouldSkip("TSTAT.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 54: { - LogStep(54, "Step 6a: Read the global attribute: GeneratedCommandList"); + case 55: { + LogStep(55, "Step 6a: Read the global attribute: GeneratedCommandList"); VerifyOrDo(!ShouldSkip(" !TSTAT.S.C04.Rsp && !TSTAT.S.C02.Rsp "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 55: { - LogStep(55, "Step 6b: Read Feature dependent(TSTAT.S.F03(SCH)) commands in GeneratedCommandList"); + case 56: { + LogStep(56, "Step 6b: Read Feature dependent(TSTAT.S.F03(SCH)) commands in GeneratedCommandList"); VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 56: { - LogStep(56, "Step 6c: Read optional command (GetRelayStatusLogResponse) in GeneratedCommandList"); + case 57: { + LogStep(57, "Step 6c: Read optional command (GetRelayStatusLogResponse) in GeneratedCommandList"); VerifyOrDo(!ShouldSkip("TSTAT.S.C04.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 58: { + LogStep(58, + "Step 7: Read EventList attribute from the DUT.For this cluster the list is usually empty but it can contain " + "manufacturer specific event IDs."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -66605,7 +70182,7 @@ class Test_TC_TSTAT_2_1Suite : public TestCommand class Test_TC_TSUIC_1_1Suite : public TestCommand { public: - Test_TC_TSUIC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSUIC_1_1", 9, credsIssuerConfig) + Test_TC_TSUIC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSUIC_1_1", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -66671,6 +70248,7 @@ class Test_TC_TSUIC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -66678,9 +70256,25 @@ class Test_TC_TSUIC_1_1Suite : public TestCommand break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -66692,11 +70286,11 @@ class Test_TC_TSUIC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 6: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 7: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -66708,7 +70302,11 @@ class Test_TC_TSUIC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 8: + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -66745,12 +70343,19 @@ class Test_TC_TSUIC_1_1Suite : public TestCommand ThermostatUserInterfaceConfiguration::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Step 4a: Read the global attribute: AttributeList"); + LogStep(3, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, ThermostatUserInterfaceConfiguration::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, + LogStep(4, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, + ThermostatUserInterfaceConfiguration::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 5: { + LogStep(5, "Step 4b: Read the global attribute: AttributeList. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -66765,14 +70370,14 @@ class Test_TC_TSUIC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 5: { - LogStep(5, "Step 5a: Read the global attribute: AcceptedCommandList"); + case 6: { + LogStep(6, "Step 5a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, ThermostatUserInterfaceConfiguration::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, + case 7: { + LogStep(7, "Step 5b: Read the global attribute: AcceptedCommandList. 1. The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) 2. The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -66787,14 +70392,14 @@ class Test_TC_TSUIC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 7: { - LogStep(7, "Step 6a: Read the global attribute: GeneratedCommandList"); + case 8: { + LogStep(8, "Step 6a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ThermostatUserInterfaceConfiguration::Id, ThermostatUserInterfaceConfiguration::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, + case 9: { + LogStep(9, "Step 6b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -66809,6 +70414,18 @@ class Test_TC_TSUIC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } + case 10: { + LogStep(10, + "Step 7: Read EventList attribute from the DUT.For this cluster the list is usually empty but it can contain " + "manufacturer specific event IDs."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -67499,7 +71116,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand { public: Test_TC_DGTHREAD_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_1_1", 19, credsIssuerConfig) + TestCommand("Test_TC_DGTHREAD_1_1", 24, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -67615,6 +71232,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 62UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -67626,10 +71244,40 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 59UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 60UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 61UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 62UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + } + break; + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -67645,7 +71293,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -67687,7 +71335,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 55UL)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -67696,7 +71344,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 56UL)); } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -67705,7 +71353,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 57UL)); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -67714,7 +71362,41 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 58UL)); } break; - case 14: + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -67726,7 +71408,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 15: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -67735,11 +71417,11 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 16: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 17: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -67751,7 +71433,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 18: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -67815,59 +71497,101 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand } case 7: { LogStep(7, "Step 4a: TH reads mandatory attributes in AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4b: TH reads Feature dependent attribute(DGTHREAD.S.F01(ERRCNT)) in attributeList"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0006 && DGTHREAD.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 4a: TH reads mandatory attributes in AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4c: TH reads Feature dependent attribute (DGTHREAD.S.F02(MLECNT)) in attributeList"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 4b: TH reads Feature dependent attribute(DGTHREAD.S.F01(ERRCNT)) in attributeList"); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0006 && DGTHREAD.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 4d: TH reads Feature dependent attribute (DGTHREAD.S.F03(MACCNT)) in attributeList"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 4c: TH reads Feature dependent attribute (DGTHREAD.S.F02(MLECNT)) in attributeList"); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 4e: Read the optional attribute (ActiveTimestamp) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0038"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 4d: TH reads Feature dependent attribute (DGTHREAD.S.F03(MACCNT)) in attributeList"); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "Step 4f: Read the optional attribute (PendingTimestamp) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0039"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(12, "Step 4e: Read the optional attribute (ActiveTimestamp) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0038"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "Step 4g: Read the optional attribute (Delay) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A003a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(13, "Step 4f: Read the optional attribute (PendingTimestamp) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0039"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "Step 6a: TH reads AcceptedCommandList from DUT"); + LogStep(14, "Step 4g: Read the optional attribute (Delay) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A003a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 15: { + LogStep(15, "Step 5a: TH reads EventList from DUT"); + VerifyOrDo(!ShouldSkip(" !DGTHREAD.S.E00 && !DGTHREAD.S.E01 && PICS_EVENT_LIST_ENABLED"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 16: { + LogStep(16, "Step 5b: TH reads DGTHREAD.S.E00(ConnectionStatus) event in EventList"); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.E00 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 17: { + LogStep(17, "Step 5c: TH reads DGTHREAD.S.E01(NetworkFaultChange) event in EventList"); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.E01 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 18: { + LogStep(18, + "Step 5d: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 19: { + LogStep(19, "Step 6a: TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip(" !DGTHREAD.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "Step 6b: TH reads AcceptedCommandList from DUT"); + case 20: { + LogStep(20, "Step 6b: TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip("DGTHREAD.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, + case 21: { + LogStep(21, "Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -67881,13 +71605,13 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 17: { - LogStep(17, "Step 7a: TH reads GeneratedCommandList from DUT"); + case 22: { + LogStep(22, "Step 7a: TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, + case 23: { + LogStep(23, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -69264,7 +72988,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand { public: Test_TC_TIMESYNC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_TIMESYNC_1_1", 33, credsIssuerConfig) + TestCommand("Test_TC_TIMESYNC_1_1", 40, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -69390,6 +73114,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -69400,7 +73125,13 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand { chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 12: @@ -69408,10 +73139,18 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand { chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintExcludes("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintExcludes("value", value, 2UL)); + } + break; + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69424,7 +73163,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); } break; - case 14: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69437,7 +73176,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 11UL)); } break; - case 15: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69446,7 +73185,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); } break; - case 16: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69455,7 +73194,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 12UL)); } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69463,7 +73202,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); } break; - case 18: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69471,7 +73210,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 9UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69479,7 +73218,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69487,11 +73226,59 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 3UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 22: + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintExcludes("value", value, 0UL)); + VerifyOrReturn(CheckConstraintExcludes("value", value, 1UL)); + VerifyOrReturn(CheckConstraintExcludes("value", value, 2UL)); + } + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + } + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); + } + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69499,7 +73286,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 23: + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69508,7 +73295,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 24: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69517,7 +73304,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 4UL)); } break; - case 25: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69525,7 +73312,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 26: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69533,7 +73320,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 5UL)); } break; - case 27: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69541,7 +73328,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 28: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69549,11 +73336,11 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 1UL)); } break; - case 29: + case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 30: + case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69561,7 +73348,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 31: + case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -69569,7 +73356,7 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintExcludes("value", value, 3UL)); } break; - case 32: + case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -69650,71 +73437,78 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand } case 10: { LogStep(10, "TS4: Check for mandatory attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "TS4: Check for optional attribute TimeSource in AttributeList"); - VerifyOrDo(!ShouldSkip("TIMESYNC.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "TS4: Check for mandatory attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "TS4: Check for optional attribute TimeSource not in AttributeList"); - VerifyOrDo(!ShouldSkip("!TIMESYNC.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(12, "TS4: Check for optional attribute TimeSource in AttributeList"); + VerifyOrDo(!ShouldSkip("TIMESYNC.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "TS4: Check for TZ feature-based attributes in AttributeList"); - VerifyOrDo(!ShouldSkip("TIMESYNC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(13, "TS4: Check for optional attribute TimeSource not in AttributeList"); + VerifyOrDo(!ShouldSkip("!TIMESYNC.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "TS4: Check for TZ feature-based attributes not in AttributeList"); - VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(14, "TS4: Check for TZ feature-based attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("TIMESYNC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 15: { - LogStep(15, "TS4: Check for NTPC feature-based attributes in AttributeList"); - VerifyOrDo(!ShouldSkip("TIMESYNC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(15, "TS4: Check for TZ feature-based attributes not in AttributeList"); + VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "TS4: Check for NTPC feature-based attributes not in AttributeList"); - VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "TS4: Check for NTPC feature-based attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("TIMESYNC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { - LogStep(17, "TS4: Check for NTPS feature-based attributes in AttributeList"); - VerifyOrDo(!ShouldSkip("TIMESYNC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(17, "TS4: Check for NTPC feature-based attributes not in AttributeList"); + VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "TS4: Check for NTPS feature-based attributes not in AttributeList"); - VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "TS4: Check for NTPS feature-based attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("TIMESYNC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 19: { - LogStep(19, "TS4: Check for TSC feature-based attributes in AttributeList"); - VerifyOrDo(!ShouldSkip("TIMESYNC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(19, "TS4: Check for NTPS feature-based attributes not in AttributeList"); + VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 20: { - LogStep(20, "TS4: Check for TSC feature-based attributes not in AttributeList"); - VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(20, "TS4: Check for TSC feature-based attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("TIMESYNC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); } case 21: { - LogStep(21, + LogStep(21, "TS4: Check for TSC feature-based attributes not in AttributeList"); + VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, + TimeSynchronization::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 22: { + LogStep(22, "TS4: Check for mandatory attributes in AttributeList. 1.The list SHALL NOT contain any additional values in " "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY " "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " @@ -69729,49 +73523,95 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 22: { - LogStep(22, "TS6: Check for mandatory commands in AcceptedCommandList"); + case 23: { + LogStep(23, "TS5: Check for mandatory events in EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, + TimeSynchronization::Attributes::EventList::Id, true, chip::NullOptional); + } + case 24: { + LogStep(24, "TS5: Check for TZ feature-based events in EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && TIMESYNC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, + TimeSynchronization::Attributes::EventList::Id, true, chip::NullOptional); + } + case 25: { + LogStep(25, "TS5: Check for TZ feature-based events not in EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && !TIMESYNC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, + TimeSynchronization::Attributes::EventList::Id, true, chip::NullOptional); + } + case 26: { + LogStep(26, "TS5: Check for TSC feature-based events in EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && TIMESYNC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, + TimeSynchronization::Attributes::EventList::Id, true, chip::NullOptional); + } + case 27: { + LogStep(27, "TS5: Check for TSC feature-based events not in EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED && !TIMESYNC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, + TimeSynchronization::Attributes::EventList::Id, true, chip::NullOptional); + } + case 28: { + LogStep(28, + "TS5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in the " + "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY contain " + "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " + "allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any values " + "in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - 0xXXXX_FFFF) " + "and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 29: { + LogStep(29, "TS6: Check for mandatory commands in AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 23: { - LogStep(23, "TS6: Check for TZ feature-based commands in AcceptedCommandList"); + case 30: { + LogStep(30, "TS6: Check for TZ feature-based commands in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("TIMESYNC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "TS6: Check for TZ feature-based commands in not AcceptedCommandList"); + case 31: { + LogStep(31, "TS6: Check for TZ feature-based commands in not AcceptedCommandList"); VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 25: { - LogStep(25, "TS6: Check for NTPC feature-based commands in AcceptedCommandList"); + case 32: { + LogStep(32, "TS6: Check for NTPC feature-based commands in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("TIMESYNC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, "TS6: Check for NTPC feature-based commands in not AcceptedCommandList"); + case 33: { + LogStep(33, "TS6: Check for NTPC feature-based commands in not AcceptedCommandList"); VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 27: { - LogStep(27, "TS6: Check for TSC feature-based commands in AcceptedCommandList"); + case 34: { + LogStep(34, "TS6: Check for TSC feature-based commands in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("TIMESYNC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 28: { - LogStep(28, "TS6: Check for TSC feature-based commands in not AcceptedCommandList"); + case 35: { + LogStep(35, "TS6: Check for TSC feature-based commands in not AcceptedCommandList"); VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 29: { - LogStep(29, + case 36: { + LogStep(36, "TS6: Check for mandatory commands in AcceptedCommandList. 1. The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) 2. The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -69786,20 +73626,20 @@ class Test_TC_TIMESYNC_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 30: { - LogStep(30, "TS7: Check for TZ feature-based commands in GeneratedCommandList"); + case 37: { + LogStep(37, "TS7: Check for TZ feature-based commands in GeneratedCommandList"); VerifyOrDo(!ShouldSkip("TIMESYNC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 31: { - LogStep(31, "TS7: Check for TZ feature-based commands in not GeneratedCommandList"); + case 38: { + LogStep(38, "TS7: Check for TZ feature-based commands in not GeneratedCommandList"); VerifyOrDo(!ShouldSkip("!TIMESYNC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), TimeSynchronization::Id, TimeSynchronization::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 32: { - LogStep(32, + case 39: { + LogStep(39, "TS7: Check for mandatory commands in GeneratedCommandList. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -69988,7 +73828,7 @@ class Test_TC_TIMESYNC_2_3Suite : public TestCommand class Test_TC_ULABEL_1_1Suite : public TestCommand { public: - Test_TC_ULABEL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ULABEL_1_1", 7, credsIssuerConfig) + Test_TC_ULABEL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ULABEL_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -70052,6 +73892,7 @@ class Test_TC_ULABEL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -70059,7 +73900,17 @@ class Test_TC_ULABEL_1_1Suite : public TestCommand break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -70069,6 +73920,14 @@ class Test_TC_ULABEL_1_1Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -70103,11 +73962,18 @@ class Test_TC_ULABEL_1_1Suite : public TestCommand } case 3: { LogStep(3, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), UserLabel::Id, UserLabel::Attributes::AttributeList::Id, true, chip::NullOptional); } case 4: { - LogStep(4, + LogStep(4, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), UserLabel::Id, UserLabel::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Step 4b: Read the global attribute: AttributeList. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -70122,8 +73988,23 @@ class Test_TC_ULABEL_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 5: { - LogStep(5, + case 6: { + LogStep(6, + "Step 5: Read the global attribute: EventList. 1.The list MAY contain values in the Manufacturer Extensible " + "Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), " + "these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid range: " + "(0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the " + "allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "Step 6: Read the global attribute: AcceptedCommandList. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -70137,8 +74018,8 @@ class Test_TC_ULABEL_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 6: { - LogStep(6, + case 8: { + LogStep(8, "Step 7: Read the global attribute: GeneratedCommandList. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -70646,7 +74527,7 @@ class Test_TC_ULABEL_2_4Suite : public TestCommand class Test_TC_DGWIFI_1_1Suite : public TestCommand { public: - Test_TC_DGWIFI_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_1_1", 12, credsIssuerConfig) + Test_TC_DGWIFI_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_1_1", 17, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -70732,12 +74613,31 @@ class Test_TC_DGWIFI_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -70750,7 +74650,7 @@ class Test_TC_DGWIFI_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 7: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -70760,7 +74660,7 @@ class Test_TC_DGWIFI_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -70769,7 +74669,7 @@ class Test_TC_DGWIFI_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -70781,7 +74681,7 @@ class Test_TC_DGWIFI_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -70790,7 +74690,7 @@ class Test_TC_DGWIFI_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -70802,6 +74702,45 @@ class Test_TC_DGWIFI_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -70849,44 +74788,76 @@ class Test_TC_DGWIFI_1_1Suite : public TestCommand } case 5: { LogStep(5, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4b: TH reads Feature dependent(DGWIFI.S.F00) attributes in attributeList from DUT"); - VerifyOrDo(!ShouldSkip("DGWIFI.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4c: TH reads Feature dependent(DGWIFI.S.F01) attributes in attributeList from DUT"); - VerifyOrDo(!ShouldSkip("DGWIFI.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 4b: TH reads Feature dependent(DGWIFI.S.F00) attributes in attributeList from DUT"); + VerifyOrDo(!ShouldSkip("DGWIFI.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4d: TH reads optional attribute (CurrentMaxRate) in AttributeList from DUT"); - VerifyOrDo(!ShouldSkip("DGWIFI.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 4c: TH reads Feature dependent(DGWIFI.S.F01) attributes in attributeList from DUT"); + VerifyOrDo(!ShouldSkip("DGWIFI.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 5a: TH reads AcceptedCommandList from DUT"); + LogStep(9, "Step 4d: TH reads optional attribute (CurrentMaxRate) in AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("DGWIFI.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 10: { + LogStep(10, "Step 5a: TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip(" !DGWIFI.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Step 5b: TH reads Feature dependent(DGWIFI.S.F01) command in AcceptedCommandList from DUT"); + case 11: { + LogStep(11, "Step 5b: TH reads Feature dependent(DGWIFI.S.F01) command in AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip("DGWIFI.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "Step 6: TH reads GeneratedCommandList from DUT"); + case 12: { + LogStep(12, "Step 6: TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } + case 13: { + LogStep(13, "Step 7a: TH reads EventList from DUT"); + VerifyOrDo(!ShouldSkip(" !DGWIFI.S.E00 && !DGWIFI.S.E01 && !DGWIFI.S.E02 && PICS_EVENT_LIST_ENABLED"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 14: { + LogStep(14, "Step 7b: TH reads optional attribute (Disconnection) in EventList from DUT"); + VerifyOrDo(!ShouldSkip("DGWIFI.S.E00 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 15: { + LogStep(15, "Step 7c: TH reads optional attribute (AssociationFailure) in EventList from DUT"); + VerifyOrDo(!ShouldSkip("DGWIFI.S.E01 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 16: { + LogStep(16, "Step 7d: TH reads optional attribute (ConnectionStatus) in EventList from DUT"); + VerifyOrDo(!ShouldSkip("DGWIFI.S.E02 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -71344,7 +75315,7 @@ class Test_TC_DGWIFI_2_3Suite : public TestCommand class Test_TC_WNCV_1_1Suite : public TestCommand { public: - Test_TC_WNCV_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_1_1", 19, credsIssuerConfig) + Test_TC_WNCV_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_1_1", 21, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -71459,6 +75430,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -71470,10 +75442,28 @@ class Test_TC_WNCV_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 23UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); + } + break; + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -71483,7 +75473,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -71493,7 +75483,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 14UL)); } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -71503,7 +75493,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -71513,7 +75503,19 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); } break; - case 14: + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -71524,7 +75526,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 15: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -71533,7 +75535,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 16: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -71542,7 +75544,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 17: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -71551,7 +75553,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 18: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -71629,64 +75631,77 @@ class Test_TC_WNCV_1_1Suite : public TestCommand } case 8: { LogStep(8, "Step 4a: TH reads from the DUT the (0xFFFB) AttributeList attribute"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4b: TH reads optional attribute(SafetyStatus) in AttributeList"); - VerifyOrDo(!ShouldSkip("WNCV.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 4a: TH reads from the DUT the (0xFFFB) AttributeList attribute"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 4c: Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 & WNCV.S.F03) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 4b: TH reads optional attribute(SafetyStatus) in AttributeList"); + VerifyOrDo(!ShouldSkip("WNCV.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 4d: Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 ) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(11, "Step 4c: Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 & WNCV.S.F03) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } case 12: { - LogStep(12, "Step 4e: Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 & WNCV.S.F03) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(12, "Step 4d: Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 ) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "Step 4f: Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 ) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(13, "Step 4e: Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 & WNCV.S.F03) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "Step 6a: TH reads from the DUT the (0xFFF9) AcceptedCommandList attribute"); + LogStep(14, "Step 4f: Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 ) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 15: { + LogStep(15, "Step 5: Read the global attribute: EventList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::EventList::Id, + true, chip::NullOptional); + } + case 16: { + LogStep(16, "Step 6a: TH reads from the DUT the (0xFFF9) AcceptedCommandList attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "Step 6b: TH reads Feature dependent(WNCV.S.F00 & WNCV.S.F02) command in AcceptedCommandList"); + case 17: { + LogStep(17, "Step 6b: TH reads Feature dependent(WNCV.S.F00 & WNCV.S.F02) command in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "Step 6c: TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F03) command in AcceptedCommandList"); + case 18: { + LogStep(18, "Step 6c: TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F03) command in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "Step 6d: TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F04) command in AcceptedCommandList"); + case 19: { + LogStep(19, "Step 6d: TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F04) command in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, "Step 7: TH reads from the DUT the (0xFFF8) GeneratedCommandList attribute"); + case 20: { + LogStep(20, "Step 7: TH reads from the DUT the (0xFFF8) GeneratedCommandList attribute"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -97751,7 +101766,7 @@ class TestMultiAdminSuite : public TestCommand class Test_TC_DGSW_1_1Suite : public TestCommand { public: - Test_TC_DGSW_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_1_1", 14, credsIssuerConfig) + Test_TC_DGSW_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_1_1", 18, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -97823,6 +101838,7 @@ class Test_TC_DGSW_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -97834,7 +101850,11 @@ class Test_TC_DGSW_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: @@ -97843,7 +101863,7 @@ class Test_TC_DGSW_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; case 7: @@ -97852,7 +101872,7 @@ class Test_TC_DGSW_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; case 8: @@ -97861,14 +101881,48 @@ class Test_TC_DGSW_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } break; case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -97877,7 +101931,7 @@ class Test_TC_DGSW_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 11: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -97889,11 +101943,11 @@ class Test_TC_DGSW_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 12: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 13: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -97938,35 +101992,42 @@ class Test_TC_DGSW_1_1Suite : public TestCommand } case 4: { LogStep(4, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4b: TH reads optional attribute(ThreadMetrics) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGSW.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4c: TH reads optional attribute(CurrentHeapFree) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGSW.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "Step 4b: TH reads optional attribute(ThreadMetrics) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGSW.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4d: TH reads optional attribute(CurrentHeapUsed) in AttributeList"); - VerifyOrDo(!ShouldSkip("DGSW.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 4c: TH reads optional attribute(CurrentHeapFree) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGSW.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4e: TH reads Feature dependent attribute(CurrentHeapHighWatermark) in AttributeList"); - VerifyOrDo(!ShouldSkip("( DGSW.S.F00 || DGSW.S.A0003 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 4d: TH reads optional attribute(CurrentHeapUsed) in AttributeList"); + VerifyOrDo(!ShouldSkip("DGSW.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, + LogStep(9, "Step 4e: TH reads Feature dependent attribute(CurrentHeapHighWatermark) in AttributeList"); + VerifyOrDo(!ShouldSkip("( DGSW.S.F00 || DGSW.S.A0003 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, + SoftwareDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 10: { + LogStep(10, "Step 4f: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -97981,20 +102042,48 @@ class Test_TC_DGSW_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 10: { - LogStep(10, "Step 6a: TH reads AcceptedCommandList from DUT"); + case 11: { + LogStep(11, "Step 5a: TH reads EventList from DUT"); + VerifyOrDo(!ShouldSkip("DGSW.S.E00 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, + SoftwareDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 12: { + LogStep(12, "Step 5b: TH reads EventList from DUT"); + VerifyOrDo(!ShouldSkip(" !DGSW.S.E00 && PICS_EVENT_LIST_ENABLED "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, + SoftwareDiagnostics::Attributes::EventList::Id, true, chip::NullOptional); + } + case 13: { + LogStep(13, + "Step 5c: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "Step 6a: TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip("DGSW.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "Step 6b: TH reads AcceptedCommandList from DUT"); + case 15: { + LogStep(15, "Step 6b: TH reads AcceptedCommandList from DUT"); VerifyOrDo(!ShouldSkip(" !DGSW.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, + case 16: { + LogStep(16, "Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -98009,8 +102098,8 @@ class Test_TC_DGSW_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 13: { - LogStep(13, + case 17: { + LogStep(17, "Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -105580,7 +109669,7 @@ class DL_SchedulesSuite : public TestCommand class Test_TC_DRLK_1_1Suite : public TestCommand { public: - Test_TC_DRLK_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_1_1", 45, credsIssuerConfig) + Test_TC_DRLK_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_1_1", 49, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -105747,6 +109836,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 38UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -105758,10 +109848,28 @@ class Test_TC_DRLK_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 37UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 38UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105772,7 +109880,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 28UL)); } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105783,7 +109891,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 24UL)); } break; - case 18: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105794,7 +109902,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105803,7 +109911,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105812,7 +109920,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 21UL)); } break; - case 21: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105821,7 +109929,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 22UL)); } break; - case 22: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105831,7 +109939,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 49UL)); } break; - case 23: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105840,7 +109948,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 51UL)); } break; - case 24: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105849,7 +109957,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 33UL)); } break; - case 25: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105858,7 +109966,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 34UL)); } break; - case 26: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105867,7 +109975,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 35UL)); } break; - case 27: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105876,7 +109984,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 36UL)); } break; - case 28: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105885,7 +109993,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 39UL)); } break; - case 29: + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105894,7 +110002,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); } break; - case 30: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105903,7 +110011,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); } break; - case 31: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105912,7 +110020,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); } break; - case 32: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105921,7 +110029,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 43UL)); } break; - case 33: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105930,7 +110038,36 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 44UL)); } break; - case 34: + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + } + break; + case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105940,7 +110077,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 35: + case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105951,7 +110088,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); } break; - case 36: + case 40: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105962,7 +110099,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; - case 37: + case 41: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105973,7 +110110,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); } break; - case 38: + case 42: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105982,7 +110119,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 39UL)); } break; - case 39: + case 43: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -105996,7 +110133,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 38UL)); } break; - case 40: + case 44: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -106005,7 +110142,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 41: + case 45: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -106014,7 +110151,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); } break; - case 42: + case 46: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -106023,7 +110160,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); } break; - case 43: + case 47: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -106032,7 +110169,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; - case 44: + case 48: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -106146,184 +110283,209 @@ class Test_TC_DRLK_1_1Suite : public TestCommand } case 14: { LogStep(14, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 15: { - LogStep(15, "Step 4b: TH reads Feature dependent(DRLK.S.F05) attributes in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(15, "Step 4a: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 16: { - LogStep(16, "Step 4c: TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(16, "Step 4b: TH reads Feature dependent(DRLK.S.F05) attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 17: { - LogStep(17, "Step 4d: TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(17, "Step 4c: TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 18: { - LogStep(18, "Step 4e: TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "Step 4d: TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 19: { - LogStep(19, "Step 4f: TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(19, "Step 4e: TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 20: { - LogStep(20, "Step 4g: TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(20, "Step 4f: TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 21: { - LogStep(21, "Step 4h: TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(21, "Step 4g: TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 22: { - LogStep(22, "Step 4i: TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F00 || DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(22, "Step 4h: TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 23: { - LogStep(23, "Step 4j: TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.F07 || DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(23, "Step 4i: TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F00 || DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 24: { - LogStep(24, "Step 4k: TH reads optional attribute(Language) in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(24, "Step 4j: TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F07 || DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 25: { - LogStep(25, "Step 4l: TH reads optional attribute(LEDSettings) in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(25, "Step 4k: TH reads optional attribute(Language) in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 26: { - LogStep(26, "Step 4m: TH reads optional attribute(AutoRelockTime) in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(26, "Step 4l: TH reads optional attribute(LEDSettings) in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 27: { - LogStep(27, "Step 4n: TH reads optional attribute(SoundVolume) in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(27, "Step 4m: TH reads optional attribute(AutoRelockTime) in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 28: { - LogStep(28, "Step 4o: TH reads optional attribute(DefaultConfigurationRegister) in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0027"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(28, "Step 4n: TH reads optional attribute(SoundVolume) in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 29: { - LogStep(29, "Step 4p: TH reads optional attribute(EnableLocalProgramming) in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(29, "Step 4o: TH reads optional attribute(DefaultConfigurationRegister) in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0027"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 30: { - LogStep(30, "Step 4q: TH reads optional attribute(EnableOneTouchLocking) in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(30, "Step 4p: TH reads optional attribute(EnableLocalProgramming) in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 31: { - LogStep(31, "Step 4r: TH reads optional attribute(EnableInsideStatusLED) in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(31, "Step 4q: TH reads optional attribute(EnableOneTouchLocking) in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 32: { - LogStep(32, "Step 4s: TH reads optional attribute(EnablePrivacyModeButton) in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.A002b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(32, "Step 4r: TH reads optional attribute(EnableInsideStatusLED) in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 33: { - LogStep(33, "Step 4t: TH reads optional attribute(LocalProgrammingFeatures) in AttributeList"); - VerifyOrDo(!ShouldSkip("DRLK.S.A002c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(33, "Step 4s: TH reads optional attribute(EnablePrivacyModeButton) in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.A002b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 34: { - LogStep(34, "Step 6a: TH reads AcceptedCommandList from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, + LogStep(34, "Step 4t: TH reads optional attribute(LocalProgrammingFeatures) in AttributeList"); + VerifyOrDo(!ShouldSkip("DRLK.S.A002c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true, chip::NullOptional); } case 35: { - LogStep(35, "Step 6b: TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList"); + LogStep(35, "Step 5a: TH reads EventList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 36: { + LogStep(36, "Step 5b: TH reads optional event(Door position sensor) in EventList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F05 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 37: { + LogStep(37, "Step 5c: TH reads optional event(User commands and database) in EventList"); + VerifyOrDo(!ShouldSkip("DRLK.S.F08 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 38: { + LogStep(38, "Step 6a: TH reads AcceptedCommandList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + case 39: { + LogStep(39, "Step 6b: TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 36: { - LogStep(36, "Step 6c: TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList"); + case 40: { + LogStep(40, "Step 6c: TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 37: { - LogStep(37, "Step 6d: TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList"); + case 41: { + LogStep(41, "Step 6d: TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 38: { - LogStep(38, "Step 6e: TH reads Feature dependent commands(DRLK.S.F0c) in AcceptedCommandList"); + case 42: { + LogStep(42, "Step 6e: TH reads Feature dependent commands(DRLK.S.F0c) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F0c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 39: { - LogStep(39, "Step 6f: TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList"); + case 43: { + LogStep(43, "Step 6f: TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 40: { - LogStep(40, "Step 6g: TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList"); + case 44: { + LogStep(44, "Step 6g: TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 41: { - LogStep(41, "Step 7a: TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList"); + case 45: { + LogStep(45, "Step 7a: TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 42: { - LogStep(42, "Step 7b: TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList"); + case 46: { + LogStep(46, "Step 7b: TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 43: { - LogStep(43, "Step 7c: TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList"); + case 47: { + LogStep(47, "Step 7c: TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 44: { - LogStep(44, "Step 7d: TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList"); + case 48: { + LogStep(48, "Step 7d: TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList"); VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); @@ -110139,7 +114301,7 @@ class TestGroupsClusterSuite : public TestCommand class Test_TC_G_1_1Suite : public TestCommand { public: - Test_TC_G_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_G_1_1", 7, credsIssuerConfig) + Test_TC_G_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_G_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -110212,12 +114374,39 @@ class Test_TC_G_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -110231,7 +114420,7 @@ class Test_TC_G_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 6: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -110284,16 +114473,29 @@ class Test_TC_G_1_1Suite : public TestCommand } case 4: { LogStep(4, "Step 4: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 6: TH reads AcceptedCommandList from DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Attributes::AcceptedCommandList::Id, true, + LogStep(5, "Step 4: TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 7: TH reads GeneratedCommandList from DUT"); + LogStep(6, "Step 5: TH reads EventList from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Step 6: TH reads AcceptedCommandList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Step 7: TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -110676,7 +114878,7 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand { public: Test_TC_ACFREMON_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_ACFREMON_1_1", 17, credsIssuerConfig) + TestCommand("Test_TC_ACFREMON_1_1", 20, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -110767,12 +114969,27 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -110783,7 +115000,7 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -110792,7 +115009,7 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -110801,7 +115018,7 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -110810,11 +115027,27 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 12: + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -110826,7 +115059,7 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 13: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -110835,11 +115068,11 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 14: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 15: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -110851,7 +115084,7 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 16: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -110909,35 +115142,42 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand } case 6: { LogStep(6, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ActivatedCarbonFilterMonitoring::Id, ActivatedCarbonFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4b: Read the feature dependent(ACFREMON.S.F00) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("ACFREMON.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 4a: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ActivatedCarbonFilterMonitoring::Id, ActivatedCarbonFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4c: Read the optional attribute InPlaceIndicator (ACFREMON.S.A0003) in AttributeList"); - VerifyOrDo(!ShouldSkip("ACFREMON.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 4b: Read the feature dependent(ACFREMON.S.F00) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("ACFREMON.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ActivatedCarbonFilterMonitoring::Id, ActivatedCarbonFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4d: Read the optional attribute LastChangedTime (ACFREMON.S.A0004) in AttributeList"); - VerifyOrDo(!ShouldSkip("ACFREMON.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 4c: Read the optional attribute InPlaceIndicator (ACFREMON.S.A0003) in AttributeList"); + VerifyOrDo(!ShouldSkip("ACFREMON.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ActivatedCarbonFilterMonitoring::Id, ActivatedCarbonFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 4e: Read the optional attribute ReplacementProductList (ACFREMON.S.F02) in AttributeList"); - VerifyOrDo(!ShouldSkip("ACFREMON.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 4d: Read the optional attribute LastChangedTime (ACFREMON.S.A0004) in AttributeList"); + VerifyOrDo(!ShouldSkip("ACFREMON.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ActivatedCarbonFilterMonitoring::Id, ActivatedCarbonFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, + LogStep(11, "Step 4e: Read the optional attribute ReplacementProductList (ACFREMON.S.F02) in AttributeList"); + VerifyOrDo(!ShouldSkip("ACFREMON.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ActivatedCarbonFilterMonitoring::Id, + ActivatedCarbonFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 12: { + LogStep(12, "Step 4f: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any additional values in the " "standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -110952,21 +115192,43 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 12: { - LogStep(12, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 13: { + LogStep(13, "Step 5a: TH reads EventList attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ActivatedCarbonFilterMonitoring::Id, + ActivatedCarbonFilterMonitoring::Attributes::EventList::Id, true, chip::NullOptional); + } + case 14: { + LogStep(14, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 15: { + LogStep(15, "Step 6a: Read the global attribute: AcceptedCommandList"); VerifyOrDo(!ShouldSkip("!ACFREMON.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ActivatedCarbonFilterMonitoring::Id, ActivatedCarbonFilterMonitoring::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Step 6a: Read the optional command (ResetCondition) in AcceptedCommandList"); + case 16: { + LogStep(16, "Step 6a: Read the optional command (ResetCondition) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("ACFREMON.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ActivatedCarbonFilterMonitoring::Id, ActivatedCarbonFilterMonitoring::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 14: { + case 17: { LogStep( - 14, + 17, "Step 6b: TH reads from the DUT the AcceptedCommandList attribute. 1.The list SHALL NOT contain any additional " "values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list " "MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " @@ -110981,14 +115243,14 @@ class Test_TC_ACFREMON_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 15: { - LogStep(15, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 18: { + LogStep(18, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ActivatedCarbonFilterMonitoring::Id, ActivatedCarbonFilterMonitoring::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 16: { + case 19: { LogStep( - 16, + 19, "Step 7b: TH reads from the DUT the GeneratedCommandList attribute. 1.The list SHALL NOT contain any additional " "values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list " "MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " @@ -111172,7 +115434,7 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand { public: Test_TC_HEPAFREMON_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_HEPAFREMON_1_1", 17, credsIssuerConfig) + TestCommand("Test_TC_HEPAFREMON_1_1", 20, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -111263,12 +115525,27 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -111279,7 +115556,7 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -111288,7 +115565,7 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -111297,7 +115574,7 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -111306,11 +115583,27 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 12: + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -111318,11 +115611,11 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 13: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 14: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -111331,7 +115624,7 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 15: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -111343,7 +115636,7 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 16: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -111400,36 +115693,43 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand HepaFilterMonitoring::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 4a: Read the global attribute: AttributeList"); + LogStep(6, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), HepaFilterMonitoring::Id, HepaFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 4b: Read the feature dependent(HEPAFREMON.S.F00) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("HEPAFREMON.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "Step 4: Read the global attribute: AttributeList"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), HepaFilterMonitoring::Id, HepaFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); } case 8: { - LogStep(8, "Step 4c: Read the optional attribute InPlaceIndicator (HEPAFREMON.S.A0003) in AttributeList"); - VerifyOrDo(!ShouldSkip("HEPAFREMON.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(8, "Step 4b: Read the feature dependent(HEPAFREMON.S.F00) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("HEPAFREMON.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), HepaFilterMonitoring::Id, HepaFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 4d: Read the optional attribute LastChangedTime (HEPAFREMON.S.A0004) in AttributeList"); - VerifyOrDo(!ShouldSkip("HEPAFREMON.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(9, "Step 4c: Read the optional attribute InPlaceIndicator (HEPAFREMON.S.A0003) in AttributeList"); + VerifyOrDo(!ShouldSkip("HEPAFREMON.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), HepaFilterMonitoring::Id, HepaFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); } case 10: { - LogStep(10, "Step 4e: Read the optional attribute ReplacementProductList (HEPAFREMON.S.F02) in AttributeList"); - VerifyOrDo(!ShouldSkip("HEPAFREMON.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(10, "Step 4d: Read the optional attribute LastChangedTime (HEPAFREMON.S.A0004) in AttributeList"); + VerifyOrDo(!ShouldSkip("HEPAFREMON.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), HepaFilterMonitoring::Id, HepaFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); } case 11: { - LogStep(11, + LogStep(11, "Step 4e: Read the optional attribute ReplacementProductList (HEPAFREMON.S.F02) in AttributeList"); + VerifyOrDo(!ShouldSkip("HEPAFREMON.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), HepaFilterMonitoring::Id, + HepaFilterMonitoring::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 12: { + LogStep(12, "Step 4f: TH reads from the DUT the AttributeList attribute. The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY " "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " @@ -111444,13 +115744,35 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 12: { - LogStep(12, "Step 6a: Read the global attribute: AcceptedCommandList"); + case 13: { + LogStep(13, "Step 5a: TH reads EventList attribute from DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), HepaFilterMonitoring::Id, + HepaFilterMonitoring::Attributes::EventList::Id, true, chip::NullOptional); + } + case 14: { + LogStep(14, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 15: { + LogStep(15, "Step 6a: Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), HepaFilterMonitoring::Id, HepaFilterMonitoring::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, + case 16: { + LogStep(16, "Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -111464,19 +115786,19 @@ class Test_TC_HEPAFREMON_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 14: { - LogStep(14, "Step 6b: Read the optional command (ResetCondition) in AcceptedCommandList"); + case 17: { + LogStep(17, "Step 6b: Read the optional command (ResetCondition) in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("HEPAFREMON.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), HepaFilterMonitoring::Id, HepaFilterMonitoring::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "Step 7a: Read the global attribute: GeneratedCommandList"); + case 18: { + LogStep(18, "Step 7a: Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), HepaFilterMonitoring::Id, HepaFilterMonitoring::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, + case 19: { + LogStep(19, "Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or invalid " @@ -135447,7 +139769,7 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand { public: Test_TC_RVCCLEANM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_RVCCLEANM_1_1", 13, credsIssuerConfig) + TestCommand("Test_TC_RVCCLEANM_1_1", 16, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -135521,6 +139843,7 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -135532,7 +139855,13 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: @@ -135541,7 +139870,7 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 7: @@ -135550,14 +139879,39 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 3UL)); + } break; case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -135571,11 +139925,11 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 10: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 11: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -135589,7 +139943,7 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 12: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -135634,34 +139988,41 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand } case 4: { LogStep(4, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4b: TH reads the optional attribute(StartUpMode) in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("RVCCLEANM.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, + LogStep(6, "Step 4b: TH reads the optional attribute(StartUpMode) in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("RVCCLEANM.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "Step 4c: Read the Feature dependent(RVCCLEANM.S.F00 - DEPONOFF) and optional attribute(OnMode) is in " "AttributeList from the DUT"); VerifyOrDo(!ShouldSkip("RVCCLEANM.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, + case 8: { + LogStep(8, "Step 4c: Read the Feature dependent(RVCCLEANM.S.F00 - DEPONOFF) and optional attribute(OnMode) is not in " "AttributeList from the DUT"); VerifyOrDo(!ShouldSkip(" !RVCCLEANM.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 8: { + case 9: { LogStep( - 8, + 9, "Step 4d: TH reads the AttributeList attribute from the DUT. 1.The list SHALL NOT contain any additional values in " "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY contain " "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " @@ -135676,14 +140037,37 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 9: { - LogStep(9, "Step 6a: Read the global attribute AcceptedCommandList. Check if it contains id 0x0 (ChangeToMode)"); + case 10: { + LogStep(10, "Step 5a: Read the global attribute: EventList from the DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 11: { + LogStep( + 11, + "Step 5b: Read the global attribute: EventList from the DUT. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY contain " + "values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the " + "allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any values in " + "the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - 0xXXXX_FFFF) and " + "(0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "Step 6a: Read the global attribute AcceptedCommandList. Check if it contains id 0x0 (ChangeToMode)"); VerifyOrDo(!ShouldSkip("RVCCLEANM.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, + case 13: { + LogStep(13, "Step 6b: Read the global attribute AcceptedCommandList. 1. The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) 2. The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -135698,15 +140082,15 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 11: { - LogStep(11, + case 14: { + LogStep(14, "Step 7a: Read the global attribute: GeneratedCommandList. Check if it contains id 0x1 (ChangeToModeResponse)"); VerifyOrDo(!ShouldSkip("RVCCLEANM.S.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, + case 15: { + LogStep(15, "Step 7b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -136178,7 +140562,7 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand { public: Test_TC_RVCRUNM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_RVCRUNM_1_1", 13, credsIssuerConfig) + TestCommand("Test_TC_RVCRUNM_1_1", 16, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -136252,6 +140636,7 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -136263,7 +140648,13 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; case 6: @@ -136272,7 +140663,7 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; case 7: @@ -136281,14 +140672,39 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintExcludes("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 3UL)); + } break; case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -136302,11 +140718,11 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 10: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 11: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -136320,7 +140736,7 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 12: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; @@ -136365,33 +140781,40 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand } case 4: { LogStep(4, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4b: TH reads the optional attribute(StartUpMode) in AttributeList from the DUT"); - VerifyOrDo(!ShouldSkip("RVCRUNM.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4a: TH reads the AttributeList attribute from the DUT"); + VerifyOrDo(!ShouldSkip("!PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, + LogStep(6, "Step 4b: TH reads the optional attribute(StartUpMode) in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("RVCRUNM.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Step 4c: Read the Feature dependent(RVCRUNM.S.F00 - DEPONOFF) and optional attribute(OnMode) is in " "AttributeList from the DUT"); VerifyOrDo(!ShouldSkip("RVCRUNM.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, + case 8: { + LogStep(8, "Step 4d: Read the Feature dependent(RVCRUNM.S.F00 - DEPONOFF) and optional attribute(OnMode) is not in " "AttributeList from the DUT"); VerifyOrDo(!ShouldSkip(" !RVCRUNM.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, + case 9: { + LogStep(9, "Step 4e: Check for mandatory attributes in AttributeList. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list MAY " "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " @@ -136406,14 +140829,36 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 9: { - LogStep(9, "Step 6a: Read the global attribute AcceptedCommandList. Check if it contains id 0x0 (ChangeToMode)"); + case 10: { + LogStep(10, "Step 5a: Read the global attribute: EventList from the DUT"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 11: { + LogStep(11, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "Step 6a: Read the global attribute AcceptedCommandList. Check if it contains id 0x0 (ChangeToMode)"); VerifyOrDo(!ShouldSkip("RVCRUNM.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, + case 13: { + LogStep(13, "Step 6b: Read the global attribute AcceptedCommandList. 1. The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) 2. The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -136428,15 +140873,15 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 11: { - LogStep(11, + case 14: { + LogStep(14, "Step 7a: Read the global attribute: GeneratedCommandList. Check if it contains id 0x1 (ChangeToModeResponse)"); VerifyOrDo(!ShouldSkip("RVCRUNM.S.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, + case 15: { + LogStep(15, "Step 7b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any additional values " "in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " @@ -138154,7 +142599,7 @@ class Test_TC_BIND_2_3Suite : public TestCommand class Test_TC_S_1_1Suite : public TestCommand { public: - Test_TC_S_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_1_1", 14, credsIssuerConfig) + Test_TC_S_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_1_1", 18, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -138234,6 +142679,7 @@ class Test_TC_S_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); @@ -138250,6 +142696,7 @@ class Test_TC_S_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); @@ -138260,6 +142707,59 @@ class Test_TC_S_1_1Suite : public TestCommand } break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -138277,7 +142777,7 @@ class Test_TC_S_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); } break; - case 7: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -138292,7 +142792,7 @@ class Test_TC_S_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 8: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -138310,7 +142810,7 @@ class Test_TC_S_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); } break; - case 9: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -138325,7 +142825,7 @@ class Test_TC_S_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 10: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -138340,7 +142840,7 @@ class Test_TC_S_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 11: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -138349,7 +142849,7 @@ class Test_TC_S_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); } break; - case 12: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -138358,7 +142858,7 @@ class Test_TC_S_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); } break; - case 13: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -138408,61 +142908,95 @@ class Test_TC_S_1_1Suite : public TestCommand } case 4: { LogStep(4, "Step 4: Read AttributeList (global attribute 65531) if S.S.A0005 is true"); - VerifyOrDo(!ShouldSkip("S.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("S.S.A0005 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AttributeList::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4: Read AttributeList (global attribute 65531) if S.S.A0005 is false"); - VerifyOrDo(!ShouldSkip(" !S.S.A0005 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Step 4: Read AttributeList (global attribute 65531) if S.S.A0005 is true"); + VerifyOrDo(!ShouldSkip("S.S.A0005 && !PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 6a: Read AcceptedCommandList (global attribute 65529)"); + LogStep(6, "Step 4: Read AttributeList (global attribute 65531) if S.S.A0005 is false"); + VerifyOrDo(!ShouldSkip(" !S.S.A0005 && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Step 4: Read AttributeList (global attribute 65531) if S.S.A0005 is false"); + VerifyOrDo(!ShouldSkip(" !S.S.A0005 && !PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Step 5a: Read EventList (global attribute 65530)"); + VerifyOrDo(!ShouldSkip("PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 9: { + LogStep(9, + "Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any additional values in " + "the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list MAY " + "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "Step 6a: Read AcceptedCommandList (global attribute 65529)"); VerifyOrDo(!ShouldSkip("S.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Step 6b: Read AcceptedCommandList (global attribute 65529)"); + case 11: { + LogStep(11, "Step 6b: Read AcceptedCommandList (global attribute 65529)"); VerifyOrDo(!ShouldSkip("(!S.S.C40.Rsp)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Step 6c: Read AcceptedCommandList (global attribute 65529)"); + case 12: { + LogStep(12, "Step 6c: Read AcceptedCommandList (global attribute 65529)"); VerifyOrDo(!ShouldSkip("S.C.C40.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Step 6d: Read AcceptedCommandList (global attribute 65529)"); + case 13: { + LogStep(13, "Step 6d: Read AcceptedCommandList (global attribute 65529)"); VerifyOrDo(!ShouldSkip("(!S.C.C40.Tx)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Step 7a: Read GeneratedCommandList (global attribute 65528)"); + case 14: { + LogStep(14, "Step 7a: Read GeneratedCommandList (global attribute 65528)"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, + case 15: { + LogStep(15, "Step 7b: Read optional command(EnhancedAddSceneResponse) in GeneratedCommandList (global attribute 65528)"); VerifyOrDo(!ShouldSkip("S.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, + case 16: { + LogStep(16, "Step 7c: Read optional command(EnhancedViewSceneResponse) in GeneratedCommandList (global attribute 65528)"); VerifyOrDo(!ShouldSkip("S.S.C41.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "Step 7d: Read optional command(CopySceneResponse) in GeneratedCommandList (global attribute 65528)"); + case 17: { + LogStep(17, "Step 7d: Read optional command(CopySceneResponse) in GeneratedCommandList (global attribute 65528)"); VerifyOrDo(!ShouldSkip("S.S.C42.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); 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 3487b61ad5c6ed..9950ac95f572e3 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -2521,19 +2521,31 @@ class Test_TC_ACL_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TH reads AttributeList attribute from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListAttributeFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4b: TH reads optional attribute (Extension) in AttributeList\n"); - if (ShouldSkip("ACL.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList attribute from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bThReadsOptionalAttributeExtensionInAttributeList_4(); + err = TestStep4aThReadsAttributeListAttributeFromDut_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4b: TH reads optional attribute (Extension) in AttributeList\n"); + if (ShouldSkip("ACL.S.A0001")) { + NextTest(); + return; + } + err = TestStep4bThReadsOptionalAttributeExtensionInAttributeList_5(); + break; + case 6: ChipLogProgress(chipTool, - " ***** Test Step 5 : Step 4c: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 6 : Step 4c: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -2543,11 +2555,33 @@ class Test_TC_ACL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); + err = TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); break; - case 6: + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 5a: TH reads EventList attribute from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 8: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1. The list MAY contain values in " + " ***** Test Step 8 : Step 5b: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional " + "values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " + "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " + "(0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test Vendor or " + "invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where " + "XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); + break; + case 9: + ChipLogProgress(chipTool, + " ***** Test Step 9 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1. The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -2556,11 +2590,11 @@ class Test_TC_ACL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9(); break; - case 7: + case 10: ChipLogProgress(chipTool, - " ***** Test Step 7 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 10 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -2569,7 +2603,7 @@ class Test_TC_ACL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); break; } @@ -2606,6 +2640,15 @@ class Test_TC_ACL_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; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -2619,7 +2662,7 @@ class Test_TC_ACL_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 8; + const uint16_t mTestCount = 11; chip::Optional mNodeId; chip::Optional mCluster; @@ -2701,6 +2744,7 @@ class Test_TC_ACL_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -2711,7 +2755,36 @@ class Test_TC_ACL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsOptionalAttributeExtensionInAttributeList_4() + CHIP_ERROR TestStep4aThReadsAttributeListAttributeFromDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterAccessControl alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList attribute from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bThReadsOptionalAttributeExtensionInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -2733,7 +2806,18 @@ class Test_TC_ACL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() + TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5bThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -2744,7 +2828,7 @@ class Test_TC_ACL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -2755,7 +2839,7 @@ class Test_TC_ACL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7() + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -6348,11 +6432,23 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { break; case 7: ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_7(); break; case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aReadTheGlobalAttributeAttributeList_8(); + break; + case 9: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 4b: TH reads from the DUT the AttributeList attribute. 1.The list SHALL NOT contain any " + " ***** Test Step 9 : Step 4b: TH reads from the DUT the AttributeList attribute. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -6362,15 +6458,37 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bThReadsFromTheDutTheAttributeListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); - break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 6:a Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_9(); + err = TestStep4bThReadsFromTheDutTheAttributeListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9(); break; case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 5a: TH reads EventList attribute from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 11: + ChipLogProgress(chipTool, + " ***** Test Step 11 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11(); + break; + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_12(); + break; + case 13: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 6b: TH reads from the DUT the AcceptedCommandList attribute. 1.The list SHALL NOT " + " ***** Test Step 13 : Step 6b: TH reads from the DUT the AcceptedCommandList attribute. 1.The list SHALL NOT " "contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - " "0x0000_FFFE). 2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - " "0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list " @@ -6381,15 +6499,15 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsFromTheDutTheAcceptedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); + err = TestStep6bThReadsFromTheDutTheAcceptedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_11(); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_14(); break; - case 12: + case 15: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 7b: TH reads from the DUT the GeneratedCommandList attribute. 1.The list SHALL NOT " + " ***** Test Step 15 : Step 7b: TH reads from the DUT the GeneratedCommandList attribute. 1.The list SHALL NOT " "contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - " "0x0000_FFFE). 2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - " "0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list " @@ -6400,7 +6518,7 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); + err = TestStep7bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15(); break; } @@ -6452,6 +6570,15 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -6465,7 +6592,7 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 13; + const uint16_t mTestCount = 16; chip::Optional mNodeId; chip::Optional mCluster; @@ -6611,6 +6738,33 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterAirQuality alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_8() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterAirQuality alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -6631,7 +6785,18 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4bThReadsFromTheDutTheAttributeListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() + TestStep4bThReadsFromTheDutTheAttributeListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -6641,7 +6806,7 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_9() + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -6649,7 +6814,7 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 6:a Read the global attribute: AcceptedCommandList Error: %@", err); + NSLog(@"Step 6a: Read the global attribute: AcceptedCommandList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -6661,7 +6826,7 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsFromTheDutTheAcceptedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() + TestStep6bThReadsFromTheDutTheAcceptedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -6671,7 +6836,7 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_11() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -6696,7 +6861,7 @@ class Test_TC_AIRQUAL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() + TestStep7bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -6877,16 +7042,44 @@ class Test_TC_BOOL_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4ReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 5: Read the global attribute: AcceptedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeAcceptedCommandList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 6: Read the global attribute: GeneratedCommandList\n"); - err = TestStep6ReadTheGlobalAttributeGeneratedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 5: Read the global attribute: AcceptedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeAcceptedCommandList_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6: Read the global attribute: GeneratedCommandList\n"); + err = TestStep6ReadTheGlobalAttributeGeneratedCommandList_6(); break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 7: Read the global attribute: EventList\n"); + if (ShouldSkip("BOOL.S.E00 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 7: Read the global attribute: EventList\n"); + if (ShouldSkip(" !BOOL.S.E00 && PICS_EVENT_LIST_ENABLED ")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -6916,6 +7109,15 @@ class Test_TC_BOOL_1_1 : public TestCommandBridge { case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + 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. @@ -6929,7 +7131,7 @@ class Test_TC_BOOL_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 6; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -6999,6 +7201,33 @@ class Test_TC_BOOL_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterBooleanState alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; 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); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBooleanState alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + 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); @@ -7018,7 +7247,7 @@ class Test_TC_BOOL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeAcceptedCommandList_4() + CHIP_ERROR TestStep5ReadTheGlobalAttributeAcceptedCommandList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7042,7 +7271,7 @@ class Test_TC_BOOL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeGeneratedCommandList_5() + CHIP_ERROR TestStep6ReadTheGlobalAttributeGeneratedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7238,130 +7467,142 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4b: TH reads optional attribute(VendorName) in AttributeList\n"); - if (ShouldSkip("BRBINFO.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip(" !PICS_EVENT_LIST_ENABLED ")) { NextTest(); return; } - err = TestStep4bThReadsOptionalAttributeVendorNameInAttributeList_4(); + err = TestStep4aThReadsAttributeListFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4c: TH reads optional attribute(VendorID) in AttributeList\n"); - if (ShouldSkip("BRBINFO.S.A0002")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4b: TH reads optional attribute(VendorName) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0001")) { NextTest(); return; } - err = TestStep4cThReadsOptionalAttributeVendorIDInAttributeList_5(); + err = TestStep4bThReadsOptionalAttributeVendorNameInAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4d: TH reads optional attribute(ProductName) in AttributeList\n"); - if (ShouldSkip("BRBINFO.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4c: TH reads optional attribute(VendorID) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0002")) { NextTest(); return; } - err = TestStep4dThReadsOptionalAttributeProductNameInAttributeList_6(); + err = TestStep4cThReadsOptionalAttributeVendorIDInAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4e: TH reads optional attribute(NodeLabel) in AttributeList\n"); - if (ShouldSkip("BRBINFO.S.A0005")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4d: TH reads optional attribute(ProductName) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0003")) { NextTest(); return; } - err = TestStep4eThReadsOptionalAttributeNodeLabelInAttributeList_7(); + err = TestStep4dThReadsOptionalAttributeProductNameInAttributeList_7(); break; case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4e: TH reads optional attribute(NodeLabel) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0005")) { + NextTest(); + return; + } + err = TestStep4eThReadsOptionalAttributeNodeLabelInAttributeList_8(); + break; + case 9: ChipLogProgress( - chipTool, " ***** Test Step 8 : Step 4f: TH reads optional attribute(HardwareVersion) in AttributeList\n"); + chipTool, " ***** Test Step 9 : Step 4f: TH reads optional attribute(HardwareVersion) in AttributeList\n"); if (ShouldSkip("BRBINFO.S.A0007")) { NextTest(); return; } - err = TestStep4fThReadsOptionalAttributeHardwareVersionInAttributeList_8(); + err = TestStep4fThReadsOptionalAttributeHardwareVersionInAttributeList_9(); break; - case 9: + case 10: ChipLogProgress( - chipTool, " ***** Test Step 9 : Step 4g: TH reads optional attribute(HardwareVersionString) in AttributeList\n"); + chipTool, " ***** Test Step 10 : Step 4g: TH reads optional attribute(HardwareVersionString) in AttributeList\n"); if (ShouldSkip("BRBINFO.S.A0008")) { NextTest(); return; } - err = TestStep4gThReadsOptionalAttributeHardwareVersionStringInAttributeList_9(); + err = TestStep4gThReadsOptionalAttributeHardwareVersionStringInAttributeList_10(); break; - case 10: + case 11: ChipLogProgress( - chipTool, " ***** Test Step 10 : Step 4h: TH reads optional attribute(SoftwareVersion) in AttributeList\n"); + chipTool, " ***** Test Step 11 : Step 4h: TH reads optional attribute(SoftwareVersion) in AttributeList\n"); if (ShouldSkip("BRBINFO.S.A0009")) { NextTest(); return; } - err = TestStep4hThReadsOptionalAttributeSoftwareVersionInAttributeList_10(); + err = TestStep4hThReadsOptionalAttributeSoftwareVersionInAttributeList_11(); break; - case 11: + case 12: ChipLogProgress( - chipTool, " ***** Test Step 11 : Step 4i: TH reads optional attribute(SoftwareVersionString) in AttributeList\n"); + chipTool, " ***** Test Step 12 : Step 4i: TH reads optional attribute(SoftwareVersionString) in AttributeList\n"); if (ShouldSkip("BRBINFO.S.A000a")) { NextTest(); return; } - err = TestStep4iThReadsOptionalAttributeSoftwareVersionStringInAttributeList_11(); + err = TestStep4iThReadsOptionalAttributeSoftwareVersionStringInAttributeList_12(); break; - case 12: + case 13: ChipLogProgress( - chipTool, " ***** Test Step 12 : Step 4j: TH reads optional attribute(ManufacturingDate) in AttributeList\n"); + chipTool, " ***** Test Step 13 : Step 4j: TH reads optional attribute(ManufacturingDate) in AttributeList\n"); if (ShouldSkip("BRBINFO.S.A000b")) { NextTest(); return; } - err = TestStep4jThReadsOptionalAttributeManufacturingDateInAttributeList_12(); + err = TestStep4jThReadsOptionalAttributeManufacturingDateInAttributeList_13(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 4k: TH reads optional attribute(PartNumber) in AttributeList\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 4k: TH reads optional attribute(PartNumber) in AttributeList\n"); if (ShouldSkip("BRBINFO.S.A000c")) { NextTest(); return; } - err = TestStep4kThReadsOptionalAttributePartNumberInAttributeList_13(); + err = TestStep4kThReadsOptionalAttributePartNumberInAttributeList_14(); break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Step 4l: TH reads optional attribute(ProductURL) in AttributeList\n"); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4l: TH reads optional attribute(ProductURL) in AttributeList\n"); if (ShouldSkip("BRBINFO.S.A000d")) { NextTest(); return; } - err = TestStep4lThReadsOptionalAttributeProductURLInAttributeList_14(); + err = TestStep4lThReadsOptionalAttributeProductURLInAttributeList_15(); break; - case 15: + case 16: ChipLogProgress( - chipTool, " ***** Test Step 15 : Step 4m: TH reads optional attribute(ProductLabel) in AttributeList\n"); + chipTool, " ***** Test Step 16 : Step 4m: TH reads optional attribute(ProductLabel) in AttributeList\n"); if (ShouldSkip("BRBINFO.S.A000e")) { NextTest(); return; } - err = TestStep4mThReadsOptionalAttributeProductLabelInAttributeList_15(); + err = TestStep4mThReadsOptionalAttributeProductLabelInAttributeList_16(); break; - case 16: + case 17: ChipLogProgress( - chipTool, " ***** Test Step 16 : Step 4n: TH reads optional attribute(SerialNumber) in AttributeList\n"); + chipTool, " ***** Test Step 17 : Step 4n: TH reads optional attribute(SerialNumber) in AttributeList\n"); if (ShouldSkip("BRBINFO.S.A000f")) { NextTest(); return; } - err = TestStep4nThReadsOptionalAttributeSerialNumberInAttributeList_16(); + err = TestStep4nThReadsOptionalAttributeSerialNumberInAttributeList_17(); break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4o: TH reads optional attribute(UniqueID) in AttributeList\n"); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Step 4o: TH reads optional attribute(UniqueID) in AttributeList\n"); if (ShouldSkip("BRBINFO.S.A0012")) { NextTest(); return; } - err = TestStep4oThReadsOptionalAttributeUniqueIDInAttributeList_17(); + err = TestStep4oThReadsOptionalAttributeUniqueIDInAttributeList_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4p: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 19 : Step 4p: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -7371,15 +7612,53 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4pThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); - break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Step 6a: TH1 reads AcceptedCommandList from DUT\n"); - err = TestStep6aTh1ReadsAcceptedCommandListFromDut_19(); + err = TestStep4pThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); break; case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : Step 5a: TH reads optional event(StartUp) in EventList\n"); + if (ShouldSkip("BRBINFO.S.E00 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : Step 5b: TH reads optional attribute(ShutDown) in EventList\n"); + if (ShouldSkip("BRBINFO.S.E01 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : Step 5c: TH reads optional attribute(Leave) in EventList\n"); + if (ShouldSkip("BRBINFO.S.E02 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 23: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 23 : Step 5d: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional " + "values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " + "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " + "(0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test Vendor or " + "invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where " + "XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5dThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_23(); + break; + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : Step 6a: TH1 reads AcceptedCommandList from DUT\n"); + err = TestStep6aTh1ReadsAcceptedCommandListFromDut_24(); + break; + case 25: + ChipLogProgress(chipTool, + " ***** Test Step 25 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -7388,15 +7667,15 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_25(); break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Step 7a: TH1 reads GeneratedCommandList from DUT\n"); - err = TestStep7aTh1ReadsGeneratedCommandListFromDut_21(); + case 26: + ChipLogProgress(chipTool, " ***** Test Step 26 : Step 7a: TH1 reads GeneratedCommandList from DUT\n"); + err = TestStep7aTh1ReadsGeneratedCommandListFromDut_26(); break; - case 22: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 7b: TH1 reads GeneratedCommandList from DUT. 1.The list MAY contain values in the " + " ***** Test Step 27 : Step 7b: TH1 reads GeneratedCommandList from DUT. 1.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " "(0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or " "invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where " @@ -7405,7 +7684,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bTh1ReadsGeneratedCommandListFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_22(); + err = TestStep7bTh1ReadsGeneratedCommandListFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; } @@ -7487,6 +7766,21 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -7500,7 +7794,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 23; + const uint16_t mTestCount = 28; chip::Optional mNodeId; chip::Optional mCluster; @@ -7560,6 +7854,35 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 17UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); @@ -7579,7 +7902,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsOptionalAttributeVendorNameInAttributeList_4() + CHIP_ERROR TestStep4bThReadsOptionalAttributeVendorNameInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7602,7 +7925,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cThReadsOptionalAttributeVendorIDInAttributeList_5() + CHIP_ERROR TestStep4cThReadsOptionalAttributeVendorIDInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7625,7 +7948,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dThReadsOptionalAttributeProductNameInAttributeList_6() + CHIP_ERROR TestStep4dThReadsOptionalAttributeProductNameInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7648,7 +7971,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eThReadsOptionalAttributeNodeLabelInAttributeList_7() + CHIP_ERROR TestStep4eThReadsOptionalAttributeNodeLabelInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7671,7 +7994,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fThReadsOptionalAttributeHardwareVersionInAttributeList_8() + CHIP_ERROR TestStep4fThReadsOptionalAttributeHardwareVersionInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7694,7 +8017,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gThReadsOptionalAttributeHardwareVersionStringInAttributeList_9() + CHIP_ERROR TestStep4gThReadsOptionalAttributeHardwareVersionStringInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7717,7 +8040,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hThReadsOptionalAttributeSoftwareVersionInAttributeList_10() + CHIP_ERROR TestStep4hThReadsOptionalAttributeSoftwareVersionInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7740,7 +8063,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4iThReadsOptionalAttributeSoftwareVersionStringInAttributeList_11() + CHIP_ERROR TestStep4iThReadsOptionalAttributeSoftwareVersionStringInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7763,7 +8086,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jThReadsOptionalAttributeManufacturingDateInAttributeList_12() + CHIP_ERROR TestStep4jThReadsOptionalAttributeManufacturingDateInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7786,7 +8109,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kThReadsOptionalAttributePartNumberInAttributeList_13() + CHIP_ERROR TestStep4kThReadsOptionalAttributePartNumberInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7809,7 +8132,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4lThReadsOptionalAttributeProductURLInAttributeList_14() + CHIP_ERROR TestStep4lThReadsOptionalAttributeProductURLInAttributeList_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7832,7 +8155,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4mThReadsOptionalAttributeProductLabelInAttributeList_15() + CHIP_ERROR TestStep4mThReadsOptionalAttributeProductLabelInAttributeList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7855,7 +8178,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4nThReadsOptionalAttributeSerialNumberInAttributeList_16() + CHIP_ERROR TestStep4nThReadsOptionalAttributeSerialNumberInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7878,7 +8201,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4oThReadsOptionalAttributeUniqueIDInAttributeList_17() + CHIP_ERROR TestStep4oThReadsOptionalAttributeUniqueIDInAttributeList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7902,7 +8225,18 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4pThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() + TestStep4pThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5dThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_23() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -7912,7 +8246,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aTh1ReadsAcceptedCommandListFromDut_19() + CHIP_ERROR TestStep6aTh1ReadsAcceptedCommandListFromDut_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7939,7 +8273,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_25() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -7949,7 +8283,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aTh1ReadsGeneratedCommandListFromDut_21() + CHIP_ERROR TestStep7aTh1ReadsGeneratedCommandListFromDut_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -7976,7 +8310,7 @@ class Test_TC_BRBINFO_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bTh1ReadsGeneratedCommandListFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_22() + TestStep7bTh1ReadsGeneratedCommandListFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -8039,23 +8373,43 @@ class Test_TC_ACT_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4b: Read the optional attribute(SetupURL) in AttributeList\n"); - if (ShouldSkip("ACT.S.A0002")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeSetupURLInAttributeList_4(); + err = TestStep4aReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 6: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4b: Read the optional attribute(SetupURL) in AttributeList\n"); + if (ShouldSkip("ACT.S.A0002")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeSetupURLInAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 7: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5: TH reads EventList attribute from DUT\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsEventListAttributeFromDut_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 7: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_8(); break; } @@ -8089,6 +8443,12 @@ class Test_TC_ACT_1_1 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -8102,7 +8462,7 @@ class Test_TC_ACT_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -8172,6 +8532,34 @@ class Test_TC_ACT_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList 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, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -8192,7 +8580,7 @@ class Test_TC_ACT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeSetupURLInAttributeList_4() + CHIP_ERROR TestStep4bReadTheOptionalAttributeSetupURLInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -8213,7 +8601,17 @@ class Test_TC_ACT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_5() + CHIP_ERROR TestStep5ThReadsEventListAttributeFromDut_6() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -8233,7 +8631,7 @@ class Test_TC_ACT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_6() + CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -8310,11 +8708,23 @@ class Test_TC_BIND_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsAttributeListFromDut_4(); + break; + case 5: ChipLogProgress(chipTool, - " ***** Test Step 4 : Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 5 : Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -8324,11 +8734,25 @@ class Test_TC_BIND_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4(); + err = TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); break; - case 5: + case 6: ChipLogProgress(chipTool, - " ***** Test Step 5 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 6 : Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + break; + case 7: + ChipLogProgress(chipTool, + " ***** Test Step 7 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -8337,11 +8761,11 @@ class Test_TC_BIND_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); + err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7(); break; - case 6: + case 8: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 8 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -8350,7 +8774,7 @@ class Test_TC_BIND_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); break; } @@ -8384,6 +8808,12 @@ class Test_TC_BIND_1_1 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -8397,7 +8827,7 @@ class Test_TC_BIND_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -8467,6 +8897,33 @@ class Test_TC_BIND_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterBinding alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBinding alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); @@ -8487,7 +8944,18 @@ class Test_TC_BIND_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4() + TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -8498,7 +8966,7 @@ class Test_TC_BIND_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() + TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -8509,7 +8977,7 @@ class Test_TC_BIND_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -8625,598 +9093,618 @@ class Test_TC_CC_1_1 : public TestCommandBridge { break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4b: Read the optional attribute(CurrentHue) in AttributeList\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeCurrentHueInAttributeList_9(); + err = TestStep4aReadTheGlobalAttributeAttributeList_9(); break; case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 4b: Read the optional attribute(CurrentHue) in AttributeList\n"); + if (ShouldSkip("CC.S.A0000")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeCurrentHueInAttributeList_10(); + break; + case 11: ChipLogProgress( - chipTool, " ***** Test Step 10 : Step 4c: Read the optional attribute(CurrentSaturation) in AttributeList\n"); + chipTool, " ***** Test Step 11 : Step 4c: Read the optional attribute(CurrentSaturation) in AttributeList\n"); if (ShouldSkip("CC.S.A0001")) { NextTest(); return; } - err = TestStep4cReadTheOptionalAttributeCurrentSaturationInAttributeList_10(); + err = TestStep4cReadTheOptionalAttributeCurrentSaturationInAttributeList_11(); break; - case 11: + case 12: ChipLogProgress( - chipTool, " ***** Test Step 11 : Step 4d: Read the optional attribute(RemainingTime) in AttributeList\n"); + chipTool, " ***** Test Step 12 : Step 4d: Read the optional attribute(RemainingTime) in AttributeList\n"); if (ShouldSkip("CC.S.A0002")) { NextTest(); return; } - err = TestStep4dReadTheOptionalAttributeRemainingTimeInAttributeList_11(); + err = TestStep4dReadTheOptionalAttributeRemainingTimeInAttributeList_12(); break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 4e: Read the optional attribute(CurrentX) in AttributeList\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 4e: Read the optional attribute(CurrentX) in AttributeList\n"); if (ShouldSkip("CC.S.A0003")) { NextTest(); return; } - err = TestStep4eReadTheOptionalAttributeCurrentXInAttributeList_12(); + err = TestStep4eReadTheOptionalAttributeCurrentXInAttributeList_13(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 4f: Read the optional attribute(CurrentY) in AttributeList\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 4f: Read the optional attribute(CurrentY) in AttributeList\n"); if (ShouldSkip("CC.S.A0004")) { NextTest(); return; } - err = TestStep4fReadTheOptionalAttributeCurrentYInAttributeList_13(); + err = TestStep4fReadTheOptionalAttributeCurrentYInAttributeList_14(); break; - case 14: + case 15: ChipLogProgress( - chipTool, " ***** Test Step 14 : Step 4g: Read the optional attribute(DriftCompensation) in AttributeList\n"); + chipTool, " ***** Test Step 15 : Step 4g: Read the optional attribute(DriftCompensation) in AttributeList\n"); if (ShouldSkip("CC.S.A0005")) { NextTest(); return; } - err = TestStep4gReadTheOptionalAttributeDriftCompensationInAttributeList_14(); + err = TestStep4gReadTheOptionalAttributeDriftCompensationInAttributeList_15(); break; - case 15: + case 16: ChipLogProgress( - chipTool, " ***** Test Step 15 : Step 4h: Read the optional attribute(CompensationText) in AttributeList\n"); + chipTool, " ***** Test Step 16 : Step 4h: Read the optional attribute(CompensationText) in AttributeList\n"); if (ShouldSkip("CC.S.A0006")) { NextTest(); return; } - err = TestStep4hReadTheOptionalAttributeCompensationTextInAttributeList_15(); + err = TestStep4hReadTheOptionalAttributeCompensationTextInAttributeList_16(); break; - case 16: + case 17: ChipLogProgress( - chipTool, " ***** Test Step 16 : Step 4i: Read the optional attribute(ColorTemperatureMireds) in AttributeList\n"); + chipTool, " ***** Test Step 17 : Step 4i: Read the optional attribute(ColorTemperatureMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A0007")) { NextTest(); return; } - err = TestStep4iReadTheOptionalAttributeColorTemperatureMiredsInAttributeList_16(); + err = TestStep4iReadTheOptionalAttributeColorTemperatureMiredsInAttributeList_17(); break; - case 17: + case 18: ChipLogProgress( - chipTool, " ***** Test Step 17 : Step 4j: Read the optional attribute(NumberOfPrimaries) in AttributeList\n"); + chipTool, " ***** Test Step 18 : Step 4j: Read the optional attribute(NumberOfPrimaries) in AttributeList\n"); if (ShouldSkip("CC.S.A0010")) { NextTest(); return; } - err = TestStep4jReadTheOptionalAttributeNumberOfPrimariesInAttributeList_17(); + err = TestStep4jReadTheOptionalAttributeNumberOfPrimariesInAttributeList_18(); break; - case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Step 4k: Read the optional attribute(Primary1X) in AttributeList\n"); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Step 4k: Read the optional attribute(Primary1X) in AttributeList\n"); if (ShouldSkip("CC.S.A0011")) { NextTest(); return; } - err = TestStep4kReadTheOptionalAttributePrimary1XInAttributeList_18(); + err = TestStep4kReadTheOptionalAttributePrimary1XInAttributeList_19(); break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Step 4l: Read the optional attribute(Primary1Y) in AttributeList\n"); + case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : Step 4l: Read the optional attribute(Primary1Y) in AttributeList\n"); if (ShouldSkip("CC.S.A0012")) { NextTest(); return; } - err = TestStep4lReadTheOptionalAttributePrimary1YInAttributeList_19(); + err = TestStep4lReadTheOptionalAttributePrimary1YInAttributeList_20(); break; - case 20: + case 21: ChipLogProgress( - chipTool, " ***** Test Step 20 : Step 4m: Read the optional attribute(Primary1Intensity) in AttributeList\n"); + chipTool, " ***** Test Step 21 : Step 4m: Read the optional attribute(Primary1Intensity) in AttributeList\n"); if (ShouldSkip("CC.S.A0013")) { NextTest(); return; } - err = TestStep4mReadTheOptionalAttributePrimary1IntensityInAttributeList_20(); + err = TestStep4mReadTheOptionalAttributePrimary1IntensityInAttributeList_21(); break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Step 4n: Read the optional attribute(Primary2X) in AttributeList\n"); + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : Step 4n: Read the optional attribute(Primary2X) in AttributeList\n"); if (ShouldSkip("CC.S.A0015")) { NextTest(); return; } - err = TestStep4nReadTheOptionalAttributePrimary2XInAttributeList_21(); + err = TestStep4nReadTheOptionalAttributePrimary2XInAttributeList_22(); break; - case 22: - ChipLogProgress(chipTool, " ***** Test Step 22 : Step 4o: Read the optional attribute(Primary2Y) in AttributeList\n"); + case 23: + ChipLogProgress(chipTool, " ***** Test Step 23 : Step 4o: Read the optional attribute(Primary2Y) in AttributeList\n"); if (ShouldSkip("CC.S.A0016")) { NextTest(); return; } - err = TestStep4oReadTheOptionalAttributePrimary2YInAttributeList_22(); + err = TestStep4oReadTheOptionalAttributePrimary2YInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress( - chipTool, " ***** Test Step 23 : Step 4p: Read the optional attribute(Primary2Intensity) in AttributeList\n"); + chipTool, " ***** Test Step 24 : Step 4p: Read the optional attribute(Primary2Intensity) in AttributeList\n"); if (ShouldSkip("CC.S.A0017")) { NextTest(); return; } - err = TestStep4pReadTheOptionalAttributePrimary2IntensityInAttributeList_23(); + err = TestStep4pReadTheOptionalAttributePrimary2IntensityInAttributeList_24(); break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : Step 4q: Read the optional attribute(Primary3X) in AttributeList\n"); + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : Step 4q: Read the optional attribute(Primary3X) in AttributeList\n"); if (ShouldSkip("CC.S.A0019")) { NextTest(); return; } - err = TestStep4qReadTheOptionalAttributePrimary3XInAttributeList_24(); + err = TestStep4qReadTheOptionalAttributePrimary3XInAttributeList_25(); break; - case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : Step 4r: Read the optional attribute(Primary3Y) in AttributeList\n"); + case 26: + ChipLogProgress(chipTool, " ***** Test Step 26 : Step 4r: Read the optional attribute(Primary3Y) in AttributeList\n"); if (ShouldSkip("CC.S.A001a")) { NextTest(); return; } - err = TestStep4rReadTheOptionalAttributePrimary3YInAttributeList_25(); + err = TestStep4rReadTheOptionalAttributePrimary3YInAttributeList_26(); break; - case 26: + case 27: ChipLogProgress( - chipTool, " ***** Test Step 26 : Step 4s: Read the optional attribute(Primary3Intensity) in AttributeList\n"); + chipTool, " ***** Test Step 27 : Step 4s: Read the optional attribute(Primary3Intensity) in AttributeList\n"); if (ShouldSkip("CC.S.A001b")) { NextTest(); return; } - err = TestStep4sReadTheOptionalAttributePrimary3IntensityInAttributeList_26(); + err = TestStep4sReadTheOptionalAttributePrimary3IntensityInAttributeList_27(); break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 4t: Read the optional attribute(Primary4X) in AttributeList\n"); + case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 4t: Read the optional attribute(Primary4X) in AttributeList\n"); if (ShouldSkip("CC.S.A0020")) { NextTest(); return; } - err = TestStep4tReadTheOptionalAttributePrimary4XInAttributeList_27(); + err = TestStep4tReadTheOptionalAttributePrimary4XInAttributeList_28(); break; - case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : Step 4u: Read the optional attribute(Primary4Y) in AttributeList\n"); + case 29: + ChipLogProgress(chipTool, " ***** Test Step 29 : Step 4u: Read the optional attribute(Primary4Y) in AttributeList\n"); if (ShouldSkip("CC.S.A0021")) { NextTest(); return; } - err = TestStep4uReadTheOptionalAttributePrimary4YInAttributeList_28(); + err = TestStep4uReadTheOptionalAttributePrimary4YInAttributeList_29(); break; - case 29: + case 30: ChipLogProgress( - chipTool, " ***** Test Step 29 : Step 4v: Read the optional attribute(Primary4Intensity) in AttributeList\n"); + chipTool, " ***** Test Step 30 : Step 4v: Read the optional attribute(Primary4Intensity) in AttributeList\n"); if (ShouldSkip("CC.S.A0022")) { NextTest(); return; } - err = TestStep4vReadTheOptionalAttributePrimary4IntensityInAttributeList_29(); + err = TestStep4vReadTheOptionalAttributePrimary4IntensityInAttributeList_30(); break; - case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : Step 4w: Read the optional attribute(Primary5X) in AttributeList\n"); + case 31: + ChipLogProgress(chipTool, " ***** Test Step 31 : Step 4w: Read the optional attribute(Primary5X) in AttributeList\n"); if (ShouldSkip("CC.S.A0024")) { NextTest(); return; } - err = TestStep4wReadTheOptionalAttributePrimary5XInAttributeList_30(); + err = TestStep4wReadTheOptionalAttributePrimary5XInAttributeList_31(); break; - case 31: - ChipLogProgress(chipTool, " ***** Test Step 31 : Step 4x: Read the optional attribute(Primary5Y) in AttributeList\n"); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 4x: Read the optional attribute(Primary5Y) in AttributeList\n"); if (ShouldSkip("CC.S.A0025")) { NextTest(); return; } - err = TestStep4xReadTheOptionalAttributePrimary5YInAttributeList_31(); + err = TestStep4xReadTheOptionalAttributePrimary5YInAttributeList_32(); break; - case 32: + case 33: ChipLogProgress( - chipTool, " ***** Test Step 32 : Step 4y: Read the optional attribute(Primary5Intensity) in AttributeList\n"); + chipTool, " ***** Test Step 33 : Step 4y: Read the optional attribute(Primary5Intensity) in AttributeList\n"); if (ShouldSkip("CC.S.A0026")) { NextTest(); return; } - err = TestStep4yReadTheOptionalAttributePrimary5IntensityInAttributeList_32(); + err = TestStep4yReadTheOptionalAttributePrimary5IntensityInAttributeList_33(); break; - case 33: - ChipLogProgress(chipTool, " ***** Test Step 33 : Step 4z: Read the optional attribute(Primary6X) in AttributeList\n"); + case 34: + ChipLogProgress(chipTool, " ***** Test Step 34 : Step 4z: Read the optional attribute(Primary6X) in AttributeList\n"); if (ShouldSkip("CC.S.A0028")) { NextTest(); return; } - err = TestStep4zReadTheOptionalAttributePrimary6XInAttributeList_33(); + err = TestStep4zReadTheOptionalAttributePrimary6XInAttributeList_34(); break; - case 34: - ChipLogProgress(chipTool, " ***** Test Step 34 : Step 4a1: Read the optional attribute(Primary6Y) in AttributeList\n"); + case 35: + ChipLogProgress(chipTool, " ***** Test Step 35 : Step 4a1: Read the optional attribute(Primary6Y) in AttributeList\n"); if (ShouldSkip("CC.S.A0029")) { NextTest(); return; } - err = TestStep4a1ReadTheOptionalAttributePrimary6YInAttributeList_34(); + err = TestStep4a1ReadTheOptionalAttributePrimary6YInAttributeList_35(); break; - case 35: + case 36: ChipLogProgress( - chipTool, " ***** Test Step 35 : Step 4a2: Read the optional attribute(Primary6Intensity) in AttributeList\n"); + chipTool, " ***** Test Step 36 : Step 4a2: Read the optional attribute(Primary6Intensity) in AttributeList\n"); if (ShouldSkip("CC.S.A002a")) { NextTest(); return; } - err = TestStep4a2ReadTheOptionalAttributePrimary6IntensityInAttributeList_35(); + err = TestStep4a2ReadTheOptionalAttributePrimary6IntensityInAttributeList_36(); break; - case 36: + case 37: ChipLogProgress( - chipTool, " ***** Test Step 36 : Step 4a3: Read the optional attribute(WhitePointX) in AttributeList\n"); + chipTool, " ***** Test Step 37 : Step 4a3: Read the optional attribute(WhitePointX) in AttributeList\n"); if (ShouldSkip("CC.S.A0030")) { NextTest(); return; } - err = TestStep4a3ReadTheOptionalAttributeWhitePointXInAttributeList_36(); + err = TestStep4a3ReadTheOptionalAttributeWhitePointXInAttributeList_37(); break; - case 37: + case 38: ChipLogProgress( - chipTool, " ***** Test Step 37 : Step 4a4: Read the optional attribute(WhitePointY) in AttributeList\n"); + chipTool, " ***** Test Step 38 : Step 4a4: Read the optional attribute(WhitePointY) in AttributeList\n"); if (ShouldSkip("CC.S.A0031")) { NextTest(); return; } - err = TestStep4a4ReadTheOptionalAttributeWhitePointYInAttributeList_37(); + err = TestStep4a4ReadTheOptionalAttributeWhitePointYInAttributeList_38(); break; - case 38: + case 39: ChipLogProgress( - chipTool, " ***** Test Step 38 : Step 4a5: Read the optional attribute(ColorPointRX) in AttributeList\n"); + chipTool, " ***** Test Step 39 : Step 4a5: Read the optional attribute(ColorPointRX) in AttributeList\n"); if (ShouldSkip("CC.S.A0032")) { NextTest(); return; } - err = TestStep4a5ReadTheOptionalAttributeColorPointRXInAttributeList_38(); + err = TestStep4a5ReadTheOptionalAttributeColorPointRXInAttributeList_39(); break; - case 39: + case 40: ChipLogProgress( - chipTool, " ***** Test Step 39 : Step 4a6: Read the optional attribute(ColorPointRY) in AttributeList\n"); + chipTool, " ***** Test Step 40 : Step 4a6: Read the optional attribute(ColorPointRY) in AttributeList\n"); if (ShouldSkip("CC.S.A0033")) { NextTest(); return; } - err = TestStep4a6ReadTheOptionalAttributeColorPointRYInAttributeList_39(); + err = TestStep4a6ReadTheOptionalAttributeColorPointRYInAttributeList_40(); break; - case 40: + case 41: ChipLogProgress( - chipTool, " ***** Test Step 40 : Step 4a7: Read the optional attribute(ColorPointRIntensity) in AttributeList\n"); + chipTool, " ***** Test Step 41 : Step 4a7: Read the optional attribute(ColorPointRIntensity) in AttributeList\n"); if (ShouldSkip("CC.S.A0034")) { NextTest(); return; } - err = TestStep4a7ReadTheOptionalAttributeColorPointRIntensityInAttributeList_40(); + err = TestStep4a7ReadTheOptionalAttributeColorPointRIntensityInAttributeList_41(); break; - case 41: + case 42: ChipLogProgress( - chipTool, " ***** Test Step 41 : Step 4a8: Read the optional attribute(ColorPointGX) in AttributeList\n"); + chipTool, " ***** Test Step 42 : Step 4a8: Read the optional attribute(ColorPointGX) in AttributeList\n"); if (ShouldSkip("CC.S.A0036")) { NextTest(); return; } - err = TestStep4a8ReadTheOptionalAttributeColorPointGXInAttributeList_41(); + err = TestStep4a8ReadTheOptionalAttributeColorPointGXInAttributeList_42(); break; - case 42: + case 43: ChipLogProgress( - chipTool, " ***** Test Step 42 : Step 4a9: Read the optional attribute(ColorPointGY) in AttributeList\n"); + chipTool, " ***** Test Step 43 : Step 4a9: Read the optional attribute(ColorPointGY) in AttributeList\n"); if (ShouldSkip("CC.S.A0037")) { NextTest(); return; } - err = TestStep4a9ReadTheOptionalAttributeColorPointGYInAttributeList_42(); + err = TestStep4a9ReadTheOptionalAttributeColorPointGYInAttributeList_43(); break; - case 43: + case 44: ChipLogProgress( - chipTool, " ***** Test Step 43 : Step 4a10: Read the optional attribute(ColorPointGIntensity) in AttributeList\n"); + chipTool, " ***** Test Step 44 : Step 4a10: Read the optional attribute(ColorPointGIntensity) in AttributeList\n"); if (ShouldSkip("CC.S.A0038")) { NextTest(); return; } - err = TestStep4a10ReadTheOptionalAttributeColorPointGIntensityInAttributeList_43(); + err = TestStep4a10ReadTheOptionalAttributeColorPointGIntensityInAttributeList_44(); break; - case 44: + case 45: ChipLogProgress( - chipTool, " ***** Test Step 44 : Step 4a11: Read the optional attribute(ColorPointBX) in AttributeList\n"); + chipTool, " ***** Test Step 45 : Step 4a11: Read the optional attribute(ColorPointBX) in AttributeList\n"); if (ShouldSkip("CC.S.A003a")) { NextTest(); return; } - err = TestStep4a11ReadTheOptionalAttributeColorPointBXInAttributeList_44(); + err = TestStep4a11ReadTheOptionalAttributeColorPointBXInAttributeList_45(); break; - case 45: + case 46: ChipLogProgress( - chipTool, " ***** Test Step 45 : Step 4a12: Read the optional attribute(ColorPointBY) in AttributeList\n"); + chipTool, " ***** Test Step 46 : Step 4a12: Read the optional attribute(ColorPointBY) in AttributeList\n"); if (ShouldSkip("CC.S.A003b")) { NextTest(); return; } - err = TestStep4a12ReadTheOptionalAttributeColorPointBYInAttributeList_45(); + err = TestStep4a12ReadTheOptionalAttributeColorPointBYInAttributeList_46(); break; - case 46: + case 47: ChipLogProgress( - chipTool, " ***** Test Step 46 : Step 4a13: Read the optional attribute(ColorPointBIntensity) in AttributeList\n"); + chipTool, " ***** Test Step 47 : Step 4a13: Read the optional attribute(ColorPointBIntensity) in AttributeList\n"); if (ShouldSkip("CC.S.A003c")) { NextTest(); return; } - err = TestStep4a13ReadTheOptionalAttributeColorPointBIntensityInAttributeList_46(); + err = TestStep4a13ReadTheOptionalAttributeColorPointBIntensityInAttributeList_47(); break; - case 47: + case 48: ChipLogProgress( - chipTool, " ***** Test Step 47 : Step 4a14: Read the optional attribute(EnhancedCurrentHue) in AttributeList\n"); + chipTool, " ***** Test Step 48 : Step 4a14: Read the optional attribute(EnhancedCurrentHue) in AttributeList\n"); if (ShouldSkip("CC.S.A4000")) { NextTest(); return; } - err = TestStep4a14ReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_47(); + err = TestStep4a14ReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_48(); break; - case 48: + case 49: ChipLogProgress( - chipTool, " ***** Test Step 48 : Step 4a15: Read the optional attribute(ColorLoopActive) in AttributeList\n"); + chipTool, " ***** Test Step 49 : Step 4a15: Read the optional attribute(ColorLoopActive) in AttributeList\n"); if (ShouldSkip("CC.S.A4002")) { NextTest(); return; } - err = TestStep4a15ReadTheOptionalAttributeColorLoopActiveInAttributeList_48(); + err = TestStep4a15ReadTheOptionalAttributeColorLoopActiveInAttributeList_49(); break; - case 49: + case 50: ChipLogProgress( - chipTool, " ***** Test Step 49 : Step 4a16: Read the optional attribute(ColorLoopDirection) in AttributeList\n"); + chipTool, " ***** Test Step 50 : Step 4a16: Read the optional attribute(ColorLoopDirection) in AttributeList\n"); if (ShouldSkip("CC.S.A4003")) { NextTest(); return; } - err = TestStep4a16ReadTheOptionalAttributeColorLoopDirectionInAttributeList_49(); + err = TestStep4a16ReadTheOptionalAttributeColorLoopDirectionInAttributeList_50(); break; - case 50: + case 51: ChipLogProgress( - chipTool, " ***** Test Step 50 : Step 4a17: Read the optional attribute(ColorLoopTime) in AttributeList\n"); + chipTool, " ***** Test Step 51 : Step 4a17: Read the optional attribute(ColorLoopTime) in AttributeList\n"); if (ShouldSkip("CC.S.A4004")) { NextTest(); return; } - err = TestStep4a17ReadTheOptionalAttributeColorLoopTimeInAttributeList_50(); + err = TestStep4a17ReadTheOptionalAttributeColorLoopTimeInAttributeList_51(); break; - case 51: + case 52: ChipLogProgress(chipTool, - " ***** Test Step 51 : Step 4a18: Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList\n"); + " ***** Test Step 52 : Step 4a18: Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList\n"); if (ShouldSkip("CC.S.A4005")) { NextTest(); return; } - err = TestStep4a18ReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_51(); + err = TestStep4a18ReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_52(); break; - case 52: + case 53: ChipLogProgress(chipTool, - " ***** Test Step 52 : Step 4a19: Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList\n"); + " ***** Test Step 53 : Step 4a19: Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList\n"); if (ShouldSkip("CC.S.A4006")) { NextTest(); return; } - err = TestStep4a19ReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_52(); + err = TestStep4a19ReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_53(); break; - case 53: + case 54: ChipLogProgress(chipTool, - " ***** Test Step 53 : Step 4a20: Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList\n"); + " ***** Test Step 54 : Step 4a20: Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400b")) { NextTest(); return; } - err = TestStep4a20ReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_53(); + err = TestStep4a20ReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_54(); break; - case 54: + case 55: ChipLogProgress(chipTool, - " ***** Test Step 54 : Step 4a21: Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList\n"); + " ***** Test Step 55 : Step 4a21: Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400c")) { NextTest(); return; } - err = TestStep4a21ReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_54(); + err = TestStep4a21ReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_55(); break; - case 55: + case 56: ChipLogProgress(chipTool, - " ***** Test Step 55 : Step 4a22: Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList\n"); + " ***** Test Step 56 : Step 4a22: Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400d")) { NextTest(); return; } - err = TestStep4a22ReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_55(); + err = TestStep4a22ReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_56(); break; - case 56: + case 57: ChipLogProgress(chipTool, - " ***** Test Step 56 : Step 4a23: Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList\n"); + " ***** Test Step 57 : Step 4a23: Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A4010")) { NextTest(); return; } - err = TestStep4a23ReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_56(); + err = TestStep4a23ReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_57(); break; - case 57: + case 58: + ChipLogProgress(chipTool, " ***** Test Step 58 : Step 5: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 59: ChipLogProgress( - chipTool, " ***** Test Step 57 : Step 6a: Read the optional command(MoveToHue) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 59 : Step 6a: Read the optional command(MoveToHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C00.Rsp")) { NextTest(); return; } - err = TestStep6aReadTheOptionalCommandMoveToHueInAcceptedCommandList_57(); + err = TestStep6aReadTheOptionalCommandMoveToHueInAcceptedCommandList_59(); break; - case 58: - ChipLogProgress(chipTool, " ***** Test Step 58 : Step 6b: Read the optional command(MoveHue) in AcceptedCommandList\n"); + case 60: + ChipLogProgress(chipTool, " ***** Test Step 60 : Step 6b: Read the optional command(MoveHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C01.Rsp")) { NextTest(); return; } - err = TestStep6bReadTheOptionalCommandMoveHueInAcceptedCommandList_58(); + err = TestStep6bReadTheOptionalCommandMoveHueInAcceptedCommandList_60(); break; - case 59: - ChipLogProgress(chipTool, " ***** Test Step 59 : Step 6c: Read the optional command(StepHue) in AcceptedCommandList\n"); + case 61: + ChipLogProgress(chipTool, " ***** Test Step 61 : Step 6c: Read the optional command(StepHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C02.Rsp")) { NextTest(); return; } - err = TestStep6cReadTheOptionalCommandStepHueInAcceptedCommandList_59(); + err = TestStep6cReadTheOptionalCommandStepHueInAcceptedCommandList_61(); break; - case 60: + case 62: ChipLogProgress( - chipTool, " ***** Test Step 60 : Step 6d: Read the optional command(MoveToSaturation) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 62 : Step 6d: Read the optional command(MoveToSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C03.Rsp")) { NextTest(); return; } - err = TestStep6dReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_60(); + err = TestStep6dReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_62(); break; - case 61: + case 63: ChipLogProgress( - chipTool, " ***** Test Step 61 : Step 6e: Read the optional command(MoveSaturation) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 63 : Step 6e: Read the optional command(MoveSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C04.Rsp")) { NextTest(); return; } - err = TestStep6eReadTheOptionalCommandMoveSaturationInAcceptedCommandList_61(); + err = TestStep6eReadTheOptionalCommandMoveSaturationInAcceptedCommandList_63(); break; - case 62: + case 64: ChipLogProgress( - chipTool, " ***** Test Step 62 : Step 6f: Read the optional command(StepSaturation) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 64 : Step 6f: Read the optional command(StepSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C05.Rsp")) { NextTest(); return; } - err = TestStep6fReadTheOptionalCommandStepSaturationInAcceptedCommandList_62(); + err = TestStep6fReadTheOptionalCommandStepSaturationInAcceptedCommandList_64(); break; - case 63: + case 65: ChipLogProgress(chipTool, - " ***** Test Step 63 : Step 6g: Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList\n"); + " ***** Test Step 65 : Step 6g: Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C06.Rsp")) { NextTest(); return; } - err = TestStep6gReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_63(); + err = TestStep6gReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_65(); break; - case 64: + case 66: ChipLogProgress( - chipTool, " ***** Test Step 64 : Step 6h: Read the optional command(MoveToColor) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 66 : Step 6h: Read the optional command(MoveToColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C07.Rsp")) { NextTest(); return; } - err = TestStep6hReadTheOptionalCommandMoveToColorInAcceptedCommandList_64(); + err = TestStep6hReadTheOptionalCommandMoveToColorInAcceptedCommandList_66(); break; - case 65: + case 67: ChipLogProgress( - chipTool, " ***** Test Step 65 : Step 6i: Read the optional command(MoveColor) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 67 : Step 6i: Read the optional command(MoveColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C08.Rsp")) { NextTest(); return; } - err = TestStep6iReadTheOptionalCommandMoveColorInAcceptedCommandList_65(); + err = TestStep6iReadTheOptionalCommandMoveColorInAcceptedCommandList_67(); break; - case 66: + case 68: ChipLogProgress( - chipTool, " ***** Test Step 66 : Step 6j: Read the optional command(StepColor) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 68 : Step 6j: Read the optional command(StepColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C09.Rsp")) { NextTest(); return; } - err = TestStep6jReadTheOptionalCommandStepColorInAcceptedCommandList_66(); + err = TestStep6jReadTheOptionalCommandStepColorInAcceptedCommandList_68(); break; - case 67: + case 69: ChipLogProgress(chipTool, - " ***** Test Step 67 : Step 6k: Read the optional command(MoveToColorTemperature) in AcceptedCommandList\n"); + " ***** Test Step 69 : Step 6k: Read the optional command(MoveToColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C0a.Rsp")) { NextTest(); return; } - err = TestStep6kReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_67(); + err = TestStep6kReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_69(); break; - case 68: + case 70: ChipLogProgress( - chipTool, " ***** Test Step 68 : Step 6l: Read the optional command(EnhancedMoveToHue) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 70 : Step 6l: Read the optional command(EnhancedMoveToHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C40.Rsp")) { NextTest(); return; } - err = TestStep6lReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_68(); + err = TestStep6lReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_70(); break; - case 69: + case 71: ChipLogProgress( - chipTool, " ***** Test Step 69 : Step 6m: Read the optional command(EnhancedMoveHue) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 71 : Step 6m: Read the optional command(EnhancedMoveHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C41.Rsp")) { NextTest(); return; } - err = TestStep6mReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_69(); + err = TestStep6mReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_71(); break; - case 70: + case 72: ChipLogProgress( - chipTool, " ***** Test Step 70 : Step 6n: Read the optional command(EnhancedStepHue) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 72 : Step 6n: Read the optional command(EnhancedStepHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C42.Rsp")) { NextTest(); return; } - err = TestStep6nReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_70(); + err = TestStep6nReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_72(); break; - case 71: + case 73: ChipLogProgress(chipTool, - " ***** Test Step 71 : Step 6o: Read the optional command(EnhancedMoveToHueAndSaturation) in " + " ***** Test Step 73 : Step 6o: Read the optional command(EnhancedMoveToHueAndSaturation) in " "AcceptedCommandList\n"); if (ShouldSkip("CC.S.C43.Rsp")) { NextTest(); return; } - err = TestStep6oReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_71(); + err = TestStep6oReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_73(); break; - case 72: + case 74: ChipLogProgress( - chipTool, " ***** Test Step 72 : Step 6p: Read the optional command(ColorLoopSet) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 74 : Step 6p: Read the optional command(ColorLoopSet) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C44.Rsp")) { NextTest(); return; } - err = TestStep6pReadTheOptionalCommandColorLoopSetInAcceptedCommandList_72(); + err = TestStep6pReadTheOptionalCommandColorLoopSetInAcceptedCommandList_74(); break; - case 73: + case 75: ChipLogProgress( - chipTool, " ***** Test Step 73 : Step 6q: Read the optional command(StopMoveStep) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 75 : Step 6q: Read the optional command(StopMoveStep) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C47.Rsp")) { NextTest(); return; } - err = TestStep6qReadTheOptionalCommandStopMoveStepInAcceptedCommandList_73(); + err = TestStep6qReadTheOptionalCommandStopMoveStepInAcceptedCommandList_75(); break; - case 74: + case 76: ChipLogProgress(chipTool, - " ***** Test Step 74 : Step 6r: Read the optional command(MoveColorTemperature) in AcceptedCommandList\n"); + " ***** Test Step 76 : Step 6r: Read the optional command(MoveColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C4b.Rsp")) { NextTest(); return; } - err = TestStep6rReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_74(); + err = TestStep6rReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_76(); break; - case 75: + case 77: ChipLogProgress(chipTool, - " ***** Test Step 75 : Step 6s: Read the optional command(StepColorTemperature) in AcceptedCommandList\n"); + " ***** Test Step 77 : Step 6s: Read the optional command(StepColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C4c.Rsp")) { NextTest(); return; } - err = TestStep6sReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_75(); + err = TestStep6sReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_77(); break; - case 76: - ChipLogProgress(chipTool, " ***** Test Step 76 : Step 7: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_76(); + case 78: + ChipLogProgress(chipTool, " ***** Test Step 78 : Step 7: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_78(); break; } @@ -9460,6 +9948,12 @@ class Test_TC_CC_1_1 : public TestCommandBridge { case 76: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 77: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 78: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -9473,7 +9967,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 77; + const uint16_t mTestCount = 79; chip::Optional mNodeId; chip::Optional mCluster; @@ -9636,6 +10130,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 16394UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -9646,7 +10141,36 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeCurrentHueInAttributeList_9() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_9() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 8UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 15UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 16385UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 16394UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheOptionalAttributeCurrentHueInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9667,7 +10191,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheOptionalAttributeCurrentSaturationInAttributeList_10() + CHIP_ERROR TestStep4cReadTheOptionalAttributeCurrentSaturationInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9688,7 +10212,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadTheOptionalAttributeRemainingTimeInAttributeList_11() + CHIP_ERROR TestStep4dReadTheOptionalAttributeRemainingTimeInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9709,7 +10233,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadTheOptionalAttributeCurrentXInAttributeList_12() + CHIP_ERROR TestStep4eReadTheOptionalAttributeCurrentXInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9730,7 +10254,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalAttributeCurrentYInAttributeList_13() + CHIP_ERROR TestStep4fReadTheOptionalAttributeCurrentYInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9751,7 +10275,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gReadTheOptionalAttributeDriftCompensationInAttributeList_14() + CHIP_ERROR TestStep4gReadTheOptionalAttributeDriftCompensationInAttributeList_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9772,7 +10296,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalAttributeCompensationTextInAttributeList_15() + CHIP_ERROR TestStep4hReadTheOptionalAttributeCompensationTextInAttributeList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9793,7 +10317,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4iReadTheOptionalAttributeColorTemperatureMiredsInAttributeList_16() + CHIP_ERROR TestStep4iReadTheOptionalAttributeColorTemperatureMiredsInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9814,7 +10338,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalAttributeNumberOfPrimariesInAttributeList_17() + CHIP_ERROR TestStep4jReadTheOptionalAttributeNumberOfPrimariesInAttributeList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9835,7 +10359,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kReadTheOptionalAttributePrimary1XInAttributeList_18() + CHIP_ERROR TestStep4kReadTheOptionalAttributePrimary1XInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9856,7 +10380,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4lReadTheOptionalAttributePrimary1YInAttributeList_19() + CHIP_ERROR TestStep4lReadTheOptionalAttributePrimary1YInAttributeList_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9877,7 +10401,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4mReadTheOptionalAttributePrimary1IntensityInAttributeList_20() + CHIP_ERROR TestStep4mReadTheOptionalAttributePrimary1IntensityInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9898,7 +10422,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4nReadTheOptionalAttributePrimary2XInAttributeList_21() + CHIP_ERROR TestStep4nReadTheOptionalAttributePrimary2XInAttributeList_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9919,7 +10443,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4oReadTheOptionalAttributePrimary2YInAttributeList_22() + CHIP_ERROR TestStep4oReadTheOptionalAttributePrimary2YInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9940,7 +10464,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4pReadTheOptionalAttributePrimary2IntensityInAttributeList_23() + CHIP_ERROR TestStep4pReadTheOptionalAttributePrimary2IntensityInAttributeList_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9961,7 +10485,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4qReadTheOptionalAttributePrimary3XInAttributeList_24() + CHIP_ERROR TestStep4qReadTheOptionalAttributePrimary3XInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -9982,7 +10506,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4rReadTheOptionalAttributePrimary3YInAttributeList_25() + CHIP_ERROR TestStep4rReadTheOptionalAttributePrimary3YInAttributeList_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10003,7 +10527,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4sReadTheOptionalAttributePrimary3IntensityInAttributeList_26() + CHIP_ERROR TestStep4sReadTheOptionalAttributePrimary3IntensityInAttributeList_27() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10024,7 +10548,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4tReadTheOptionalAttributePrimary4XInAttributeList_27() + CHIP_ERROR TestStep4tReadTheOptionalAttributePrimary4XInAttributeList_28() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10045,7 +10569,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4uReadTheOptionalAttributePrimary4YInAttributeList_28() + CHIP_ERROR TestStep4uReadTheOptionalAttributePrimary4YInAttributeList_29() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10066,7 +10590,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4vReadTheOptionalAttributePrimary4IntensityInAttributeList_29() + CHIP_ERROR TestStep4vReadTheOptionalAttributePrimary4IntensityInAttributeList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10087,7 +10611,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4wReadTheOptionalAttributePrimary5XInAttributeList_30() + CHIP_ERROR TestStep4wReadTheOptionalAttributePrimary5XInAttributeList_31() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10108,7 +10632,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4xReadTheOptionalAttributePrimary5YInAttributeList_31() + CHIP_ERROR TestStep4xReadTheOptionalAttributePrimary5YInAttributeList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10129,7 +10653,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4yReadTheOptionalAttributePrimary5IntensityInAttributeList_32() + CHIP_ERROR TestStep4yReadTheOptionalAttributePrimary5IntensityInAttributeList_33() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10150,7 +10674,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4zReadTheOptionalAttributePrimary6XInAttributeList_33() + CHIP_ERROR TestStep4zReadTheOptionalAttributePrimary6XInAttributeList_34() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10171,7 +10695,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a1ReadTheOptionalAttributePrimary6YInAttributeList_34() + CHIP_ERROR TestStep4a1ReadTheOptionalAttributePrimary6YInAttributeList_35() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10192,7 +10716,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a2ReadTheOptionalAttributePrimary6IntensityInAttributeList_35() + CHIP_ERROR TestStep4a2ReadTheOptionalAttributePrimary6IntensityInAttributeList_36() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10213,7 +10737,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a3ReadTheOptionalAttributeWhitePointXInAttributeList_36() + CHIP_ERROR TestStep4a3ReadTheOptionalAttributeWhitePointXInAttributeList_37() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10234,7 +10758,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a4ReadTheOptionalAttributeWhitePointYInAttributeList_37() + CHIP_ERROR TestStep4a4ReadTheOptionalAttributeWhitePointYInAttributeList_38() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10255,7 +10779,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a5ReadTheOptionalAttributeColorPointRXInAttributeList_38() + CHIP_ERROR TestStep4a5ReadTheOptionalAttributeColorPointRXInAttributeList_39() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10276,7 +10800,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a6ReadTheOptionalAttributeColorPointRYInAttributeList_39() + CHIP_ERROR TestStep4a6ReadTheOptionalAttributeColorPointRYInAttributeList_40() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10297,7 +10821,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a7ReadTheOptionalAttributeColorPointRIntensityInAttributeList_40() + CHIP_ERROR TestStep4a7ReadTheOptionalAttributeColorPointRIntensityInAttributeList_41() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10318,7 +10842,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a8ReadTheOptionalAttributeColorPointGXInAttributeList_41() + CHIP_ERROR TestStep4a8ReadTheOptionalAttributeColorPointGXInAttributeList_42() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10339,7 +10863,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a9ReadTheOptionalAttributeColorPointGYInAttributeList_42() + CHIP_ERROR TestStep4a9ReadTheOptionalAttributeColorPointGYInAttributeList_43() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10360,7 +10884,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a10ReadTheOptionalAttributeColorPointGIntensityInAttributeList_43() + CHIP_ERROR TestStep4a10ReadTheOptionalAttributeColorPointGIntensityInAttributeList_44() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10381,7 +10905,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a11ReadTheOptionalAttributeColorPointBXInAttributeList_44() + CHIP_ERROR TestStep4a11ReadTheOptionalAttributeColorPointBXInAttributeList_45() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10402,7 +10926,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a12ReadTheOptionalAttributeColorPointBYInAttributeList_45() + CHIP_ERROR TestStep4a12ReadTheOptionalAttributeColorPointBYInAttributeList_46() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10423,7 +10947,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a13ReadTheOptionalAttributeColorPointBIntensityInAttributeList_46() + CHIP_ERROR TestStep4a13ReadTheOptionalAttributeColorPointBIntensityInAttributeList_47() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10444,7 +10968,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a14ReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_47() + CHIP_ERROR TestStep4a14ReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_48() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10465,7 +10989,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a15ReadTheOptionalAttributeColorLoopActiveInAttributeList_48() + CHIP_ERROR TestStep4a15ReadTheOptionalAttributeColorLoopActiveInAttributeList_49() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10486,7 +11010,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a16ReadTheOptionalAttributeColorLoopDirectionInAttributeList_49() + CHIP_ERROR TestStep4a16ReadTheOptionalAttributeColorLoopDirectionInAttributeList_50() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10507,7 +11031,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a17ReadTheOptionalAttributeColorLoopTimeInAttributeList_50() + CHIP_ERROR TestStep4a17ReadTheOptionalAttributeColorLoopTimeInAttributeList_51() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10528,7 +11052,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a18ReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_51() + CHIP_ERROR TestStep4a18ReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_52() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10549,7 +11073,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a19ReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_52() + CHIP_ERROR TestStep4a19ReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_53() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10570,7 +11094,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a20ReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_53() + CHIP_ERROR TestStep4a20ReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_54() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10591,7 +11115,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a21ReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_54() + CHIP_ERROR TestStep4a21ReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_55() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10612,7 +11136,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a22ReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_55() + CHIP_ERROR TestStep4a22ReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_56() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10633,7 +11157,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a23ReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_56() + CHIP_ERROR TestStep4a23ReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_57() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10654,7 +11178,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6aReadTheOptionalCommandMoveToHueInAcceptedCommandList_57() + CHIP_ERROR TestStep6aReadTheOptionalCommandMoveToHueInAcceptedCommandList_59() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10675,7 +11199,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bReadTheOptionalCommandMoveHueInAcceptedCommandList_58() + CHIP_ERROR TestStep6bReadTheOptionalCommandMoveHueInAcceptedCommandList_60() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10696,7 +11220,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6cReadTheOptionalCommandStepHueInAcceptedCommandList_59() + CHIP_ERROR TestStep6cReadTheOptionalCommandStepHueInAcceptedCommandList_61() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10717,7 +11241,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6dReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_60() + CHIP_ERROR TestStep6dReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_62() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10738,7 +11262,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6eReadTheOptionalCommandMoveSaturationInAcceptedCommandList_61() + CHIP_ERROR TestStep6eReadTheOptionalCommandMoveSaturationInAcceptedCommandList_63() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10759,7 +11283,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6fReadTheOptionalCommandStepSaturationInAcceptedCommandList_62() + CHIP_ERROR TestStep6fReadTheOptionalCommandStepSaturationInAcceptedCommandList_64() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10780,7 +11304,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6gReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_63() + CHIP_ERROR TestStep6gReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_65() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10801,7 +11325,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6hReadTheOptionalCommandMoveToColorInAcceptedCommandList_64() + CHIP_ERROR TestStep6hReadTheOptionalCommandMoveToColorInAcceptedCommandList_66() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10822,7 +11346,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6iReadTheOptionalCommandMoveColorInAcceptedCommandList_65() + CHIP_ERROR TestStep6iReadTheOptionalCommandMoveColorInAcceptedCommandList_67() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10843,7 +11367,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6jReadTheOptionalCommandStepColorInAcceptedCommandList_66() + CHIP_ERROR TestStep6jReadTheOptionalCommandStepColorInAcceptedCommandList_68() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10864,7 +11388,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6kReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_67() + CHIP_ERROR TestStep6kReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_69() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10885,7 +11409,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6lReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_68() + CHIP_ERROR TestStep6lReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_70() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10906,7 +11430,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6mReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_69() + CHIP_ERROR TestStep6mReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_71() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10927,7 +11451,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6nReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_70() + CHIP_ERROR TestStep6nReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_72() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10948,7 +11472,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6oReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_71() + CHIP_ERROR TestStep6oReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_73() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10969,7 +11493,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6pReadTheOptionalCommandColorLoopSetInAcceptedCommandList_72() + CHIP_ERROR TestStep6pReadTheOptionalCommandColorLoopSetInAcceptedCommandList_74() { MTRBaseDevice * device = GetDevice("alpha"); @@ -10990,7 +11514,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6qReadTheOptionalCommandStopMoveStepInAcceptedCommandList_73() + CHIP_ERROR TestStep6qReadTheOptionalCommandStopMoveStepInAcceptedCommandList_75() { MTRBaseDevice * device = GetDevice("alpha"); @@ -11011,7 +11535,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6rReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_74() + CHIP_ERROR TestStep6rReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_76() { MTRBaseDevice * device = GetDevice("alpha"); @@ -11032,7 +11556,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6sReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_75() + CHIP_ERROR TestStep6sReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_77() { MTRBaseDevice * device = GetDevice("alpha"); @@ -11053,7 +11577,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_76() + CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_78() { MTRBaseDevice * device = GetDevice("alpha"); @@ -27401,108 +27925,120 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); - if (ShouldSkip("CDOCONC.S.A0007 && CDOCONC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip(" !PICS_EVENT_LIST_ENABLED ")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16(); + err = TestStep4aReadTheGlobalAttributeAttributeList_16(); break; case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); + if (ShouldSkip("CDOCONC.S.A0007 && CDOCONC.S.F00")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17(); + break; + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " + " ***** Test Step 18 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " "CDOCONC.S.A0007 is not set\n"); if (ShouldSkip(" !CDOCONC.S.A0007 ")) { NextTest(); return; } - err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenCdoconcsa0007IsNotSet_17(); + err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenCdoconcsa0007IsNotSet_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " + " ***** Test Step 19 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " "MaxMeasuredValue and Measurement Unit in AttributeList\n"); if (ShouldSkip("CDOCONC.S.F00")) { NextTest(); return; } - err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18(); + err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " + " ***** Test Step 20 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " "Uncertainty are excluded from AttributeList when CDOCONC.S.F00 (MEA) is not set\n"); if (ShouldSkip(" !CDOCONC.S.F00 ")) { NextTest(); return; } - err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenCdoconcsf00MeaIsNotSet_19(); + err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenCdoconcsf00MeaIsNotSet_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " + " ***** Test Step 21 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " "PeakMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("CDOCONC.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20(); + err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " + " ***** Test Step 22 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " "AttributeList when CDOCONC.S.F04 (PEA) is not set\n"); if (ShouldSkip(" !CDOCONC.S.F04 ")) { NextTest(); return; } - err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenCdoconcsf04PeaIsNotSet_21(); + err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenCdoconcsf04PeaIsNotSet_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " + " ***** Test Step 23 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " "AverageMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("CDOCONC.S.F05")) { NextTest(); return; } - err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22(); + err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " + " ***** Test Step 24 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " "AttributeList when CDOCONC.S.F05 (AVG) is not set\n"); if (ShouldSkip(" !CDOCONC.S.F05 ")) { NextTest(); return; } - err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenCdoconcsf05AvgIsNotSet_23(); + err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenCdoconcsf05AvgIsNotSet_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); + " ***** Test Step 25 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); if (ShouldSkip("CDOCONC.S.F01")) { NextTest(); return; } - err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24(); + err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4k: Check that LevelValue is excluded from AttributeList when CDOCONC.S.F01 (LEV) is " + " ***** Test Step 26 : Step 4k: Check that LevelValue is excluded from AttributeList when CDOCONC.S.F01 (LEV) is " "not set\n"); if (ShouldSkip(" !CDOCONC.S.F01 ")) { NextTest(); return; } - err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenCdoconcsf01LevIsNotSet_25(); + err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenCdoconcsf01LevIsNotSet_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 27 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -27512,15 +28048,37 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_27(); + err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 29: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 29 : Step 5b: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional " + "values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " + "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " + "(0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test Vendor or " + "invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where " + "XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_30(); + break; + case 31: + ChipLogProgress(chipTool, + " ***** Test Step 31 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -27529,15 +28087,15 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_29(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_32(); break; - case 30: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 30 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 33 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -27546,7 +28104,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33(); break; } @@ -27652,6 +28210,15 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -27665,7 +28232,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 31; + const uint16_t mTestCount = 34; chip::Optional mNodeId; chip::Optional mCluster; @@ -27993,6 +28560,35 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterCarbonDioxideConcentrationMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -28012,7 +28608,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16() + CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28035,7 +28631,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenCdoconcsa0007IsNotSet_17() + CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenCdoconcsa0007IsNotSet_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28061,7 +28657,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18() + TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28090,7 +28686,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenCdoconcsf00MeaIsNotSet_19() + TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenCdoconcsf00MeaIsNotSet_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28119,7 +28715,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20() + CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28146,7 +28742,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenCdoconcsf04PeaIsNotSet_21() + TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenCdoconcsf04PeaIsNotSet_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28172,7 +28768,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22() + CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28199,7 +28795,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenCdoconcsf05AvgIsNotSet_23() + TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenCdoconcsf05AvgIsNotSet_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28225,7 +28821,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24() + CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28248,7 +28844,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenCdoconcsf01LevIsNotSet_25() + CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenCdoconcsf01LevIsNotSet_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28273,7 +28869,18 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26() + TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5bThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -28283,7 +28890,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_27() + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28310,7 +28917,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -28320,7 +28927,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_29() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -28347,7 +28954,7 @@ class Test_TC_CDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -28985,108 +29592,120 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); - if (ShouldSkip("CMOCONC.S.A0007 && CMOCONC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16(); + err = TestStep4aReadTheGlobalAttributeAttributeList_16(); break; case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); + if (ShouldSkip("CMOCONC.S.A0007 && CMOCONC.S.F00")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17(); + break; + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " + " ***** Test Step 18 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " "CMOCONC.S.A0007 is not set\n"); if (ShouldSkip(" !CMOCONC.S.A0007 ")) { NextTest(); return; } - err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenCmoconcsa0007IsNotSet_17(); + err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenCmoconcsa0007IsNotSet_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " + " ***** Test Step 19 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " "MaxMeasuredValue and Measurement Unit in AttributeList\n"); if (ShouldSkip("CMOCONC.S.F00")) { NextTest(); return; } - err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18(); + err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " + " ***** Test Step 20 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " "Uncertainty are excluded from AttributeList when CMOCONC.S.F00 (MEA) is not set\n"); if (ShouldSkip(" !CMOCONC.S.F00 ")) { NextTest(); return; } - err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenCmoconcsf00MeaIsNotSet_19(); + err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenCmoconcsf00MeaIsNotSet_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " + " ***** Test Step 21 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " "PeakMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("CMOCONC.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20(); + err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " + " ***** Test Step 22 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " "AttributeList when CMOCONC.S.F04 (PEA) is not set\n"); if (ShouldSkip(" !CMOCONC.S.F04 ")) { NextTest(); return; } - err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenCmoconcsf04PeaIsNotSet_21(); + err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenCmoconcsf04PeaIsNotSet_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " + " ***** Test Step 23 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " "AverageMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("CMOCONC.S.F05")) { NextTest(); return; } - err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22(); + err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " + " ***** Test Step 24 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " "AttributeList when CMOCONC.S.F05 (AVG) is not set\n"); if (ShouldSkip(" !CMOCONC.S.F05 ")) { NextTest(); return; } - err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenCmoconcsf05AvgIsNotSet_23(); + err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenCmoconcsf05AvgIsNotSet_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); + " ***** Test Step 25 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); if (ShouldSkip("CMOCONC.S.F01")) { NextTest(); return; } - err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24(); + err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4k: Check that LevelValue is excluded from AttributeList when CMOCONC.S.F01 (LEV) is " + " ***** Test Step 26 : Step 4k: Check that LevelValue is excluded from AttributeList when CMOCONC.S.F01 (LEV) is " "not set\n"); if (ShouldSkip(" !CMOCONC.S.F01 ")) { NextTest(); return; } - err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenCmoconcsf01LevIsNotSet_25(); + err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenCmoconcsf01LevIsNotSet_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 27 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -29096,15 +29715,37 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_27(); + err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 29: + ChipLogProgress(chipTool, + " ***** Test Step 29 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_30(); + break; + case 31: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 31 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -29113,15 +29754,15 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_29(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_32(); break; - case 30: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 30 : Step 7b: TH1 reads GeneratedCommandList from DUT. 1.The list MAY contain values in the " + " ***** Test Step 33 : Step 7b: TH1 reads GeneratedCommandList from DUT. 1.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " "(0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or " "invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where " @@ -29130,7 +29771,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bTh1ReadsGeneratedCommandListFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30(); + err = TestStep7bTh1ReadsGeneratedCommandListFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33(); break; } @@ -29236,6 +29877,15 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -29249,7 +29899,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 31; + const uint16_t mTestCount = 34; chip::Optional mNodeId; chip::Optional mCluster; @@ -29586,6 +30236,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -29596,7 +30247,35 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterCarbonMonoxideConcentrationMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29619,7 +30298,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenCmoconcsa0007IsNotSet_17() + CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenCmoconcsa0007IsNotSet_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29645,7 +30324,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18() + TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29674,7 +30353,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenCmoconcsf00MeaIsNotSet_19() + TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenCmoconcsf00MeaIsNotSet_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29703,7 +30382,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20() + CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29730,7 +30409,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenCmoconcsf04PeaIsNotSet_21() + TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenCmoconcsf04PeaIsNotSet_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29756,7 +30435,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22() + CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29783,7 +30462,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenCmoconcsf05AvgIsNotSet_23() + TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenCmoconcsf05AvgIsNotSet_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29809,7 +30488,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24() + CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29832,7 +30511,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenCmoconcsf01LevIsNotSet_25() + CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenCmoconcsf01LevIsNotSet_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29857,7 +30536,18 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26() + TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -29867,7 +30557,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_27() + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29894,7 +30584,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -29904,7 +30594,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_29() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -29931,7 +30621,7 @@ class Test_TC_CMOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bTh1ReadsGeneratedCommandListFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30() + TestStep7bTh1ReadsGeneratedCommandListFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -30569,108 +31259,120 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); - if (ShouldSkip("FLDCONC.S.A0007 && FLDCONC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16(); + err = TestStep4aReadTheGlobalAttributeAttributeList_16(); break; case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); + if (ShouldSkip("FLDCONC.S.A0007 && FLDCONC.S.F00")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17(); + break; + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " + " ***** Test Step 18 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " "FLDCONC.S.A0007 is not set\n"); if (ShouldSkip(" !FLDCONC.S.A0007 ")) { NextTest(); return; } - err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenFldconcsa0007IsNotSet_17(); + err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenFldconcsa0007IsNotSet_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " + " ***** Test Step 19 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " "MaxMeasuredValue and Measurement Unit in AttributeList\n"); if (ShouldSkip("FLDCONC.S.F00")) { NextTest(); return; } - err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18(); + err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " + " ***** Test Step 20 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " "Uncertainty are excluded from AttributeList when FLDCONC.S.F00 (MEA) is not set\n"); if (ShouldSkip(" !FLDCONC.S.F00 ")) { NextTest(); return; } - err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenFldconcsf00MeaIsNotSet_19(); + err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenFldconcsf00MeaIsNotSet_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " + " ***** Test Step 21 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " "PeakMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("FLDCONC.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20(); + err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " + " ***** Test Step 22 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " "AttributeList when FLDCONC.S.F04 (PEA) is not set\n"); if (ShouldSkip(" !FLDCONC.S.F04 ")) { NextTest(); return; } - err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenFldconcsf04PeaIsNotSet_21(); + err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenFldconcsf04PeaIsNotSet_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " + " ***** Test Step 23 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " "AverageMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("FLDCONC.S.F05")) { NextTest(); return; } - err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22(); + err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " + " ***** Test Step 24 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " "AttributeList when FLDCONC.S.F05 (AVG) is not set\n"); if (ShouldSkip(" !FLDCONC.S.F05 ")) { NextTest(); return; } - err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenFldconcsf05AvgIsNotSet_23(); + err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenFldconcsf05AvgIsNotSet_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); + " ***** Test Step 25 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); if (ShouldSkip("FLDCONC.S.F01")) { NextTest(); return; } - err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24(); + err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4k: Check that LevelValue is excluded from AttributeList when FLDCONC.S.F01 (LEV) is " + " ***** Test Step 26 : Step 4k: Check that LevelValue is excluded from AttributeList when FLDCONC.S.F01 (LEV) is " "not set\n"); if (ShouldSkip(" !FLDCONC.S.F01 ")) { NextTest(); return; } - err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenFldconcsf01LevIsNotSet_25(); + err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenFldconcsf01LevIsNotSet_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 27 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -30680,15 +31382,37 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_27(); + err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 29: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 29 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_30(); + break; + case 31: + ChipLogProgress(chipTool, + " ***** Test Step 31 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -30697,15 +31421,15 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 7: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_29(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 7: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_32(); break; - case 30: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 30 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 33 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -30714,7 +31438,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33(); break; } @@ -30820,6 +31544,15 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -30833,7 +31566,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 31; + const uint16_t mTestCount = 34; chip::Optional mNodeId; chip::Optional mCluster; @@ -31170,6 +31903,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -31180,7 +31914,35 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterFormaldehydeConcentrationMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31203,7 +31965,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenFldconcsa0007IsNotSet_17() + CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenFldconcsa0007IsNotSet_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31229,7 +31991,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18() + TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31258,7 +32020,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenFldconcsf00MeaIsNotSet_19() + TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenFldconcsf00MeaIsNotSet_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31287,7 +32049,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20() + CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31314,7 +32076,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenFldconcsf04PeaIsNotSet_21() + TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenFldconcsf04PeaIsNotSet_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31340,7 +32102,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22() + CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31367,7 +32129,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenFldconcsf05AvgIsNotSet_23() + TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenFldconcsf05AvgIsNotSet_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31393,7 +32155,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24() + CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31416,7 +32178,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenFldconcsf01LevIsNotSet_25() + CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenFldconcsf01LevIsNotSet_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31441,7 +32203,18 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26() + TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -31451,7 +32224,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_27() + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31478,7 +32251,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -31488,7 +32261,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_29() + CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -31515,7 +32288,7 @@ class Test_TC_FLDCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30() + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -32153,108 +32926,120 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); - if (ShouldSkip("NDOCONC.S.A0007 && NDOCONC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16(); + err = TestStep4aReadTheGlobalAttributeAttributeList_16(); break; case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); + if (ShouldSkip("NDOCONC.S.A0007 && NDOCONC.S.F00")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17(); + break; + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " + " ***** Test Step 18 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " "NDOCONC.S.A0007 is not set\n"); if (ShouldSkip(" !NDOCONC.S.A0007 ")) { NextTest(); return; } - err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenNdoconcsa0007IsNotSet_17(); + err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenNdoconcsa0007IsNotSet_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " + " ***** Test Step 19 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " "MaxMeasuredValue and Measurement Unit in AttributeList\n"); if (ShouldSkip("NDOCONC.S.F00")) { NextTest(); return; } - err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18(); + err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " + " ***** Test Step 20 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " "Uncertainty are excluded from AttributeList when NDOCONC.S.F00 (MEA) is not set\n"); if (ShouldSkip(" !NDOCONC.S.F00 ")) { NextTest(); return; } - err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenNdoconcsf00MeaIsNotSet_19(); + err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenNdoconcsf00MeaIsNotSet_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " + " ***** Test Step 21 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " "PeakMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("NDOCONC.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20(); + err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " + " ***** Test Step 22 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " "AttributeList when NDOCONC.S.F04 (PEA) is not set\n"); if (ShouldSkip(" !NDOCONC.S.F04 ")) { NextTest(); return; } - err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenNdoconcsf04PeaIsNotSet_21(); + err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenNdoconcsf04PeaIsNotSet_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " + " ***** Test Step 23 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " "AverageMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("NDOCONC.S.F05")) { NextTest(); return; } - err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22(); + err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " + " ***** Test Step 24 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " "AttributeList when NDOCONC.S.F05 (AVG) is not set\n"); if (ShouldSkip(" !NDOCONC.S.F05 ")) { NextTest(); return; } - err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenNdoconcsf05AvgIsNotSet_23(); + err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenNdoconcsf05AvgIsNotSet_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); + " ***** Test Step 25 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); if (ShouldSkip("NDOCONC.S.F01")) { NextTest(); return; } - err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24(); + err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4k: Check that LevelValue is excluded from AttributeList when NDOCONC.S.F01 (LEV) is " + " ***** Test Step 26 : Step 4k: Check that LevelValue is excluded from AttributeList when NDOCONC.S.F01 (LEV) is " "not set\n"); if (ShouldSkip(" !NDOCONC.S.F01 ")) { NextTest(); return; } - err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenNdoconcsf01LevIsNotSet_25(); + err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenNdoconcsf01LevIsNotSet_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 27 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -32264,15 +33049,37 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_27(); + err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 29: + ChipLogProgress(chipTool, + " ***** Test Step 29 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_30(); + break; + case 31: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 31 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -32282,15 +33089,15 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_29(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_32(); break; - case 30: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 30 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 33 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -32299,7 +33106,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33(); break; } @@ -32405,6 +33212,15 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -32418,7 +33234,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 31; + const uint16_t mTestCount = 34; chip::Optional mNodeId; chip::Optional mCluster; @@ -32755,6 +33571,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -32765,7 +33582,35 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterNitrogenDioxideConcentrationMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -32788,7 +33633,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenNdoconcsa0007IsNotSet_17() + CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenNdoconcsa0007IsNotSet_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -32814,7 +33659,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18() + TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -32843,7 +33688,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenNdoconcsf00MeaIsNotSet_19() + TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenNdoconcsf00MeaIsNotSet_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -32872,7 +33717,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20() + CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -32899,7 +33744,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenNdoconcsf04PeaIsNotSet_21() + TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenNdoconcsf04PeaIsNotSet_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -32925,7 +33770,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22() + CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -32952,7 +33797,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenNdoconcsf05AvgIsNotSet_23() + TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenNdoconcsf05AvgIsNotSet_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -32978,7 +33823,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24() + CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -33001,7 +33846,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenNdoconcsf01LevIsNotSet_25() + CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenNdoconcsf01LevIsNotSet_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -33026,7 +33871,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26() + TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -33036,7 +33881,18 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_27() + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -33063,7 +33919,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -33073,7 +33929,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_29() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -33100,7 +33956,7 @@ class Test_TC_NDOCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -33734,108 +34590,120 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); - if (ShouldSkip("OZCONC.S.A0007 && OZCONC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16(); + err = TestStep4aReadTheGlobalAttributeAttributeList_16(); break; case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); + if (ShouldSkip("OZCONC.S.A0007 && OZCONC.S.F00")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17(); + break; + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " + " ***** Test Step 18 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " "OZCONC.S.A0007 is not set\n"); if (ShouldSkip(" !OZCONC.S.A0007 ")) { NextTest(); return; } - err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenOzconcsa0007IsNotSet_17(); + err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenOzconcsa0007IsNotSet_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " + " ***** Test Step 19 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " "MaxMeasuredValue and Measurement Unit in AttributeList\n"); if (ShouldSkip("OZCONC.S.F00")) { NextTest(); return; } - err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18(); + err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " + " ***** Test Step 20 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " "Uncertainty are excluded from AttributeList when OZCONC.S.F00 (MEA) is not set\n"); if (ShouldSkip(" !OZCONC.S.F00 ")) { NextTest(); return; } - err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenOzconcsf00MeaIsNotSet_19(); + err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenOzconcsf00MeaIsNotSet_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " + " ***** Test Step 21 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " "PeakMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("OZCONC.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20(); + err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " + " ***** Test Step 22 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " "AttributeList when OZCONC.S.F04 (PEA) is not set\n"); if (ShouldSkip(" !OZCONC.S.F04 ")) { NextTest(); return; } - err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenOzconcsf04PeaIsNotSet_21(); + err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenOzconcsf04PeaIsNotSet_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " + " ***** Test Step 23 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " "AverageMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("OZCONC.S.F05")) { NextTest(); return; } - err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22(); + err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " + " ***** Test Step 24 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " "AttributeList when OZCONC.S.F05 (AVG) is not set\n"); if (ShouldSkip(" !OZCONC.S.F05 ")) { NextTest(); return; } - err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenOzconcsf05AvgIsNotSet_23(); + err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenOzconcsf05AvgIsNotSet_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); + " ***** Test Step 25 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); if (ShouldSkip("OZCONC.S.F01")) { NextTest(); return; } - err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24(); + err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4k: Check that LevelValue is excluded from AttributeList when OZCONC.S.F01 (LEV) is " + " ***** Test Step 26 : Step 4k: Check that LevelValue is excluded from AttributeList when OZCONC.S.F01 (LEV) is " "not set\n"); if (ShouldSkip(" !OZCONC.S.F01 ")) { NextTest(); return; } - err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenOzconcsf01LevIsNotSet_25(); + err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenOzconcsf01LevIsNotSet_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list MAY contain values in the " + " ***** Test Step 27 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range " "(0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or " "invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -33844,15 +34712,37 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4lThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_27(); + err = TestStep4lThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 29: + ChipLogProgress(chipTool, + " ***** Test Step 29 : Step 5b: Read the global attribute: EventList. 1.The list SHALL NOT contain any additional " + "values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. The list " + "MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX " + "is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any " + "values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - " + "0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bReadTheGlobalAttributeEventList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_30(); + break; + case 31: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 31 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -33861,15 +34751,15 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_29(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_32(); break; - case 30: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 30 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 33 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -33878,7 +34768,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33(); break; } @@ -33984,6 +34874,15 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -33997,7 +34896,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 31; + const uint16_t mTestCount = 34; chip::Optional mNodeId; chip::Optional mCluster; @@ -34334,6 +35233,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -34344,7 +35244,35 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterOzoneConcentrationMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34367,7 +35295,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenOzconcsa0007IsNotSet_17() + CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenOzconcsa0007IsNotSet_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34393,7 +35321,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18() + TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34422,7 +35350,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenOzconcsf00MeaIsNotSet_19() + TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenOzconcsf00MeaIsNotSet_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34451,7 +35379,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20() + CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34477,7 +35405,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenOzconcsf04PeaIsNotSet_21() + CHIP_ERROR TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenOzconcsf04PeaIsNotSet_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34503,7 +35431,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22() + CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34530,7 +35458,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenOzconcsf05AvgIsNotSet_23() + TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenOzconcsf05AvgIsNotSet_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34556,7 +35484,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24() + CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34579,7 +35507,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenOzconcsf01LevIsNotSet_25() + CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenOzconcsf01LevIsNotSet_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34604,7 +35532,18 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4lThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26() + TestStep4lThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5bReadTheGlobalAttributeEventList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -34614,7 +35553,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_27() + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34641,7 +35580,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -34651,7 +35590,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_29() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -34678,7 +35617,7 @@ class Test_TC_OZCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -35316,108 +36255,120 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); - if (ShouldSkip("PMHCONC.S.A0007 && PMHCONC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16(); + err = TestStep4aReadTheGlobalAttributeAttributeList_16(); break; case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); + if (ShouldSkip("PMHCONC.S.A0007 && PMHCONC.S.F00")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17(); + break; + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " + " ***** Test Step 18 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " "PMHCONC.S.A0007 is not set\n"); if (ShouldSkip(" !PMHCONC.S.A0007 ")) { NextTest(); return; } - err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmhconcsa0007IsNotSet_17(); + err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmhconcsa0007IsNotSet_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " + " ***** Test Step 19 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " "MaxMeasuredValue and Measurement Unit in AttributeList\n"); if (ShouldSkip("PMHCONC.S.F00")) { NextTest(); return; } - err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18(); + err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " + " ***** Test Step 20 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " "Uncertainty are excluded from AttributeList when PMHCONC.S.F00 (MEA) is not set\n"); if (ShouldSkip(" !PMHCONC.S.F00 ")) { NextTest(); return; } - err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmhconcsf00MeaIsNotSet_19(); + err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmhconcsf00MeaIsNotSet_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " + " ***** Test Step 21 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " "PeakMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("PMHCONC.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20(); + err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " + " ***** Test Step 22 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " "AttributeList when PMHCONC.S.F04 (PEA) is not set\n"); if (ShouldSkip(" !PMHCONC.S.F04 ")) { NextTest(); return; } - err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmhconcsf04PeaIsNotSet_21(); + err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmhconcsf04PeaIsNotSet_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " + " ***** Test Step 23 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " "AverageMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("PMHCONC.S.F05")) { NextTest(); return; } - err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22(); + err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " + " ***** Test Step 24 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " "AttributeList when PMHCONC.S.F05 (AVG) is not set\n"); if (ShouldSkip(" !PMHCONC.S.F05 ")) { NextTest(); return; } - err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmhconcsf05AvgIsNotSet_23(); + err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmhconcsf05AvgIsNotSet_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); + " ***** Test Step 25 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); if (ShouldSkip("PMHCONC.S.F01")) { NextTest(); return; } - err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24(); + err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4k: Check that LevelValue is excluded from AttributeList when PMHCONC.S.F01 (LEV) is " + " ***** Test Step 26 : Step 4k: Check that LevelValue is excluded from AttributeList when PMHCONC.S.F01 (LEV) is " "not set\n"); if (ShouldSkip(" !PMHCONC.S.F01 ")) { NextTest(); return; } - err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmhconcsf01LevIsNotSet_25(); + err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmhconcsf01LevIsNotSet_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 27 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -35427,15 +36378,37 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_27(); + err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 29: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 29 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_30(); + break; + case 31: + ChipLogProgress(chipTool, + " ***** Test Step 31 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -35444,15 +36417,15 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_29(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_32(); break; - case 30: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 30 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 33 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -35461,7 +36434,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33(); break; } @@ -35567,6 +36540,15 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -35580,7 +36562,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 31; + const uint16_t mTestCount = 34; chip::Optional mNodeId; chip::Optional mCluster; @@ -35908,6 +36890,35 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterPM1ConcentrationMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -35927,7 +36938,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16() + CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -35950,7 +36961,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmhconcsa0007IsNotSet_17() + CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmhconcsa0007IsNotSet_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -35976,7 +36987,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18() + TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -36005,7 +37016,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmhconcsf00MeaIsNotSet_19() + TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmhconcsf00MeaIsNotSet_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -36034,7 +37045,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20() + CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -36061,7 +37072,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmhconcsf04PeaIsNotSet_21() + TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmhconcsf04PeaIsNotSet_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -36087,7 +37098,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22() + CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -36114,7 +37125,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmhconcsf05AvgIsNotSet_23() + TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmhconcsf05AvgIsNotSet_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -36140,7 +37151,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24() + CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -36163,7 +37174,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmhconcsf01LevIsNotSet_25() + CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmhconcsf01LevIsNotSet_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -36188,7 +37199,18 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26() + TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -36198,7 +37220,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_27() + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -36225,7 +37247,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -36235,7 +37257,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_29() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -36262,7 +37284,7 @@ class Test_TC_PMHCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -36900,108 +37922,120 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); - if (ShouldSkip("PMICONC.S.A0007 && PMICONC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16(); + err = TestStep4aReadTheGlobalAttributeAttributeList_16(); break; case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); + if (ShouldSkip("PMICONC.S.A0007 && PMICONC.S.F00")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17(); + break; + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " + " ***** Test Step 18 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " "PMICONC.S.A0007 is not set\n"); if (ShouldSkip(" !PMICONC.S.A0007 ")) { NextTest(); return; } - err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmiconcsa0007IsNotSet_17(); + err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmiconcsa0007IsNotSet_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " + " ***** Test Step 19 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " "MaxMeasuredValue and Measurement Unit in AttributeList\n"); if (ShouldSkip("PMICONC.S.F00")) { NextTest(); return; } - err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18(); + err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " + " ***** Test Step 20 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " "Uncertainty are excluded from AttributeList when PMICONC.S.F00 (MEA) is not set\n"); if (ShouldSkip(" !PMICONC.S.F00 ")) { NextTest(); return; } - err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmiconcsf00MeaIsNotSet_19(); + err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmiconcsf00MeaIsNotSet_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " + " ***** Test Step 21 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " "PeakMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("PMICONC.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20(); + err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " + " ***** Test Step 22 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " "AttributeList when PMICONC.S.F04 (PEA) is not set\n"); if (ShouldSkip(" !PMICONC.S.F04 ")) { NextTest(); return; } - err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmiconcsf04PeaIsNotSet_21(); + err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmiconcsf04PeaIsNotSet_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " + " ***** Test Step 23 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " "AverageMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("PMICONC.S.F05")) { NextTest(); return; } - err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22(); + err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " + " ***** Test Step 24 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " "AttributeList when PMICONC.S.F05 (AVG) is not set\n"); if (ShouldSkip(" !PMICONC.S.F05 ")) { NextTest(); return; } - err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmiconcsf05AvgIsNotSet_23(); + err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmiconcsf05AvgIsNotSet_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); + " ***** Test Step 25 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); if (ShouldSkip("PMICONC.S.F01")) { NextTest(); return; } - err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24(); + err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4k: Check that LevelValue is excluded from AttributeList when PMICONC.S.F01 (LEV) is " + " ***** Test Step 26 : Step 4k: Check that LevelValue is excluded from AttributeList when PMICONC.S.F01 (LEV) is " "not set\n"); if (ShouldSkip(" !PMICONC.S.F01 ")) { NextTest(); return; } - err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmiconcsf01LevIsNotSet_25(); + err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmiconcsf01LevIsNotSet_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 27 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -37011,15 +38045,37 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_27(); + err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 29: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 29 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_30(); + break; + case 31: + ChipLogProgress(chipTool, + " ***** Test Step 31 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -37028,15 +38084,15 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 7b: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7bReadTheGlobalAttributeGeneratedCommandList_29(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 7b: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7bReadTheGlobalAttributeGeneratedCommandList_32(); break; - case 30: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 30 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 33 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -37045,7 +38101,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33(); break; } @@ -37151,6 +38207,15 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -37164,7 +38229,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 31; + const uint16_t mTestCount = 34; chip::Optional mNodeId; chip::Optional mCluster; @@ -37492,6 +38557,35 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterPM25ConcentrationMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -37511,7 +38605,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16() + CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37534,7 +38628,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmiconcsa0007IsNotSet_17() + CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmiconcsa0007IsNotSet_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37560,7 +38654,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18() + TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37589,7 +38683,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmiconcsf00MeaIsNotSet_19() + TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmiconcsf00MeaIsNotSet_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37618,7 +38712,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20() + CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37645,7 +38739,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmiconcsf04PeaIsNotSet_21() + TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmiconcsf04PeaIsNotSet_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37671,7 +38765,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22() + CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37698,7 +38792,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmiconcsf05AvgIsNotSet_23() + TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmiconcsf05AvgIsNotSet_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37724,7 +38818,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24() + CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37747,7 +38841,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmiconcsf01LevIsNotSet_25() + CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmiconcsf01LevIsNotSet_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37772,7 +38866,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26() + TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -37782,7 +38876,18 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_27() + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37809,7 +38914,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -37819,7 +38924,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7bReadTheGlobalAttributeGeneratedCommandList_29() + CHIP_ERROR TestStep7bReadTheGlobalAttributeGeneratedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -37846,7 +38951,7 @@ class Test_TC_PMICONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -38484,108 +39589,120 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); - if (ShouldSkip("PMKCONC.S.A0007 && PMKCONC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16(); + err = TestStep4aReadTheGlobalAttributeAttributeList_16(); break; case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); + if (ShouldSkip("PMKCONC.S.A0007 && PMKCONC.S.F00")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17(); + break; + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " + " ***** Test Step 18 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " "PMKCONC.S.A0007 is not set\n"); if (ShouldSkip(" !PMKCONC.S.A0007 ")) { NextTest(); return; } - err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmkconcsa0007IsNotSet_17(); + err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmkconcsa0007IsNotSet_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " + " ***** Test Step 19 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " "MaxMeasuredValue and Measurement Unit in AttributeList\n"); if (ShouldSkip("PMKCONC.S.F00")) { NextTest(); return; } - err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18(); + err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " + " ***** Test Step 20 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " "Uncertainty are excluded from AttributeList when PMKCONC.S.F00 (MEA) is not set\n"); if (ShouldSkip(" !PMKCONC.S.F00 ")) { NextTest(); return; } - err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmkconcsf00MeaIsNotSet_19(); + err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmkconcsf00MeaIsNotSet_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " + " ***** Test Step 21 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " "PeakMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("PMKCONC.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20(); + err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " + " ***** Test Step 22 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " "AttributeList when PMKCONC.S.F04 (PEA) is not set\n"); if (ShouldSkip(" !PMKCONC.S.F04 ")) { NextTest(); return; } - err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmkconcsf04PeaIsNotSet_21(); + err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmkconcsf04PeaIsNotSet_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " + " ***** Test Step 23 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " "AverageMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("PMKCONC.S.F05")) { NextTest(); return; } - err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22(); + err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " + " ***** Test Step 24 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " "AttributeList when PMKCONC.S.F05 (AVG) is not set\n"); if (ShouldSkip(" !PMKCONC.S.F05 ")) { NextTest(); return; } - err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmkconcsf05AvgIsNotSet_23(); + err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmkconcsf05AvgIsNotSet_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); + " ***** Test Step 25 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); if (ShouldSkip("PMKCONC.S.F01")) { NextTest(); return; } - err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24(); + err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4k: Check that LevelValue is excluded from AttributeList when PMKCONC.S.F01 (LEV) is " + " ***** Test Step 26 : Step 4k: Check that LevelValue is excluded from AttributeList when PMKCONC.S.F01 (LEV) is " "not set\n"); if (ShouldSkip(" !PMKCONC.S.F01 ")) { NextTest(); return; } - err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmkconcsf01LevIsNotSet_25(); + err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmkconcsf01LevIsNotSet_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 27 : Step 4l: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -38595,15 +39712,37 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_27(); + err = TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 29: + ChipLogProgress(chipTool, + " ***** Test Step 29 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_30(); + break; + case 31: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 31 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -38612,15 +39751,15 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_29(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_32(); break; - case 30: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 30 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 33 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -38629,7 +39768,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33(); break; } @@ -38735,6 +39874,15 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -38748,7 +39896,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 31; + const uint16_t mTestCount = 34; chip::Optional mNodeId; chip::Optional mCluster; @@ -39085,6 +40233,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -39095,7 +40244,35 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterPM10ConcentrationMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39118,7 +40295,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmkconcsa0007IsNotSet_17() + CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenPmkconcsa0007IsNotSet_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39144,7 +40321,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18() + TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39173,7 +40350,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmkconcsf00MeaIsNotSet_19() + TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenPmkconcsf00MeaIsNotSet_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39202,7 +40379,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20() + CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39229,7 +40406,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmkconcsf04PeaIsNotSet_21() + TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenPmkconcsf04PeaIsNotSet_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39255,7 +40432,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22() + CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39282,7 +40459,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmkconcsf05AvgIsNotSet_23() + TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenPmkconcsf05AvgIsNotSet_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39308,7 +40485,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24() + CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39331,7 +40508,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmkconcsf01LevIsNotSet_25() + CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenPmkconcsf01LevIsNotSet_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39356,7 +40533,18 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26() + TestStep4lThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -39366,7 +40554,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_27() + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39393,7 +40581,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -39403,7 +40591,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_29() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -39430,7 +40618,7 @@ class Test_TC_PMKCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -40064,108 +41252,120 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); - if (ShouldSkip("RNCONC.S.A0007 && RNCONC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16(); + err = TestStep4aReadTheGlobalAttributeAttributeList_16(); break; case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); + if (ShouldSkip("RNCONC.S.A0007 && RNCONC.S.F00")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17(); + break; + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " + " ***** Test Step 18 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " "RNCONC.S.A0007 is not set\n"); if (ShouldSkip(" !RNCONC.S.A0007 ")) { NextTest(); return; } - err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenRnconcsa0007IsNotSet_17(); + err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenRnconcsa0007IsNotSet_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " + " ***** Test Step 19 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " "MaxMeasuredValue and Measurement Unit in AttributeList\n"); if (ShouldSkip("RNCONC.S.F00")) { NextTest(); return; } - err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18(); + err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " + " ***** Test Step 20 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " "Uncertainty are excluded from AttributeList when RNCONC.S.F00 (MEA) is not set\n"); if (ShouldSkip(" !RNCONC.S.F00 ")) { NextTest(); return; } - err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenRnconcsf00MeaIsNotSet_19(); + err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenRnconcsf00MeaIsNotSet_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " + " ***** Test Step 21 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " "PeakMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("RNCONC.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20(); + err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " + " ***** Test Step 22 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " "AttributeList when RNCONC.S.F04 (PEA) is not set\n"); if (ShouldSkip(" !RNCONC.S.F04 ")) { NextTest(); return; } - err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenRnconcsf04PeaIsNotSet_21(); + err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenRnconcsf04PeaIsNotSet_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " + " ***** Test Step 23 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " "AverageMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("RNCONC.S.F05")) { NextTest(); return; } - err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22(); + err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " + " ***** Test Step 24 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " "AttributeList when RNCONC.S.F05 (AVG) is not set\n"); if (ShouldSkip(" !RNCONC.S.F05 ")) { NextTest(); return; } - err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenRnconcsf05AvgIsNotSet_23(); + err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenRnconcsf05AvgIsNotSet_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); + " ***** Test Step 25 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); if (ShouldSkip("RNCONC.S.F01")) { NextTest(); return; } - err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24(); + err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4k: Check that LevelValue is excluded from AttributeList when RNCONC.S.F01 (LEV) is " + " ***** Test Step 26 : Step 4k: Check that LevelValue is excluded from AttributeList when RNCONC.S.F01 (LEV) is " "not set\n"); if (ShouldSkip(" !RNCONC.S.F01 ")) { NextTest(); return; } - err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenRnconcsf01LevIsNotSet_25(); + err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenRnconcsf01LevIsNotSet_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4l: TH reads the AttributeList attribute from the DUT. 1.The list SHALL NOT contain " + " ***** Test Step 27 : Step 4l: TH reads the AttributeList attribute from the DUT. 1.The list SHALL NOT contain " "any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - " "0x0000_FFFE) 2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - " "0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list " @@ -40176,15 +41376,37 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4lThReadsTheAttributeListAttributeFromTheDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_27(); + err = TestStep4lThReadsTheAttributeListAttributeFromTheDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 29: + ChipLogProgress(chipTool, + " ***** Test Step 29 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_30(); + break; + case 31: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6b: Read the global attribute AcceptedCommandList. 1. The list SHALL NOT contain any " + " ***** Test Step 31 : Step 6b: Read the global attribute AcceptedCommandList. 1. The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) 2. The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any values in the Test " @@ -40194,15 +41416,15 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_29(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_32(); break; - case 30: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 30 : Step 7b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any " + " ***** Test Step 33 : Step 7b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test " @@ -40212,7 +41434,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30(); + err = TestStep7bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33(); break; } @@ -40318,6 +41540,15 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -40331,7 +41562,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 31; + const uint16_t mTestCount = 34; chip::Optional mNodeId; chip::Optional mCluster; @@ -40659,6 +41890,35 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterRadonConcentrationMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -40678,7 +41938,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16() + CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40701,7 +41961,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenRnconcsa0007IsNotSet_17() + CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenRnconcsa0007IsNotSet_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40727,7 +41987,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18() + TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40756,7 +42016,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenRnconcsf00MeaIsNotSet_19() + TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenRnconcsf00MeaIsNotSet_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40785,7 +42045,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20() + CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40811,7 +42071,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenRnconcsf04PeaIsNotSet_21() + CHIP_ERROR TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenRnconcsf04PeaIsNotSet_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40837,7 +42097,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22() + CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40864,7 +42124,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenRnconcsf05AvgIsNotSet_23() + TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenRnconcsf05AvgIsNotSet_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40890,7 +42150,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24() + CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40913,7 +42173,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenRnconcsf01LevIsNotSet_25() + CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenRnconcsf01LevIsNotSet_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40938,7 +42198,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4lThReadsTheAttributeListAttributeFromTheDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26() + TestStep4lThReadsTheAttributeListAttributeFromTheDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -40948,7 +42208,18 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_27() + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -40975,7 +42246,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -40985,7 +42256,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_29() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -41012,7 +42283,7 @@ class Test_TC_RNCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30() + TestStep7bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -41653,108 +42924,120 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); - if (ShouldSkip("TVOCCONC.S.A0007 && TVOCCONC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16(); + err = TestStep4aReadTheGlobalAttributeAttributeList_16(); break; case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the optional attribute Uncertainty in AttributeList\n"); + if (ShouldSkip("TVOCCONC.S.A0007 && TVOCCONC.S.F00")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17(); + break; + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " + " ***** Test Step 18 : Step 4c: Check the optional attribute Uncertainty is excluded from AttributeList when " "TVOCCONC.S.A0007 is not set\n"); if (ShouldSkip(" !TVOCCONC.S.A0007 ")) { NextTest(); return; } - err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenTvocconcsa0007IsNotSet_17(); + err = TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenTvocconcsa0007IsNotSet_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " + " ***** Test Step 19 : Step 4d: Read the optional, feature dependent attributes MeasuredValue, MinMeasuredValue, " "MaxMeasuredValue and Measurement Unit in AttributeList\n"); if (ShouldSkip("TVOCCONC.S.F00")) { NextTest(); return; } - err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18(); + err = TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " + " ***** Test Step 20 : Step 4e: Check that MeasuredValue, MinMeasuredValue, MaxMeasuredValue, Measurement Unit and " "Uncertainty are excluded from AttributeList when TVOCCONC.S.F00 (MEA) is not set\n"); if (ShouldSkip(" !TVOCCONC.S.F00 ")) { NextTest(); return; } - err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenTvocconcsf00MeaIsNotSet_19(); + err = TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenTvocconcsf00MeaIsNotSet_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " + " ***** Test Step 21 : Step 4f: Read the optional, feature dependent attributes PeakMeasuredValue & " "PeakMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("TVOCCONC.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20(); + err = TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " + " ***** Test Step 22 : Step 4g: Check that PeakMeasuredValue & PeakMeasuredValueWindow are excluded from " "AttributeList when TVOCCONC.S.F04 (PEA) is not set\n"); if (ShouldSkip(" !TVOCCONC.S.F04 ")) { NextTest(); return; } - err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenTvocconcsf04PeaIsNotSet_21(); + err = TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenTvocconcsf04PeaIsNotSet_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " + " ***** Test Step 23 : Step 4h: Read the optional, feature dependent attributes AverageMeasuredValue " "AverageMeasuredValueWindow in AttributeList\n"); if (ShouldSkip("TVOCCONC.S.F05")) { NextTest(); return; } - err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22(); + err = TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " + " ***** Test Step 24 : Step 4i: Check that AverageMeasuredValue and AverageMeasuredValueWindow are excluded from " "AttributeList when TVOCCONC.S.F05 (AVG) is not set\n"); if (ShouldSkip(" !TVOCCONC.S.F05 ")) { NextTest(); return; } - err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenTvocconcsf05AvgIsNotSet_23(); + err = TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenTvocconcsf05AvgIsNotSet_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); + " ***** Test Step 25 : Step 4j: Read the optional, feature dependent attribute LevelValue in AttributeList\n"); if (ShouldSkip("TVOCCONC.S.F01")) { NextTest(); return; } - err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24(); + err = TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4k: Check that LevelValue is excluded from AttributeList when TVOCCONC.S.F01 (LEV) is " + " ***** Test Step 26 : Step 4k: Check that LevelValue is excluded from AttributeList when TVOCCONC.S.F01 (LEV) is " "not set\n"); if (ShouldSkip(" !TVOCCONC.S.F01 ")) { NextTest(); return; } - err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenTvocconcsf01LevIsNotSet_25(); + err = TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenTvocconcsf01LevIsNotSet_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4b: Read the global attribute: AttributeList. 1.The list SHALL NOT contain any " + " ***** Test Step 27 : Step 4b: Read the global attribute: AttributeList. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -41764,15 +43047,37 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26(); - break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_27(); + err = TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); break; case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 29: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6b: Read the global attribute: AcceptedCommandList. 1. The list SHALL NOT contain any " + " ***** Test Step 29 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_30(); + break; + case 31: + ChipLogProgress(chipTool, + " ***** Test Step 31 : Step 6b: Read the global attribute: AcceptedCommandList. 1. The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) 2. The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any values in the Test " @@ -41782,15 +43087,15 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_29(); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_32(); break; - case 30: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 30 : Step 7b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any " + " ***** Test Step 33 : Step 7b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test " @@ -41800,7 +43105,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30(); + err = TestStep7bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33(); break; } @@ -41906,6 +43211,15 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -41919,7 +43233,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 31; + const uint16_t mTestCount = 34; chip::Optional mNodeId; chip::Optional mCluster; @@ -42271,6 +43585,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -42281,7 +43596,36 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_16() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = + [[MTRBaseClusterTotalVolatileOrganicCompoundsConcentrationMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheOptionalAttributeUncertaintyInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42305,7 +43649,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenTvocconcsa0007IsNotSet_17() + CHIP_ERROR TestStep4cCheckTheOptionalAttributeUncertaintyIsExcludedFromAttributeListWhenTvocconcsa0007IsNotSet_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42332,7 +43676,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_18() + TestStep4dReadTheOptionalFeatureDependentAttributesMeasuredValueMinMeasuredValueMaxMeasuredValueAndMeasurementUnitInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42362,7 +43706,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenTvocconcsf00MeaIsNotSet_19() + TestStep4eCheckThatMeasuredValueMinMeasuredValueMaxMeasuredValueMeasurementUnitAndUncertaintyAreExcludedFromAttributeListWhenTvocconcsf00MeaIsNotSet_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42392,7 +43736,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_20() + CHIP_ERROR TestStep4fReadTheOptionalFeatureDependentAttributesPeakMeasuredValuePeakMeasuredValueWindowInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42420,7 +43764,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenTvocconcsf04PeaIsNotSet_21() + TestStep4gCheckThatPeakMeasuredValuePeakMeasuredValueWindowAreExcludedFromAttributeListWhenTvocconcsf04PeaIsNotSet_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42447,7 +43791,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_22() + CHIP_ERROR TestStep4hReadTheOptionalFeatureDependentAttributesAverageMeasuredValueAverageMeasuredValueWindowInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42475,7 +43819,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenTvocconcsf05AvgIsNotSet_23() + TestStep4iCheckThatAverageMeasuredValueAndAverageMeasuredValueWindowAreExcludedFromAttributeListWhenTvocconcsf05AvgIsNotSet_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42502,7 +43846,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_24() + CHIP_ERROR TestStep4jReadTheOptionalFeatureDependentAttributeLevelValueInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42526,7 +43870,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenTvocconcsf01LevIsNotSet_25() + CHIP_ERROR TestStep4kCheckThatLevelValueIsExcludedFromAttributeListWhenTvocconcsf01LevIsNotSet_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42552,7 +43896,18 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_26() + TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -42562,7 +43917,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_27() + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42590,7 +43945,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_31() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -42600,7 +43955,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_29() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -42628,7 +43983,7 @@ class Test_TC_TVOCCONC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_30() + TestStep7bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -44146,11 +45501,23 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsAttributeListFromDut_4(); + break; + case 5: ChipLogProgress(chipTool, - " ***** Test Step 4 : Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 5 : Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -44160,15 +45527,29 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4(); - break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 6a: TH reads AcceptedCommandList from DUT\n"); - err = TestStep6aThReadsAcceptedCommandListFromDut_5(); + err = TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); break; case 6: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 6 : Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6a: TH reads AcceptedCommandList from DUT\n"); + err = TestStep6aThReadsAcceptedCommandListFromDut_7(); + break; + case 8: + ChipLogProgress(chipTool, + " ***** Test Step 8 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -44178,15 +45559,15 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 7a: TH reads GeneratedCommandList from DUT\n"); - err = TestStep7aThReadsGeneratedCommandListFromDut_7(); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 7a: TH reads GeneratedCommandList from DUT\n"); + err = TestStep7aThReadsGeneratedCommandListFromDut_9(); break; - case 8: + case 10: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 10 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -44195,7 +45576,7 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); break; } @@ -44235,6 +45616,12 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -44248,7 +45635,7 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 11; chip::Optional mNodeId; chip::Optional mCluster; @@ -44324,6 +45711,40 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 5UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterOperationalCredentials alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); @@ -44349,7 +45770,18 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { } CHIP_ERROR - TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4() + TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -44359,7 +45791,7 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_5() + CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44390,7 +45822,7 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -44400,7 +45832,7 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aThReadsGeneratedCommandListFromDut_7() + CHIP_ERROR TestStep7aThReadsGeneratedCommandListFromDut_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44427,7 +45859,7 @@ class Test_TC_OPCREDS_1_2 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -44490,77 +45922,89 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsAttributeListFromDut_4(); + break; + case 5: ChipLogProgress( - chipTool, " ***** Test Step 4 : Step 4b: TH reads optional attribute(ManufacturingDate) in attributeList\n"); + chipTool, " ***** Test Step 5 : Step 4b: TH reads optional attribute(ManufacturingDate) in attributeList\n"); if (ShouldSkip("BINFO.S.A000b")) { NextTest(); return; } - err = TestStep4bThReadsOptionalAttributeManufacturingDateInAttributeList_4(); + err = TestStep4bThReadsOptionalAttributeManufacturingDateInAttributeList_5(); break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4c: TH reads optional attribute(PartNumber) in attributeList\n"); + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4c: TH reads optional attribute(PartNumber) in attributeList\n"); if (ShouldSkip("BINFO.S.A000c")) { NextTest(); return; } - err = TestStep4cThReadsOptionalAttributePartNumberInAttributeList_5(); + err = TestStep4cThReadsOptionalAttributePartNumberInAttributeList_6(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4d: TH reads optional attribute(ProductURL) in attributeList\n"); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4d: TH reads optional attribute(ProductURL) in attributeList\n"); if (ShouldSkip("BINFO.S.A000d")) { NextTest(); return; } - err = TestStep4dThReadsOptionalAttributeProductURLInAttributeList_6(); + err = TestStep4dThReadsOptionalAttributeProductURLInAttributeList_7(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4e: TH reads optional attribute(ProductLabel) in attributeList\n"); + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4e: TH reads optional attribute(ProductLabel) in attributeList\n"); if (ShouldSkip("BINFO.S.A000e")) { NextTest(); return; } - err = TestStep4eThReadsOptionalAttributeProductLabelInAttributeList_7(); + err = TestStep4eThReadsOptionalAttributeProductLabelInAttributeList_8(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4f: TH reads optional attribute(SerialNumber) in attributeList\n"); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4f: TH reads optional attribute(SerialNumber) in attributeList\n"); if (ShouldSkip("BINFO.S.A000f")) { NextTest(); return; } - err = TestStep4fThReadsOptionalAttributeSerialNumberInAttributeList_8(); + err = TestStep4fThReadsOptionalAttributeSerialNumberInAttributeList_9(); break; - case 9: + case 10: ChipLogProgress( - chipTool, " ***** Test Step 9 : Step 4g: TH reads optional attribute(LocalConfigDisabled) in attributeList\n"); + chipTool, " ***** Test Step 10 : Step 4g: TH reads optional attribute(LocalConfigDisabled) in attributeList\n"); if (ShouldSkip("BINFO.S.A0010")) { NextTest(); return; } - err = TestStep4gThReadsOptionalAttributeLocalConfigDisabledInAttributeList_9(); + err = TestStep4gThReadsOptionalAttributeLocalConfigDisabledInAttributeList_10(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 4h: TH reads optional attribute(Reachable) in attributeList\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 4h: TH reads optional attribute(Reachable) in attributeList\n"); if (ShouldSkip("BINFO.S.A0011")) { NextTest(); return; } - err = TestStep4hThReadsOptionalAttributeReachableInAttributeList_10(); + err = TestStep4hThReadsOptionalAttributeReachableInAttributeList_11(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 4i: TH reads optional attribute(UniqueID) in attributeList\n"); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 4i: TH reads optional attribute(UniqueID) in attributeList\n"); if (ShouldSkip("BINFO.S.A0012")) { NextTest(); return; } - err = TestStep4iThReadsOptionalAttributeUniqueIDInAttributeList_11(); + err = TestStep4iThReadsOptionalAttributeUniqueIDInAttributeList_12(); break; - case 12: + case 13: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 4j: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 13 : Step 4j: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -44570,43 +46014,65 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4jThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); + err = TestStep4jThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 5b: Read BINFO.S.E00(StartUp) event in EventList\n"); - if (ShouldSkip("BINFO.S.E00")) { + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 5a: TH1 reads EventList from DUT\n"); + if (ShouldSkip(" !BINFO.S.E00 && !BINFO.S.E01 && !BINFO.S.E02 && !BINFO.S.A0011 && PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } NextTest(); return; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Step 5c: Read BINFO.S.E01(ShutDown) event in EventList\n"); - if (ShouldSkip("BINFO.S.E01")) { + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 5b: Read BINFO.S.E00(StartUp) event in EventList\n"); + if (ShouldSkip("BINFO.S.E00 && PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } NextTest(); return; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 5d: Read BINFO.S.E02(Leave) event in EventList\n"); - if (ShouldSkip("BINFO.S.E02")) { + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 5c: Read BINFO.S.E01(ShutDown) event in EventList\n"); + if (ShouldSkip("BINFO.S.E01 && PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } NextTest(); return; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 5e: Read (ReachableChanged) event in EventList\n"); - if (ShouldSkip("BINFO.S.A0011")) { + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 5d: Read BINFO.S.E02(Leave) event in EventList\n"); + if (ShouldSkip("BINFO.S.E02 && PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } NextTest(); return; - case 17: + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Step 5e: Read (ReachableChanged) event in EventList\n"); + if (ShouldSkip("BINFO.S.A0011 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 19: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 19 : Step 5f: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional " + "values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " + "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " + "(0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test Vendor or " + "invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where " + "XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5fThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); + break; + case 20: + ChipLogProgress(chipTool, + " ***** Test Step 20 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -44615,11 +46081,11 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17(); + err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20(); break; - case 18: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 21 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -44628,7 +46094,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_21(); break; } @@ -44698,6 +46164,15 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -44711,7 +46186,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 19; + const uint16_t mTestCount = 22; chip::Optional mNodeId; chip::Optional mCluster; @@ -44801,6 +46276,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 19UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -44811,7 +46287,44 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsOptionalAttributeManufacturingDateInAttributeList_4() + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBasicInformation alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT 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, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 8UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 10UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 19UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bThReadsOptionalAttributeManufacturingDateInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44832,7 +46345,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cThReadsOptionalAttributePartNumberInAttributeList_5() + CHIP_ERROR TestStep4cThReadsOptionalAttributePartNumberInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44853,7 +46366,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dThReadsOptionalAttributeProductURLInAttributeList_6() + CHIP_ERROR TestStep4dThReadsOptionalAttributeProductURLInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44874,7 +46387,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eThReadsOptionalAttributeProductLabelInAttributeList_7() + CHIP_ERROR TestStep4eThReadsOptionalAttributeProductLabelInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44895,7 +46408,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fThReadsOptionalAttributeSerialNumberInAttributeList_8() + CHIP_ERROR TestStep4fThReadsOptionalAttributeSerialNumberInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44916,7 +46429,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gThReadsOptionalAttributeLocalConfigDisabledInAttributeList_9() + CHIP_ERROR TestStep4gThReadsOptionalAttributeLocalConfigDisabledInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44937,7 +46450,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hThReadsOptionalAttributeReachableInAttributeList_10() + CHIP_ERROR TestStep4hThReadsOptionalAttributeReachableInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44958,7 +46471,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4iThReadsOptionalAttributeUniqueIDInAttributeList_11() + CHIP_ERROR TestStep4iThReadsOptionalAttributeUniqueIDInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -44980,7 +46493,18 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4jThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() + TestStep4jThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5fThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -44991,7 +46515,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17() + TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -45002,7 +46526,7 @@ class Test_TC_BINFO_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_21() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -45096,39 +46620,51 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_6(); break; case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aReadTheGlobalAttributeAttributeList_7(); + break; + case 8: ChipLogProgress(chipTool, - " ***** Test Step 7 : Step 4b: Read mandatory attributes in AttributeList if " + " ***** Test Step 8 : Step 4b: Read mandatory attributes in AttributeList if " "CNET.S.F00(WI)/CNET.S.F01(TH)/CNET.S.F02(ET) is true\n"); if (ShouldSkip("CNET.S.F00 || CNET.S.F01 || CNET.S.F02")) { NextTest(); return; } - err = TestStep4bReadMandatoryAttributesInAttributeListIfCnetsf00wiCnetsf01thCnetsf02etIsTrue_7(); + err = TestStep4bReadMandatoryAttributesInAttributeListIfCnetsf00wiCnetsf01thCnetsf02etIsTrue_8(); break; - case 8: + case 9: ChipLogProgress( - chipTool, " ***** Test Step 8 : Step 4c: Read the optional attribute(ScanMaxTimeSeconds): AttributeList\n"); + chipTool, " ***** Test Step 9 : Step 4c: Read the optional attribute(ScanMaxTimeSeconds): AttributeList\n"); if (ShouldSkip("CNET.S.A0002")) { NextTest(); return; } - err = TestStep4cReadTheOptionalAttributeScanMaxTimeSecondsAttributeList_8(); + err = TestStep4cReadTheOptionalAttributeScanMaxTimeSecondsAttributeList_9(); break; - case 9: + case 10: ChipLogProgress( - chipTool, " ***** Test Step 9 : Step 4d: Reading optional attribute(ConnectMaxTimeSeconds) in AttributeList\n"); + chipTool, " ***** Test Step 10 : Step 4d: Reading optional attribute(ConnectMaxTimeSeconds) in AttributeList\n"); if (ShouldSkip("CNET.S.A0003")) { NextTest(); return; } - err = TestStep4dReadingOptionalAttributeConnectMaxTimeSecondsInAttributeList_9(); + err = TestStep4dReadingOptionalAttributeConnectMaxTimeSecondsInAttributeList_10(); break; - case 10: + case 11: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 4e: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 11 : Step 4e: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -45138,51 +46674,65 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { NextTest(); return; } - err = TestStep4eThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); + err = TestStep4eThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11(); break; - case 11: + case 12: + ChipLogProgress(chipTool, + " ***** Test Step 12 : Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); + break; + case 13: ChipLogProgress(chipTool, - " ***** Test Step 11 : Step 6a: Read AcceptedCommandList If DUT supports Wi-Fi/Thread related features " + " ***** Test Step 13 : Step 6a: Read AcceptedCommandList If DUT supports Wi-Fi/Thread related features " "CNET.S.F00(WI),CNET.S.F01(TH)\n"); if (ShouldSkip("( CNET.S.F00 || CNET.S.F01 )")) { NextTest(); return; } - err = TestStep6aReadAcceptedCommandListIfDutSupportsWiFiThreadRelatedFeaturesCnetsf00wicnetsf01th_11(); + err = TestStep6aReadAcceptedCommandListIfDutSupportsWiFiThreadRelatedFeaturesCnetsf00wicnetsf01th_13(); break; - case 12: + case 14: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 6b: Read AcceptedCommandList If DUT supports Wi-Fi related features (CNET.S.F00(WI) is " + " ***** Test Step 14 : Step 6b: Read AcceptedCommandList If DUT supports Wi-Fi related features (CNET.S.F00(WI) is " "true)\n"); if (ShouldSkip("CNET.S.F00")) { NextTest(); return; } - err = TestStep6bReadAcceptedCommandListIfDutSupportsWiFiRelatedFeaturesCnetsf00wiIsTrue_12(); + err = TestStep6bReadAcceptedCommandListIfDutSupportsWiFiRelatedFeaturesCnetsf00wiIsTrue_14(); break; - case 13: + case 15: ChipLogProgress(chipTool, - " ***** Test Step 13 : Step 6c: Read AcceptedCommandList If DUT supports Thread related features(CNET.S.F01(TH) is " + " ***** Test Step 15 : Step 6c: Read AcceptedCommandList If DUT supports Thread related features(CNET.S.F01(TH) is " "true)\n"); if (ShouldSkip("CNET.S.F01")) { NextTest(); return; } - err = TestStep6cReadAcceptedCommandListIfDutSupportsThreadRelatedFeaturesCNETSF01THIsTrue_13(); + err = TestStep6cReadAcceptedCommandListIfDutSupportsThreadRelatedFeaturesCNETSF01THIsTrue_15(); break; - case 14: + case 16: ChipLogProgress(chipTool, - " ***** Test Step 14 : Step 6d: Read AcceptedCommandList If DUT supports Ethernet related features(CNET.S.F02(TH) " + " ***** Test Step 16 : Step 6d: Read AcceptedCommandList If DUT supports Ethernet related features(CNET.S.F02(TH) " "is true)\n"); if (ShouldSkip("CNET.S.F02")) { NextTest(); return; } - err = TestStep6dReadAcceptedCommandListIfDutSupportsEthernetRelatedFeaturesCNETSF02THIsTrue_14(); + err = TestStep6dReadAcceptedCommandListIfDutSupportsEthernetRelatedFeaturesCNETSF02THIsTrue_16(); break; - case 15: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 15 : Step 6e: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 17 : Step 6e: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -45192,31 +46742,31 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { NextTest(); return; } - err = TestStep6eThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15(); + err = TestStep6eThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17(); break; - case 16: + case 18: ChipLogProgress(chipTool, - " ***** Test Step 16 : Step 7a: Read the GeneratedCommandList If DUT supports Wi-Fi/Thread related " + " ***** Test Step 18 : Step 7a: Read the GeneratedCommandList If DUT supports Wi-Fi/Thread related " "features(CNET.S.F00(WI) or CNET.S.F01(TH) is true)\n"); if (ShouldSkip("( CNET.S.F00 || CNET.S.F01 )")) { NextTest(); return; } - err = TestStep7aReadTheGeneratedCommandListIfDutSupportsWiFiThreadRelatedFeaturesCNETSF00WIOrCnetsf01thIsTrue_16(); + err = TestStep7aReadTheGeneratedCommandListIfDutSupportsWiFiThreadRelatedFeaturesCNETSF00WIOrCnetsf01thIsTrue_18(); break; - case 17: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 7b: Read the GeneratedCommandList If DUT supports Ethernet related " + " ***** Test Step 19 : Step 7b: Read the GeneratedCommandList If DUT supports Ethernet related " "features(CNET.S.F02(ET) must be true)\n"); if (ShouldSkip("CNET.S.F02")) { NextTest(); return; } - err = TestStep7bReadTheGeneratedCommandListIfDutSupportsEthernetRelatedFeaturesCNETSF02ETMustBeTrue_17(); + err = TestStep7bReadTheGeneratedCommandListIfDutSupportsEthernetRelatedFeaturesCNETSF02ETMustBeTrue_19(); break; - case 18: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 7c: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 20 : Step 7c: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -45225,7 +46775,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { NextTest(); return; } - err = TestStep7cThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); + err = TestStep7cThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20(); break; } @@ -45295,6 +46845,12 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -45308,7 +46864,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 19; + const uint16_t mTestCount = 21; chip::Optional mNodeId; chip::Optional mCluster; @@ -45466,6 +47022,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -45476,7 +47033,34 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadMandatoryAttributesInAttributeListIfCnetsf00wiCnetsf01thCnetsf02etIsTrue_7() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_7() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterNetworkCommissioning alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadMandatoryAttributesInAttributeListIfCnetsf00wiCnetsf01thCnetsf02etIsTrue_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45506,7 +47090,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheOptionalAttributeScanMaxTimeSecondsAttributeList_8() + CHIP_ERROR TestStep4cReadTheOptionalAttributeScanMaxTimeSecondsAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45529,7 +47113,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadingOptionalAttributeConnectMaxTimeSecondsInAttributeList_9() + CHIP_ERROR TestStep4dReadingOptionalAttributeConnectMaxTimeSecondsInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45553,7 +47137,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { } CHIP_ERROR - TestStep4eThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() + TestStep4eThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -45563,7 +47147,18 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadAcceptedCommandListIfDutSupportsWiFiThreadRelatedFeaturesCnetsf00wicnetsf01th_11() + CHIP_ERROR + TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aReadAcceptedCommandListIfDutSupportsWiFiThreadRelatedFeaturesCnetsf00wicnetsf01th_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45591,7 +47186,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bReadAcceptedCommandListIfDutSupportsWiFiRelatedFeaturesCnetsf00wiIsTrue_12() + CHIP_ERROR TestStep6bReadAcceptedCommandListIfDutSupportsWiFiRelatedFeaturesCnetsf00wiIsTrue_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45615,7 +47210,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6cReadAcceptedCommandListIfDutSupportsThreadRelatedFeaturesCNETSF01THIsTrue_13() + CHIP_ERROR TestStep6cReadAcceptedCommandListIfDutSupportsThreadRelatedFeaturesCNETSF01THIsTrue_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45639,7 +47234,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6dReadAcceptedCommandListIfDutSupportsEthernetRelatedFeaturesCNETSF02THIsTrue_14() + CHIP_ERROR TestStep6dReadAcceptedCommandListIfDutSupportsEthernetRelatedFeaturesCNETSF02THIsTrue_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45666,7 +47261,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { } CHIP_ERROR - TestStep6eThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15() + TestStep6eThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -45676,7 +47271,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGeneratedCommandListIfDutSupportsWiFiThreadRelatedFeaturesCNETSF00WIOrCnetsf01thIsTrue_16() + CHIP_ERROR TestStep7aReadTheGeneratedCommandListIfDutSupportsWiFiThreadRelatedFeaturesCNETSF00WIOrCnetsf01thIsTrue_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45703,7 +47298,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7bReadTheGeneratedCommandListIfDutSupportsEthernetRelatedFeaturesCNETSF02ETMustBeTrue_17() + CHIP_ERROR TestStep7bReadTheGeneratedCommandListIfDutSupportsEthernetRelatedFeaturesCNETSF02ETMustBeTrue_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -45731,7 +47326,7 @@ class Test_TC_CNET_1_3 : public TestCommandBridge { } CHIP_ERROR - TestStep7cThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() + TestStep7cThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -45798,11 +47393,23 @@ class Test_TC_DESC_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aReadTheGlobalAttributeAttributeList_4(); + break; + case 5: ChipLogProgress(chipTool, - " ***** Test Step 4 : Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 5 : Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -45812,11 +47419,25 @@ class Test_TC_DESC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4(); + err = TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); break; - case 5: + case 6: ChipLogProgress(chipTool, - " ***** Test Step 5 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 6 : Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + break; + case 7: + ChipLogProgress(chipTool, + " ***** Test Step 7 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -45825,11 +47446,11 @@ class Test_TC_DESC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); + err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7(); break; - case 6: + case 8: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 8 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -45838,7 +47459,7 @@ class Test_TC_DESC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); break; } @@ -45872,6 +47493,12 @@ class Test_TC_DESC_1_1 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -45885,7 +47512,7 @@ class Test_TC_DESC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -45941,6 +47568,36 @@ class Test_TC_DESC_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterDescriptor alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList 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, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterDescriptor alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -45964,7 +47621,7 @@ class Test_TC_DESC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4() + TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -45975,7 +47632,7 @@ class Test_TC_DESC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() + TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -45986,7 +47643,18 @@ class Test_TC_DESC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -46049,11 +47717,23 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TTH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aTthReadsAttributeListFromDut_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TTH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aTthReadsAttributeListFromDut_4(); + break; + case 5: ChipLogProgress(chipTool, - " ***** Test Step 4 : Step 4b: TTH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 5 : Step 4b: TTH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -46063,15 +47743,29 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bTthReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4(); - break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 6a: TTH reads AcceptedCommandList from DUT\n"); - err = TestStep6aTthReadsAcceptedCommandListFromDut_5(); + err = TestStep4bTthReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); break; case 6: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 6b: TTH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 6 : Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6a: TTH reads AcceptedCommandList from DUT\n"); + err = TestStep6aTthReadsAcceptedCommandListFromDut_7(); + break; + case 8: + ChipLogProgress(chipTool, + " ***** Test Step 8 : Step 6b: TTH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -46081,16 +47775,16 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bTthReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + err = TestStep6bTthReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 7a: TTH reads GeneratedCommandList from DUT\n"); - err = TestStep7aTthReadsGeneratedCommandListFromDut_7(); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 7a: TTH reads GeneratedCommandList from DUT\n"); + err = TestStep7aTthReadsGeneratedCommandListFromDut_9(); break; - case 8: + case 10: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 7b: TTH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " - "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " + " ***** Test Step 10 : Step 7b: TTH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values " + "in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " "0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); @@ -46098,7 +47792,7 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bTthReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); + err = TestStep7bTthReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); break; } @@ -46138,6 +47832,12 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -46151,7 +47851,7 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 11; chip::Optional mNodeId; chip::Optional mCluster; @@ -46221,6 +47921,32 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterDiagnosticLogs alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TTH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aTthReadsAttributeListFromDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterDiagnosticLogs alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TTH reads AttributeList from DUT Error: %@", err); @@ -46240,7 +47966,7 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4bTthReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4() + TestStep4bTthReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -46250,7 +47976,18 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aTthReadsAcceptedCommandListFromDut_5() + CHIP_ERROR + TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aTthReadsAcceptedCommandListFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46276,7 +48013,7 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bTthReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + TestStep6bTthReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -46286,7 +48023,7 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aTthReadsGeneratedCommandListFromDut_7() + CHIP_ERROR TestStep7aTthReadsGeneratedCommandListFromDut_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46312,7 +48049,7 @@ class Test_TC_DLOG_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bTthReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() + TestStep7bTthReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -46397,95 +48134,107 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4b: TH reads optional attribute(PHYRate) in AttributeList\n"); - if (ShouldSkip("DGETH.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bThReadsOptionalAttributePHYRateInAttributeList_6(); + err = TestStep4aThReadsAttributeListFromDut_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4c: TH reads optional attribute(FullDuplex) in AttributeList\n"); - if (ShouldSkip("DGETH.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4b: TH reads optional attribute(PHYRate) in AttributeList\n"); + if (ShouldSkip("DGETH.S.A0000")) { NextTest(); return; } - err = TestStep4cThReadsOptionalAttributeFullDuplexInAttributeList_7(); + err = TestStep4bThReadsOptionalAttributePHYRateInAttributeList_7(); break; case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4c: TH reads optional attribute(FullDuplex) in AttributeList\n"); + if (ShouldSkip("DGETH.S.A0001")) { + NextTest(); + return; + } + err = TestStep4cThReadsOptionalAttributeFullDuplexInAttributeList_8(); + break; + case 9: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 4d: TH reads optional attribute(PacketRxCount) and Feature " + " ***** Test Step 9 : Step 4d: TH reads optional attribute(PacketRxCount) and Feature " "dependent(DGETH.S.F00(PKTCNT)) in AttributeList\n"); if (ShouldSkip("DGETH.S.A0002")) { NextTest(); return; } - err = TestStep4dThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF00PKTCNTInAttributeList_8(); + err = TestStep4dThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF00PKTCNTInAttributeList_9(); break; - case 9: + case 10: ChipLogProgress(chipTool, - " ***** Test Step 9 : Step 4e: TH reads optional attribute(PacketRxCount) and Feature " + " ***** Test Step 10 : Step 4e: TH reads optional attribute(PacketRxCount) and Feature " "dependent(DGETH.S.F00(PKTCNT)) in AttributeList\n"); if (ShouldSkip("DGETH.S.A0003")) { NextTest(); return; } - err = TestStep4eThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF00PKTCNTInAttributeList_9(); + err = TestStep4eThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF00PKTCNTInAttributeList_10(); break; - case 10: + case 11: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 4f: TH reads optional attribute(PacketRxCount) and Feature " + " ***** Test Step 11 : Step 4f: TH reads optional attribute(PacketRxCount) and Feature " "dependent(DGETH.S.F01(ERRCNT)) in AttributeList\n"); if (ShouldSkip("DGETH.S.A0004")) { NextTest(); return; } - err = TestStep4fThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_10(); + err = TestStep4fThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_11(); break; - case 11: + case 12: ChipLogProgress(chipTool, - " ***** Test Step 11 : Step 4g: TH reads optional attribute(PacketRxCount) and Feature " + " ***** Test Step 12 : Step 4g: TH reads optional attribute(PacketRxCount) and Feature " "dependent(DGETH.S.F01(ERRCNT)) in AttributeList\n"); if (ShouldSkip("DGETH.S.A0005")) { NextTest(); return; } - err = TestStep4gThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_11(); + err = TestStep4gThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_12(); break; - case 12: + case 13: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 4h: TH reads optional attribute(PacketRxCount) and Feature " + " ***** Test Step 13 : Step 4h: TH reads optional attribute(PacketRxCount) and Feature " "dependent(DGETH.S.F01(ERRCNT)) in AttributeList\n"); if (ShouldSkip("DGETH.S.A0006")) { NextTest(); return; } - err = TestStep4hThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_12(); + err = TestStep4hThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_13(); break; - case 13: + case 14: ChipLogProgress( - chipTool, " ***** Test Step 13 : Step 4i: TH reads optional attribute(CarrierDetect) in AttributeList\n"); + chipTool, " ***** Test Step 14 : Step 4i: TH reads optional attribute(CarrierDetect) in AttributeList\n"); if (ShouldSkip("DGETH.S.A0007")) { NextTest(); return; } - err = TestStep4iThReadsOptionalAttributeCarrierDetectInAttributeList_13(); + err = TestStep4iThReadsOptionalAttributeCarrierDetectInAttributeList_14(); break; - case 14: + case 15: ChipLogProgress( - chipTool, " ***** Test Step 14 : Step 4j: TH reads optional attribute(TimeSinceReset) in AttributeList\n"); + chipTool, " ***** Test Step 15 : Step 4j: TH reads optional attribute(TimeSinceReset) in AttributeList\n"); if (ShouldSkip("DGETH.S.A0008")) { NextTest(); return; } - err = TestStep4jThReadsOptionalAttributeTimeSinceResetInAttributeList_14(); + err = TestStep4jThReadsOptionalAttributeTimeSinceResetInAttributeList_15(); break; - case 15: + case 16: ChipLogProgress(chipTool, - " ***** Test Step 15 : Step 4k: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 16 : Step 4k: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -46495,27 +48244,41 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4kThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15(); + err = TestStep4kThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 6a: TH reads AcceptedCommandList from DUT\n"); + case 17: + ChipLogProgress(chipTool, + " ***** Test Step 17 : Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17(); + break; + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Step 6a: TH reads AcceptedCommandList from DUT\n"); if (ShouldSkip("( DGETH.S.F00 || DGETH.S.F01 )")) { NextTest(); return; } - err = TestStep6aThReadsAcceptedCommandListFromDut_16(); + err = TestStep6aThReadsAcceptedCommandListFromDut_18(); break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Step 6b: TH reads AcceptedCommandList from DUT\n"); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Step 6b: TH reads AcceptedCommandList from DUT\n"); if (ShouldSkip(" !DGETH.S.F00 && !DGETH.S.F01 ")) { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListFromDut_17(); + err = TestStep6bThReadsAcceptedCommandListFromDut_19(); break; - case 18: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 20 : Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -46525,11 +48288,11 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); + err = TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20(); break; - case 19: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 21 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -46538,7 +48301,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_21(); break; } @@ -46611,6 +48374,12 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -46624,7 +48393,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 20; + const uint16_t mTestCount = 22; chip::Optional mNodeId; chip::Optional mCluster; @@ -46750,6 +48519,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -46760,7 +48530,34 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsOptionalAttributePHYRateInAttributeList_6() + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_6() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterEthernetNetworkDiagnostics alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bThReadsOptionalAttributePHYRateInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46783,7 +48580,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cThReadsOptionalAttributeFullDuplexInAttributeList_7() + CHIP_ERROR TestStep4cThReadsOptionalAttributeFullDuplexInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46806,7 +48603,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF00PKTCNTInAttributeList_8() + CHIP_ERROR TestStep4dThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF00PKTCNTInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46831,7 +48628,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF00PKTCNTInAttributeList_9() + CHIP_ERROR TestStep4eThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF00PKTCNTInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46856,7 +48653,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_10() + CHIP_ERROR TestStep4fThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46881,7 +48678,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_11() + CHIP_ERROR TestStep4gThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46906,7 +48703,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_12() + CHIP_ERROR TestStep4hThReadsOptionalAttributePacketRxCountAndFeatureDependentDGETHSF01ERRCNTInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46931,7 +48728,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4iThReadsOptionalAttributeCarrierDetectInAttributeList_13() + CHIP_ERROR TestStep4iThReadsOptionalAttributeCarrierDetectInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46954,7 +48751,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jThReadsOptionalAttributeTimeSinceResetInAttributeList_14() + CHIP_ERROR TestStep4jThReadsOptionalAttributeTimeSinceResetInAttributeList_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -46978,7 +48775,18 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4kThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15() + TestStep4kThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -46988,7 +48796,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_16() + CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -47011,7 +48819,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bThReadsAcceptedCommandListFromDut_17() + CHIP_ERROR TestStep6bThReadsAcceptedCommandListFromDut_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -47038,7 +48846,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() + TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_20() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -47049,7 +48857,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_21() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -48481,19 +50289,31 @@ class Test_TC_FLW_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4b: Read the optional attribute(Tolerance) in AttributeList\n"); - if (ShouldSkip("FLW.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeToleranceInAttributeList_4(); + err = TestStep4aReadTheGlobalAttributeAttributeList_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4b: Read the optional attribute(Tolerance) in AttributeList\n"); + if (ShouldSkip("FLW.S.A0003")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeToleranceInAttributeList_5(); + break; + case 6: ChipLogProgress(chipTool, - " ***** Test Step 5 : Step 4c: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 6 : Step 4c: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -48503,11 +50323,25 @@ class Test_TC_FLW_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); + err = TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); break; - case 6: + case 7: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 7 : Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7(); + break; + case 8: + ChipLogProgress(chipTool, + " ***** Test Step 8 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -48517,11 +50351,11 @@ class Test_TC_FLW_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); break; - case 7: + case 9: ChipLogProgress(chipTool, - " ***** Test Step 7 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 9 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -48530,7 +50364,7 @@ class Test_TC_FLW_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9(); break; } @@ -48567,6 +50401,12 @@ class Test_TC_FLW_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; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -48580,7 +50420,7 @@ class Test_TC_FLW_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 8; + const uint16_t mTestCount = 10; chip::Optional mNodeId; chip::Optional mCluster; @@ -48650,6 +50490,35 @@ class Test_TC_FLW_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterFlowMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList 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)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterFlowMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -48671,7 +50540,7 @@ class Test_TC_FLW_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeToleranceInAttributeList_4() + CHIP_ERROR TestStep4bReadTheOptionalAttributeToleranceInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -48693,7 +50562,18 @@ class Test_TC_FLW_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() + TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -48704,7 +50584,7 @@ class Test_TC_FLW_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -48715,7 +50595,7 @@ class Test_TC_FLW_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7() + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -49013,11 +50893,23 @@ class Test_TC_FLABEL_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsAttributeListFromDut_4(); + break; + case 5: ChipLogProgress(chipTool, - " ***** Test Step 4 : Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 5 : Step 4b: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -49027,11 +50919,25 @@ class Test_TC_FLABEL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4(); + err = TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); break; - case 5: + case 6: + ChipLogProgress(chipTool, + " ***** Test Step 6 : Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + break; + case 7: ChipLogProgress(chipTool, - " ***** Test Step 5 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 7 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -49040,11 +50946,11 @@ class Test_TC_FLABEL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); + err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7(); break; - case 6: + case 8: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 8 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -49053,7 +50959,7 @@ class Test_TC_FLABEL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); break; } @@ -49087,6 +50993,12 @@ class Test_TC_FLABEL_1_1 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -49100,7 +51012,7 @@ class Test_TC_FLABEL_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -49170,6 +51082,33 @@ class Test_TC_FLABEL_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterFixedLabel alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterFixedLabel alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); @@ -49190,7 +51129,7 @@ class Test_TC_FLABEL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4() + TestStep4bThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -49201,7 +51140,7 @@ class Test_TC_FLABEL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() + TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -49212,7 +51151,18 @@ class Test_TC_FLABEL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -49337,47 +51287,59 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_9(); break; case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep3aReadTheGlobalAttributeAttributeList_10(); + break; + case 11: ChipLogProgress( - chipTool, " ***** Test Step 10 : Step 3b: Read the feature dependent FAN.S.F00 (SPD) attribute in AttributeList\n"); + chipTool, " ***** Test Step 11 : Step 3b: Read the feature dependent FAN.S.F00 (SPD) attribute in AttributeList\n"); if (ShouldSkip("FAN.S.F00")) { NextTest(); return; } - err = TestStep3bReadTheFeatureDependentFansf00SpdAttributeInAttributeList_10(); + err = TestStep3bReadTheFeatureDependentFansf00SpdAttributeInAttributeList_11(); break; - case 11: + case 12: ChipLogProgress( - chipTool, " ***** Test Step 11 : Step 3c: Read the feature dependent FAN.S.F02(RCK) attribute in AttributeList\n"); + chipTool, " ***** Test Step 12 : Step 3c: Read the feature dependent FAN.S.F02(RCK) attribute in AttributeList\n"); if (ShouldSkip("FAN.S.F02")) { NextTest(); return; } - err = TestStep3cReadTheFeatureDependentFansf02rckAttributeInAttributeList_11(); + err = TestStep3cReadTheFeatureDependentFansf02rckAttributeInAttributeList_12(); break; - case 12: + case 13: ChipLogProgress( - chipTool, " ***** Test Step 12 : Step 3d: Read the feature dependent FAN.S.F03(WND) attribute in AttributeList\n"); + chipTool, " ***** Test Step 13 : Step 3d: Read the feature dependent FAN.S.F03(WND) attribute in AttributeList\n"); if (ShouldSkip("FAN.S.F03")) { NextTest(); return; } - err = TestStep3dReadTheFeatureDependentFansf03wndAttributeInAttributeList_12(); + err = TestStep3dReadTheFeatureDependentFansf03wndAttributeInAttributeList_13(); break; - case 13: + case 14: ChipLogProgress( - chipTool, " ***** Test Step 13 : Step 3e: Read the feature dependent FAN.S.F05(DIR) attribute in AttributeList\n"); + chipTool, " ***** Test Step 14 : Step 3e: Read the feature dependent FAN.S.F05(DIR) attribute in AttributeList\n"); if (ShouldSkip("FAN.S.F05")) { NextTest(); return; } - err = TestStep3eReadTheFeatureDependentFansf05dirAttributeInAttributeList_13(); + err = TestStep3eReadTheFeatureDependentFansf05dirAttributeInAttributeList_14(); break; - case 14: + case 15: ChipLogProgress(chipTool, - " ***** Test Step 14 : Step 3f: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 15 : Step 3f: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -49387,19 +51349,19 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep3fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14(); + err = TestStep3fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AcceptedCommandList\n"); + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AcceptedCommandList\n"); if (ShouldSkip(" !FAN.S.C00.Rsp ")) { NextTest(); return; } - err = TestStep4aReadTheGlobalAttributeAcceptedCommandList_15(); + err = TestStep4aReadTheGlobalAttributeAcceptedCommandList_16(); break; - case 16: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 16 : Step 4b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 17 : Step 4b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -49409,20 +51371,20 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16(); + err = TestStep4bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17(); break; - case 17: + case 18: ChipLogProgress( - chipTool, " ***** Test Step 17 : Step 5a: Read the optional command (ResetCondition) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 18 : Step 5a: Read the optional command (ResetCondition) in AcceptedCommandList\n"); if (ShouldSkip("FAN.S.C00.Rsp")) { NextTest(); return; } - err = TestStep5aReadTheOptionalCommandResetConditionInAcceptedCommandList_17(); + err = TestStep5aReadTheOptionalCommandResetConditionInAcceptedCommandList_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 5b: TH reads from the DUT the GeneratedCommandList attribute. 1.The list SHALL NOT " + " ***** Test Step 19 : Step 5b: TH reads from the DUT the GeneratedCommandList attribute. 1.The list SHALL NOT " "contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY " "contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is " "the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in " @@ -49432,7 +51394,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep5bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); + err = TestStep5bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); break; } @@ -49502,6 +51464,9 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -49515,7 +51480,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 19; + const uint16_t mTestCount = 20; chip::Optional mNodeId; chip::Optional mCluster; @@ -49685,6 +51650,36 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterFanControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList 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, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_10() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterFanControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); @@ -49707,7 +51702,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadTheFeatureDependentFansf00SpdAttributeInAttributeList_10() + CHIP_ERROR TestStep3bReadTheFeatureDependentFansf00SpdAttributeInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -49730,7 +51725,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3cReadTheFeatureDependentFansf02rckAttributeInAttributeList_11() + CHIP_ERROR TestStep3cReadTheFeatureDependentFansf02rckAttributeInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -49752,7 +51747,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3dReadTheFeatureDependentFansf03wndAttributeInAttributeList_12() + CHIP_ERROR TestStep3dReadTheFeatureDependentFansf03wndAttributeInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -49774,7 +51769,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3eReadTheFeatureDependentFansf05dirAttributeInAttributeList_13() + CHIP_ERROR TestStep3eReadTheFeatureDependentFansf05dirAttributeInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -49796,7 +51791,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep3fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14() + TestStep3fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -49806,7 +51801,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep4aReadTheGlobalAttributeAcceptedCommandList_15() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAcceptedCommandList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -49831,7 +51826,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16() + TestStep4bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -49841,7 +51836,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep5aReadTheOptionalCommandResetConditionInAcceptedCommandList_17() + CHIP_ERROR TestStep5aReadTheOptionalCommandResetConditionInAcceptedCommandList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -49863,7 +51858,7 @@ class Test_TC_FAN_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep5bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() + TestStep5bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -51753,15 +53748,35 @@ class Test_TC_CGEN_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4ReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 6: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 7: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 5: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 7: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_7(); break; } @@ -51792,6 +53807,12 @@ class Test_TC_CGEN_1_1 : public TestCommandBridge { case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -51805,7 +53826,7 @@ class Test_TC_CGEN_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 6; + const uint16_t mTestCount = 8; chip::Optional mNodeId; chip::Optional mCluster; @@ -51894,6 +53915,7 @@ class Test_TC_CGEN_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -51904,7 +53926,39 @@ class Test_TC_CGEN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_4() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterGeneralCommissioning alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + 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); + + 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, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -51929,7 +53983,7 @@ class Test_TC_CGEN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_5() + CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -52334,63 +54388,75 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4b: Read optional attribute(UpTime) in AttributeList\n"); - if (ShouldSkip("DGGEN.S.A0002")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadOptionalAttributeUpTimeInAttributeList_4(); + err = TestStep4aReadTheGlobalAttributeAttributeList_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4b: Read optional attribute(UpTime) in AttributeList\n"); + if (ShouldSkip("DGGEN.S.A0002")) { + NextTest(); + return; + } + err = TestStep4bReadOptionalAttributeUpTimeInAttributeList_5(); + break; + case 6: ChipLogProgress( - chipTool, " ***** Test Step 5 : Step 4c: Read optional attribute(TotalOperationalHours) in AttributeList\n"); + chipTool, " ***** Test Step 6 : Step 4c: Read optional attribute(TotalOperationalHours) in AttributeList\n"); if (ShouldSkip("DGGEN.S.A0003")) { NextTest(); return; } - err = TestStep4cReadOptionalAttributeTotalOperationalHoursInAttributeList_5(); + err = TestStep4cReadOptionalAttributeTotalOperationalHoursInAttributeList_6(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4d: Read optional attribute(BootReason) in AttributeList\n"); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4d: Read optional attribute(BootReason) in AttributeList\n"); if (ShouldSkip("DGGEN.S.A0004")) { NextTest(); return; } - err = TestStep4dReadOptionalAttributeBootReasonInAttributeList_6(); + err = TestStep4dReadOptionalAttributeBootReasonInAttributeList_7(); break; - case 7: + case 8: ChipLogProgress( - chipTool, " ***** Test Step 7 : Step 4e: Read optional attribute(ActiveHardwareFaults) in AttributeList\n"); + chipTool, " ***** Test Step 8 : Step 4e: Read optional attribute(ActiveHardwareFaults) in AttributeList\n"); if (ShouldSkip("DGGEN.S.A0005")) { NextTest(); return; } - err = TestStep4eReadOptionalAttributeActiveHardwareFaultsInAttributeList_7(); + err = TestStep4eReadOptionalAttributeActiveHardwareFaultsInAttributeList_8(); break; - case 8: + case 9: ChipLogProgress( - chipTool, " ***** Test Step 8 : Step 4f: Read optional attribute(ActiveRadioFaults) in AttributeList\n"); + chipTool, " ***** Test Step 9 : Step 4f: Read optional attribute(ActiveRadioFaults) in AttributeList\n"); if (ShouldSkip("DGGEN.S.A0006")) { NextTest(); return; } - err = TestStep4fReadOptionalAttributeActiveRadioFaultsInAttributeList_8(); + err = TestStep4fReadOptionalAttributeActiveRadioFaultsInAttributeList_9(); break; - case 9: + case 10: ChipLogProgress( - chipTool, " ***** Test Step 9 : Step 4g: Read optional attribute(ActiveNetworkFaults) in AttributeList\n"); + chipTool, " ***** Test Step 10 : Step 4g: Read optional attribute(ActiveNetworkFaults) in AttributeList\n"); if (ShouldSkip("DGGEN.S.A0007")) { NextTest(); return; } - err = TestStep4gReadOptionalAttributeActiveNetworkFaultsInAttributeList_9(); + err = TestStep4gReadOptionalAttributeActiveNetworkFaultsInAttributeList_10(); break; - case 10: + case 11: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 4h: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 11 : Step 4h: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -52400,15 +54466,61 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4hThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); - break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_11(); + err = TestStep4hThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11(); break; case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 5b: Read optional event(HardwareFaultChange) in EventList\n"); + if (ShouldSkip("DGGEN.S.E00 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 5c: Read optional event(RadioFaultChange) in EventList\n"); + if (ShouldSkip("DGGEN.S.E01 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 5d: Read optional event(NetworkFaultChange) in EventList\n"); + if (ShouldSkip("DGGEN.S.E02 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 16: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 16 : Step 5e: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5eThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16(); + break; + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_17(); + break; + case 18: + ChipLogProgress(chipTool, + " ***** Test Step 18 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -52418,11 +54530,11 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); break; - case 13: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 13 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 19 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -52431,7 +54543,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); break; } @@ -52486,6 +54598,24 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -52499,7 +54629,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 14; + const uint16_t mTestCount = 20; chip::Optional mNodeId; chip::Optional mCluster; @@ -52586,6 +54716,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 8UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -52596,7 +54727,37 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadOptionalAttributeUpTimeInAttributeList_4() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterGeneralDiagnostics alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList 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, 8UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadOptionalAttributeUpTimeInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -52619,7 +54780,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadOptionalAttributeTotalOperationalHoursInAttributeList_5() + CHIP_ERROR TestStep4cReadOptionalAttributeTotalOperationalHoursInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -52642,7 +54803,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadOptionalAttributeBootReasonInAttributeList_6() + CHIP_ERROR TestStep4dReadOptionalAttributeBootReasonInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -52665,7 +54826,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadOptionalAttributeActiveHardwareFaultsInAttributeList_7() + CHIP_ERROR TestStep4eReadOptionalAttributeActiveHardwareFaultsInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -52688,7 +54849,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadOptionalAttributeActiveRadioFaultsInAttributeList_8() + CHIP_ERROR TestStep4fReadOptionalAttributeActiveRadioFaultsInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -52711,7 +54872,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gReadOptionalAttributeActiveNetworkFaultsInAttributeList_9() + CHIP_ERROR TestStep4gReadOptionalAttributeActiveNetworkFaultsInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -52735,7 +54896,18 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4hThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() + TestStep4hThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5eThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -52745,7 +54917,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_11() + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -52769,7 +54941,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -52780,7 +54952,7 @@ class Test_TC_DGGEN_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13() + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -53347,11 +55519,23 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip(" !PICS_EVENT_LIST_ENABLED ")) { + NextTest(); + return; + } + err = TestStep4aThReadsAttributeListFromDut_5(); + break; + case 6: ChipLogProgress(chipTool, - " ***** Test Step 5 : Step 4b: The list SHALL NOT contain any additional values in the standard or scoped range: " + " ***** Test Step 6 : Step 4b: The list SHALL NOT contain any additional values in the standard or scoped range: " "(0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). 2.The list MAY contain values in the Manufacturer " "Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - " "0xFFF1), these values SHALL be ignored. 3.TThe list SHALL NOT contain any values in the Test Vendor or invalid " @@ -53361,11 +55545,33 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bTheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TTheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); + err = TestStep4bTheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TTheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); break; - case 6: + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 5a: TH1 reads EventList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 8: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 5b: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional " + " ***** Test Step 8 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); + break; + case 9: + ChipLogProgress(chipTool, + " ***** Test Step 9 : Step 5b: TH reads EventList attribute from DUT. 1.The list SHALL NOT contain any additional " "values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " "(0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test Vendor or " @@ -53375,15 +55581,15 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep5bThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + err = TestStep5bThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6a: TH reads AcceptedCommandList from DUT\n"); - err = TestStep6aThReadsAcceptedCommandListFromDut_7(); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6a: TH reads AcceptedCommandList from DUT\n"); + err = TestStep6aThReadsAcceptedCommandListFromDut_10(); break; - case 8: + case 11: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 11 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -53392,15 +55598,15 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 7a: TH reads GeneratedCommandList from DUT\n"); - err = TestStep7aThReadsGeneratedCommandListFromDut_9(); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 7a: TH reads GeneratedCommandList from DUT\n"); + err = TestStep7aThReadsGeneratedCommandListFromDut_12(); break; - case 10: + case 13: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 13 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -53409,7 +55615,7 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13(); break; } @@ -53455,6 +55661,15 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -53468,7 +55683,7 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 11; + const uint16_t mTestCount = 14; chip::Optional mNodeId; chip::Optional mCluster; @@ -53565,6 +55780,38 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT 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, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); @@ -53588,7 +55835,7 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4bTheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TTheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() + TestStep4bTheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TTheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -53599,7 +55846,7 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep5bThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -53609,7 +55856,18 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_7() + CHIP_ERROR + TestStep5bThReadsEventListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -53636,7 +55894,7 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -53646,7 +55904,7 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aThReadsGeneratedCommandListFromDut_9() + CHIP_ERROR TestStep7aThReadsGeneratedCommandListFromDut_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -53671,7 +55929,7 @@ class Test_TC_GRPKEY_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -53746,37 +56004,49 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList attribute from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListAttributeFromDut_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4a: TH reads AttributeList attribute from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsAttributeListAttributeFromDut_5(); + break; + case 6: ChipLogProgress( - chipTool, " ***** Test Step 5 : Step 4b: Read the optional attribute(RegisteredClients) in AttributeList\n"); + chipTool, " ***** Test Step 6 : Step 4b: Read the optional attribute(RegisteredClients) in AttributeList\n"); if (ShouldSkip("ICDM.S.A0003")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeRegisteredClientsInAttributeList_5(); + err = TestStep4bReadTheOptionalAttributeRegisteredClientsInAttributeList_6(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4c: Read the optional attribute(IcdCounter) in AttributeList\n"); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4c: Read the optional attribute(IcdCounter) in AttributeList\n"); if (ShouldSkip("ICDM.S.A0004")) { NextTest(); return; } - err = TestStep4cReadTheOptionalAttributeIcdCounterInAttributeList_6(); + err = TestStep4cReadTheOptionalAttributeIcdCounterInAttributeList_7(); break; - case 7: + case 8: ChipLogProgress(chipTool, - " ***** Test Step 7 : Step 4d: Read the optional attribute(ClientsSupportedPerFabric) in AttributeList\n"); + " ***** Test Step 8 : Step 4d: Read the optional attribute(ClientsSupportedPerFabric) in AttributeList\n"); if (ShouldSkip("ICDM.S.A0005")) { NextTest(); return; } - err = TestStep4dReadTheOptionalAttributeClientsSupportedPerFabricInAttributeList_7(); + err = TestStep4dReadTheOptionalAttributeClientsSupportedPerFabricInAttributeList_8(); break; - case 8: + case 9: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 4e: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 9 : Step 4e: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -53786,37 +56056,59 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4eThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); + err = TestStep4eThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 6a: TH reads AcceptedCommandList attribute from DUT\n"); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 5a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 11: + ChipLogProgress(chipTool, + " ***** Test Step 11 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11(); + break; + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6a: TH reads AcceptedCommandList attribute from DUT\n"); if (ShouldSkip(" !ICDM.S.F00 && !ICDM.S.C03.Rsp ")) { NextTest(); return; } - err = TestStep6aThReadsAcceptedCommandListAttributeFromDut_9(); + err = TestStep6aThReadsAcceptedCommandListAttributeFromDut_12(); break; - case 10: + case 13: ChipLogProgress( - chipTool, " ***** Test Step 10 : Step 6b: TH reads AcceptedCommandList attribute from DUT if ICDM.S.F00 is true\n"); + chipTool, " ***** Test Step 13 : Step 6b: TH reads AcceptedCommandList attribute from DUT if ICDM.S.F00 is true\n"); if (ShouldSkip("ICDM.S.F00")) { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDutIfIcdmsf00IsTrue_10(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDutIfIcdmsf00IsTrue_13(); break; - case 11: + case 14: ChipLogProgress( - chipTool, " ***** Test Step 11 : Step 6c: Read the optional command (StayActiveRequest) in AttributeList\n"); + chipTool, " ***** Test Step 14 : Step 6c: Read the optional command (StayActiveRequest) in AttributeList\n"); if (ShouldSkip("ICDM.S.C03.Rsp")) { NextTest(); return; } - err = TestStep6cReadTheOptionalCommandStayActiveRequestInAttributeList_11(); + err = TestStep6cReadTheOptionalCommandStayActiveRequestInAttributeList_14(); break; - case 12: + case 15: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 6d: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 15 : Step 6d: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -53826,27 +56118,27 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6dThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); + err = TestStep6dThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 7a: TH reads GeneratedCommandList attribute from DUT\n"); + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 7a: TH reads GeneratedCommandList attribute from DUT\n"); if (ShouldSkip(" !ICDM.S.F00 ")) { NextTest(); return; } - err = TestStep7aThReadsGeneratedCommandListAttributeFromDut_13(); + err = TestStep7aThReadsGeneratedCommandListAttributeFromDut_16(); break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Step 7a: TH reads GeneratedCommandList attribute from DUT\n"); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 7a: TH reads GeneratedCommandList attribute from DUT\n"); if (ShouldSkip("ICDM.S.F00")) { NextTest(); return; } - err = TestStep7aThReadsGeneratedCommandListAttributeFromDut_14(); + err = TestStep7aThReadsGeneratedCommandListAttributeFromDut_17(); break; - case 15: + case 18: ChipLogProgress(chipTool, - " ***** Test Step 15 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 18 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -53855,7 +56147,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); break; } @@ -53916,6 +56208,15 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + 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. @@ -53929,7 +56230,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 16; + const uint16_t mTestCount = 19; chip::Optional mNodeId; chip::Optional mCluster; @@ -54023,6 +56324,35 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterICDManagement alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList attribute from DUT 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)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsAttributeListAttributeFromDut_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterICDManagement alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads AttributeList attribute from DUT Error: %@", err); @@ -54044,7 +56374,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeRegisteredClientsInAttributeList_5() + CHIP_ERROR TestStep4bReadTheOptionalAttributeRegisteredClientsInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54065,7 +56395,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheOptionalAttributeIcdCounterInAttributeList_6() + CHIP_ERROR TestStep4cReadTheOptionalAttributeIcdCounterInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54086,7 +56416,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadTheOptionalAttributeClientsSupportedPerFabricInAttributeList_7() + CHIP_ERROR TestStep4dReadTheOptionalAttributeClientsSupportedPerFabricInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54108,7 +56438,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4eThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() + TestStep4eThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -54118,7 +56448,18 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aThReadsAcceptedCommandListAttributeFromDut_9() + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aThReadsAcceptedCommandListAttributeFromDut_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54142,7 +56483,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bThReadsAcceptedCommandListAttributeFromDutIfIcdmsf00IsTrue_10() + CHIP_ERROR TestStep6bThReadsAcceptedCommandListAttributeFromDutIfIcdmsf00IsTrue_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54164,7 +56505,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6cReadTheOptionalCommandStayActiveRequestInAttributeList_11() + CHIP_ERROR TestStep6cReadTheOptionalCommandStayActiveRequestInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54186,7 +56527,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6dThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() + TestStep6dThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -54196,7 +56537,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aThReadsGeneratedCommandListAttributeFromDut_13() + CHIP_ERROR TestStep7aThReadsGeneratedCommandListAttributeFromDut_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54220,7 +56561,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7aThReadsGeneratedCommandListAttributeFromDut_14() + CHIP_ERROR TestStep7aThReadsGeneratedCommandListAttributeFromDut_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54242,7 +56583,7 @@ class Test_TC_ICDM_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -54589,25 +56930,47 @@ class Test_TC_I_1_1 : public TestCommandBridge { err = TestStep3ThReadsTheFeatureMapAttributeFromTheDut_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4: Read the global attribute: AttributeList\n"); - err = TestStep4ReadTheGlobalAttributeAttributeList_3(); + ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ThReadsAttributeListFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 5: Read the global attribute: AcceptedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeAcceptedCommandList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ThReadsAttributeListFromDut_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 5: Read the global attribute: AcceptedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeAcceptedCommandList_5(); + break; + case 6: ChipLogProgress( - chipTool, " ***** Test Step 5 : Step 6: Read the optional command(TriggerEffect) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 6 : Step 6: Read the optional command(TriggerEffect) in AcceptedCommandList\n"); if (ShouldSkip("I.S.C40.Rsp")) { NextTest(); return; } - err = TestStep6ReadTheOptionalCommandTriggerEffectInAcceptedCommandList_5(); + err = TestStep6ReadTheOptionalCommandTriggerEffectInAcceptedCommandList_6(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6: Read the global attribute: GeneratedCommandList\n"); - err = TestStep6ReadTheGlobalAttributeGeneratedCommandList_6(); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6: Read the global attribute: GeneratedCommandList\n"); + err = TestStep6ReadTheGlobalAttributeGeneratedCommandList_7(); + break; + case 8: + ChipLogProgress(chipTool, + " ***** Test Step 8 : Step 7: Read EventList attribute from the DUT. For this cluster the list is usually empty " + "but it can contain manufacturer specific event IDs.\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep7ReadEventListAttributeFromTheDutForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_8(); break; } @@ -54641,6 +57004,12 @@ class Test_TC_I_1_1 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -54654,7 +57023,7 @@ class Test_TC_I_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -54717,7 +57086,7 @@ class Test_TC_I_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_3() + CHIP_ERROR TestStep4ThReadsAttributeListFromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54725,7 +57094,34 @@ class Test_TC_I_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 4: TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4ThReadsAttributeListFromDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterIdentify alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4: TH reads AttributeList from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -54744,7 +57140,7 @@ class Test_TC_I_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeAcceptedCommandList_4() + CHIP_ERROR TestStep5ReadTheGlobalAttributeAcceptedCommandList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54765,7 +57161,7 @@ class Test_TC_I_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheOptionalCommandTriggerEffectInAcceptedCommandList_5() + CHIP_ERROR TestStep6ReadTheOptionalCommandTriggerEffectInAcceptedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54786,7 +57182,7 @@ class Test_TC_I_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeGeneratedCommandList_6() + CHIP_ERROR TestStep6ReadTheGlobalAttributeGeneratedCommandList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -54809,6 +57205,17 @@ class Test_TC_I_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + + CHIP_ERROR + TestStep7ReadEventListAttributeFromTheDutForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_8() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } }; class Test_TC_I_2_1 : public TestCommandBridge { @@ -56067,32 +58474,54 @@ class Test_TC_ILL_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4b: Read the optional attribute(Tolerance) in AttributeList\n"); - if (ShouldSkip("ILL.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeToleranceInAttributeList_4(); + err = TestStep4aReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress( - chipTool, " ***** Test Step 5 : Step 4c: Read the optional attribute(LightSensorType) in AttributeList\n"); - if (ShouldSkip("ILL.S.A0004")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4b: Read the optional attribute(Tolerance) in AttributeList\n"); + if (ShouldSkip("ILL.S.A0003")) { NextTest(); return; } - err = TestStep4cReadTheOptionalAttributeLightSensorTypeInAttributeList_5(); + err = TestStep4bReadTheOptionalAttributeToleranceInAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_6(); + ChipLogProgress( + chipTool, " ***** Test Step 6 : Step 4c: Read the optional attribute(LightSensorType) in AttributeList\n"); + if (ShouldSkip("ILL.S.A0004")) { + NextTest(); + return; + } + err = TestStep4cReadTheOptionalAttributeLightSensorTypeInAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 7: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_7(); + ChipLogProgress(chipTool, + " ***** Test Step 7 : Step 5: Read EventList attribute from the DUT.For this cluster the list is usually empty but " + "it can contain manufacturer specific event IDs.\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 7: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_9(); break; } @@ -56129,6 +58558,12 @@ class Test_TC_ILL_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; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -56142,7 +58577,7 @@ class Test_TC_ILL_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 8; + const uint16_t mTestCount = 10; chip::Optional mNodeId; chip::Optional mCluster; @@ -56229,6 +58664,7 @@ class Test_TC_ILL_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -56239,7 +58675,37 @@ class Test_TC_ILL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeToleranceInAttributeList_4() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterIlluminanceMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList 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)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheOptionalAttributeToleranceInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -56262,7 +58728,7 @@ class Test_TC_ILL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheOptionalAttributeLightSensorTypeInAttributeList_5() + CHIP_ERROR TestStep4cReadTheOptionalAttributeLightSensorTypeInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -56285,7 +58751,18 @@ class Test_TC_ILL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_6() + CHIP_ERROR + TestStep5ReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_7() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -56311,7 +58788,7 @@ class Test_TC_ILL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_7() + CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57006,97 +59483,117 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_6(); break; case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep3aReadTheGlobalAttributeAttributeList_7(); + break; + case 8: ChipLogProgress(chipTool, - " ***** Test Step 7 : Step 3b: Read the optional attribute(StartUpCurrentLevel and RemainingTime) in " + " ***** Test Step 8 : Step 3b: Read the optional attribute(StartUpCurrentLevel and RemainingTime) in " "AttributeList\n"); if (ShouldSkip("LVL.S.F01")) { NextTest(); return; } - err = TestStep3bReadTheOptionalAttributeStartUpCurrentLevelAndRemainingTimeInAttributeList_7(); + err = TestStep3bReadTheOptionalAttributeStartUpCurrentLevelAndRemainingTimeInAttributeList_8(); break; - case 8: + case 9: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 3c: Read the optional attribute(CurrentFrequency, MinFrequency and MinFrequency) in " + " ***** Test Step 9 : Step 3c: Read the optional attribute(CurrentFrequency, MinFrequency and MinFrequency) in " "AttributeList\n"); if (ShouldSkip("LVL.S.F02")) { NextTest(); return; } - err = TestStep3cReadTheOptionalAttributeCurrentFrequencyMinFrequencyAndMinFrequencyInAttributeList_8(); + err = TestStep3cReadTheOptionalAttributeCurrentFrequencyMinFrequencyAndMinFrequencyInAttributeList_9(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 3d: Read the optional attribute(MinLevel) in AttributeList\n"); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 3d: Read the optional attribute(MinLevel) in AttributeList\n"); if (ShouldSkip("LVL.S.A0002")) { NextTest(); return; } - err = TestStep3dReadTheOptionalAttributeMinLevelInAttributeList_9(); + err = TestStep3dReadTheOptionalAttributeMinLevelInAttributeList_10(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 3e: Read the optional attribute(MaxLevel) in AttributeList\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 3e: Read the optional attribute(MaxLevel) in AttributeList\n"); if (ShouldSkip("LVL.S.A0003")) { NextTest(); return; } - err = TestStep3eReadTheOptionalAttributeMaxLevelInAttributeList_10(); + err = TestStep3eReadTheOptionalAttributeMaxLevelInAttributeList_11(); break; - case 11: + case 12: ChipLogProgress( - chipTool, " ***** Test Step 11 : Step 3f: Read the optional attribute(OnOffTransitionTime) in AttributeList\n"); + chipTool, " ***** Test Step 12 : Step 3f: Read the optional attribute(OnOffTransitionTime) in AttributeList\n"); if (ShouldSkip("LVL.S.A0010")) { NextTest(); return; } - err = TestStep3fReadTheOptionalAttributeOnOffTransitionTimeInAttributeList_11(); + err = TestStep3fReadTheOptionalAttributeOnOffTransitionTimeInAttributeList_12(); break; - case 12: + case 13: ChipLogProgress( - chipTool, " ***** Test Step 12 : Step 3g: Read the optional attribute(OnTransitionTime) in AttributeList\n"); + chipTool, " ***** Test Step 13 : Step 3g: Read the optional attribute(OnTransitionTime) in AttributeList\n"); if (ShouldSkip("LVL.S.A0012")) { NextTest(); return; } - err = TestStep3gReadTheOptionalAttributeOnTransitionTimeInAttributeList_12(); + err = TestStep3gReadTheOptionalAttributeOnTransitionTimeInAttributeList_13(); break; - case 13: + case 14: ChipLogProgress( - chipTool, " ***** Test Step 13 : Step 3h: Read the optional attribute(OffTransitionTime) in AttributeList\n"); + chipTool, " ***** Test Step 14 : Step 3h: Read the optional attribute(OffTransitionTime) in AttributeList\n"); if (ShouldSkip("LVL.S.A0013")) { NextTest(); return; } - err = TestStep3hReadTheOptionalAttributeOffTransitionTimeInAttributeList_13(); + err = TestStep3hReadTheOptionalAttributeOffTransitionTimeInAttributeList_14(); break; - case 14: + case 15: ChipLogProgress( - chipTool, " ***** Test Step 14 : Step 3i: Read the optional attribute(DefaultMoveRate) in AttributeList\n"); + chipTool, " ***** Test Step 15 : Step 3i: Read the optional attribute(DefaultMoveRate) in AttributeList\n"); if (ShouldSkip("LVL.S.A0014")) { NextTest(); return; } - err = TestStep3iReadTheOptionalAttributeDefaultMoveRateInAttributeList_14(); - break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4aReadTheGlobalAttributeAcceptedCommandList_15(); + err = TestStep3iReadTheOptionalAttributeDefaultMoveRateInAttributeList_15(); break; case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4aReadTheGlobalAttributeAcceptedCommandList_16(); + break; + case 17: ChipLogProgress(chipTool, - " ***** Test Step 16 : Step 4a.1: Read the Feature-dependent(LVL.S.F02) command in AcceptedCommandList\n"); + " ***** Test Step 17 : Step 4a.1: Read the Feature-dependent(LVL.S.F02) command in AcceptedCommandList\n"); if (ShouldSkip("LVL.S.F02")) { NextTest(); return; } - err = TestStep4a1ReadTheFeatureDependentLVLSF02CommandInAcceptedCommandList_16(); + err = TestStep4a1ReadTheFeatureDependentLVLSF02CommandInAcceptedCommandList_17(); break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4b: Read the global attribute: GeneratedCommandList\n"); - err = TestStep4bReadTheGlobalAttributeGeneratedCommandList_17(); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Step 4b: Read the global attribute: GeneratedCommandList\n"); + err = TestStep4bReadTheGlobalAttributeGeneratedCommandList_18(); break; + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Step 5: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -57162,6 +59659,12 @@ class Test_TC_LVL_1_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; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -57175,7 +59678,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 18; + const uint16_t mTestCount = 20; chip::Optional mNodeId; chip::Optional mCluster; @@ -57302,6 +59805,35 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 15UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 17UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_7() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); @@ -57323,7 +59855,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadTheOptionalAttributeStartUpCurrentLevelAndRemainingTimeInAttributeList_7() + CHIP_ERROR TestStep3bReadTheOptionalAttributeStartUpCurrentLevelAndRemainingTimeInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57345,7 +59877,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3cReadTheOptionalAttributeCurrentFrequencyMinFrequencyAndMinFrequencyInAttributeList_8() + CHIP_ERROR TestStep3cReadTheOptionalAttributeCurrentFrequencyMinFrequencyAndMinFrequencyInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57370,7 +59902,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3dReadTheOptionalAttributeMinLevelInAttributeList_9() + CHIP_ERROR TestStep3dReadTheOptionalAttributeMinLevelInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57391,7 +59923,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3eReadTheOptionalAttributeMaxLevelInAttributeList_10() + CHIP_ERROR TestStep3eReadTheOptionalAttributeMaxLevelInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57412,7 +59944,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3fReadTheOptionalAttributeOnOffTransitionTimeInAttributeList_11() + CHIP_ERROR TestStep3fReadTheOptionalAttributeOnOffTransitionTimeInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57433,7 +59965,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3gReadTheOptionalAttributeOnTransitionTimeInAttributeList_12() + CHIP_ERROR TestStep3gReadTheOptionalAttributeOnTransitionTimeInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57454,7 +59986,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3hReadTheOptionalAttributeOffTransitionTimeInAttributeList_13() + CHIP_ERROR TestStep3hReadTheOptionalAttributeOffTransitionTimeInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57475,7 +60007,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3iReadTheOptionalAttributeDefaultMoveRateInAttributeList_14() + CHIP_ERROR TestStep3iReadTheOptionalAttributeDefaultMoveRateInAttributeList_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57496,7 +60028,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4aReadTheGlobalAttributeAcceptedCommandList_15() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAcceptedCommandList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57524,7 +60056,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4a1ReadTheFeatureDependentLVLSF02CommandInAcceptedCommandList_16() + CHIP_ERROR TestStep4a1ReadTheFeatureDependentLVLSF02CommandInAcceptedCommandList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -57545,7 +60077,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheGlobalAttributeGeneratedCommandList_17() + CHIP_ERROR TestStep4bReadTheGlobalAttributeGeneratedCommandList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -63736,15 +66268,35 @@ class Test_TC_LCFG_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4ThReadsAttributeListFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 6: TH reads AcceptedCommandList from DUT\n"); - err = TestStep6ThReadsAcceptedCommandListFromDut_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ThReadsAttributeListFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 7: TH reads GeneratedCommandList from DUT\n"); - err = TestStep7ThReadsGeneratedCommandListFromDut_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 5: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6: TH reads AcceptedCommandList from DUT\n"); + err = TestStep6ThReadsAcceptedCommandListFromDut_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 7: TH reads GeneratedCommandList from DUT\n"); + err = TestStep7ThReadsGeneratedCommandListFromDut_7(); break; } @@ -63775,6 +66327,12 @@ class Test_TC_LCFG_1_1 : public TestCommandBridge { case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -63788,7 +66346,7 @@ class Test_TC_LCFG_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 6; + const uint16_t mTestCount = 8; chip::Optional mNodeId; chip::Optional mCluster; @@ -63864,6 +66422,36 @@ class Test_TC_LCFG_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4: TH reads AttributeList from DUT 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, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4ThReadsAttributeListFromDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterLocalizationConfiguration alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4: TH reads AttributeList from DUT Error: %@", err); @@ -63884,7 +66472,7 @@ class Test_TC_LCFG_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ThReadsAcceptedCommandListFromDut_4() + CHIP_ERROR TestStep6ThReadsAcceptedCommandListFromDut_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -63910,7 +66498,7 @@ class Test_TC_LCFG_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ThReadsGeneratedCommandListFromDut_5() + CHIP_ERROR TestStep7ThReadsGeneratedCommandListFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -64002,24 +66590,44 @@ class Test_TC_LUNIT_1_2 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_4(); break; case 5: - ChipLogProgress( - chipTool, " ***** Test Step 5 : Step 4b: TH reads Feature dependent(LUNIT.S.F00) attribute in AttributeList\n"); - if (ShouldSkip("LUNIT.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bThReadsFeatureDependentLUNITSF00AttributeInAttributeList_5(); + err = TestStep4aThReadsAttributeListFromDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6: TH reads AcceptedCommandList from DUT\n"); - err = TestStep6ThReadsAcceptedCommandListFromDut_6(); + ChipLogProgress( + chipTool, " ***** Test Step 6 : Step 4b: TH reads Feature dependent(LUNIT.S.F00) attribute in AttributeList\n"); + if (ShouldSkip("LUNIT.S.F00")) { + NextTest(); + return; + } + err = TestStep4bThReadsFeatureDependentLUNITSF00AttributeInAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 7: TH reads GeneratedCommandList from DUT\n"); - err = TestStep7ThReadsGeneratedCommandListFromDut_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 5: TH reads EventList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6: TH reads AcceptedCommandList from DUT\n"); + err = TestStep6ThReadsAcceptedCommandListFromDut_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 7: TH reads GeneratedCommandList from DUT\n"); + err = TestStep7ThReadsGeneratedCommandListFromDut_9(); break; } @@ -64056,6 +66664,12 @@ class Test_TC_LUNIT_1_2 : 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; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -64069,7 +66683,7 @@ class Test_TC_LUNIT_1_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 8; + const uint16_t mTestCount = 10; chip::Optional mNodeId; chip::Optional mCluster; @@ -64166,6 +66780,7 @@ class Test_TC_LUNIT_1_2 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -64176,7 +66791,32 @@ class Test_TC_LUNIT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsFeatureDependentLUNITSF00AttributeInAttributeList_5() + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterUnitLocalization alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bThReadsFeatureDependentLUNITSF00AttributeInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -64197,7 +66837,7 @@ class Test_TC_LUNIT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ThReadsAcceptedCommandListFromDut_6() + CHIP_ERROR TestStep6ThReadsAcceptedCommandListFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -64221,7 +66861,7 @@ class Test_TC_LUNIT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ThReadsGeneratedCommandListFromDut_7() + CHIP_ERROR TestStep7ThReadsGeneratedCommandListFromDut_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -64649,33 +67289,53 @@ class Test_TC_LTIME_1_2 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_3(); break; case 4: - ChipLogProgress(chipTool, - " ***** Test Step 4 : Step 4b: TH reads optional attribute(ActiveCalendarType) in AttributeList from DUT\n"); - if (ShouldSkip("LTIME.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bThReadsOptionalAttributeActiveCalendarTypeInAttributeListFromDut_4(); + err = TestStep4aThReadsAttributeListFromDut_4(); break; case 5: ChipLogProgress(chipTool, - " ***** Test Step 5 : Step 4c: TH reads optional attribute(SupportedCalendarTypes) in AttributeList from DUT\n"); - if (ShouldSkip("LTIME.S.A0002")) { + " ***** Test Step 5 : Step 4b: TH reads optional attribute(ActiveCalendarType) in AttributeList from DUT\n"); + if (ShouldSkip("LTIME.S.A0001")) { NextTest(); return; } - err = TestStep4cThReadsOptionalAttributeSupportedCalendarTypesInAttributeListFromDut_5(); + err = TestStep4bThReadsOptionalAttributeActiveCalendarTypeInAttributeListFromDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6: TH reads AcceptedCommandList from DUT\n"); - err = TestStep6ThReadsAcceptedCommandListFromDut_6(); + ChipLogProgress(chipTool, + " ***** Test Step 6 : Step 4c: TH reads optional attribute(SupportedCalendarTypes) in AttributeList from DUT\n"); + if (ShouldSkip("LTIME.S.A0002")) { + NextTest(); + return; + } + err = TestStep4cThReadsOptionalAttributeSupportedCalendarTypesInAttributeListFromDut_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 7: TH reads GeneratedCommandList from DUT\n"); - err = TestStep7ThReadsGeneratedCommandListFromDut_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 5: TH reads EventList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6: TH reads AcceptedCommandList from DUT\n"); + err = TestStep6ThReadsAcceptedCommandListFromDut_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 7: TH reads GeneratedCommandList from DUT\n"); + err = TestStep7ThReadsGeneratedCommandListFromDut_9(); break; } @@ -64712,6 +67372,12 @@ class Test_TC_LTIME_1_2 : 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; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -64725,7 +67391,7 @@ class Test_TC_LTIME_1_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 8; + const uint16_t mTestCount = 10; chip::Optional mNodeId; chip::Optional mCluster; @@ -64799,6 +67465,35 @@ class Test_TC_LTIME_1_2 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterTimeFormatLocalization alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); @@ -64818,7 +67513,7 @@ class Test_TC_LTIME_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsOptionalAttributeActiveCalendarTypeInAttributeListFromDut_4() + CHIP_ERROR TestStep4bThReadsOptionalAttributeActiveCalendarTypeInAttributeListFromDut_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -64841,7 +67536,7 @@ class Test_TC_LTIME_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cThReadsOptionalAttributeSupportedCalendarTypesInAttributeListFromDut_5() + CHIP_ERROR TestStep4cThReadsOptionalAttributeSupportedCalendarTypesInAttributeListFromDut_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -64864,7 +67559,7 @@ class Test_TC_LTIME_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ThReadsAcceptedCommandListFromDut_6() + CHIP_ERROR TestStep6ThReadsAcceptedCommandListFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -64890,7 +67585,7 @@ class Test_TC_LTIME_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ThReadsGeneratedCommandListFromDut_7() + CHIP_ERROR TestStep7ThReadsGeneratedCommandListFromDut_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -64969,16 +67664,36 @@ class Test_TC_LOWPOWER_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 3: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3ReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep3ReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_5(); break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -65008,6 +67723,12 @@ class Test_TC_LOWPOWER_1_1 : public TestCommandBridge { case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -65021,7 +67742,7 @@ class Test_TC_LOWPOWER_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 6; + const uint16_t mTestCount = 8; chip::Optional mNodeId; chip::Optional mCluster; @@ -65091,6 +67812,36 @@ class Test_TC_LOWPOWER_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterLowPower alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("AttributeList", [actualValue count], static_cast(6))); + VerifyOrReturn(CheckValue("", actualValue[0], 65528UL)); + VerifyOrReturn(CheckValue("", actualValue[1], 65529UL)); + VerifyOrReturn(CheckValue("", actualValue[2], 65530UL)); + VerifyOrReturn(CheckValue("", actualValue[3], 65531UL)); + VerifyOrReturn(CheckValue("", actualValue[4], 65532UL)); + VerifyOrReturn(CheckValue("", actualValue[5], 65533UL)); + } + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3ReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterLowPower alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 3: Read the global attribute: AttributeList Error: %@", err); @@ -65113,7 +67864,7 @@ class Test_TC_LOWPOWER_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_4() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -65138,7 +67889,7 @@ class Test_TC_LOWPOWER_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_5() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -65246,16 +67997,36 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep3aReadTheGlobalAttributeAttributeList_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_9(); break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -65294,6 +68065,12 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -65307,7 +68084,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 11; chip::Optional mNodeId; chip::Optional mCluster; @@ -65442,6 +68219,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -65452,7 +68230,32 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_7() + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_7() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterKeypadInput alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -65473,7 +68276,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_8() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -65559,32 +68362,52 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3b: Read the optional attribute(CatalogList) in AttributeList\n"); - if (ShouldSkip("APPLAUNCHER.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep3bReadTheOptionalAttributeCatalogListInAttributeList_5(); + err = TestStep3aReadTheGlobalAttributeAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3c: Read the optional attribute(CurrentApp) in AttributeList\n"); - if (ShouldSkip("APPLAUNCHER.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3b: Read the optional attribute(CatalogList) in AttributeList\n"); + if (ShouldSkip("APPLAUNCHER.S.A0000")) { NextTest(); return; } - err = TestStep3cReadTheOptionalAttributeCurrentAppInAttributeList_6(); + err = TestStep3bReadTheOptionalAttributeCatalogListInAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 3c: Read the optional attribute(CurrentApp) in AttributeList\n"); + if (ShouldSkip("APPLAUNCHER.S.A0001")) { + NextTest(); + return; + } + err = TestStep3cReadTheOptionalAttributeCurrentAppInAttributeList_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_8(); break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_9(); + break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -65623,6 +68446,12 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -65636,7 +68465,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 11; chip::Optional mNodeId; chip::Optional mCluster; @@ -65738,6 +68567,34 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterApplicationLauncher alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); @@ -65756,7 +68613,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadTheOptionalAttributeCatalogListInAttributeList_5() + CHIP_ERROR TestStep3bReadTheOptionalAttributeCatalogListInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -65779,7 +68636,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3cReadTheOptionalAttributeCurrentAppInAttributeList_6() + CHIP_ERROR TestStep3cReadTheOptionalAttributeCurrentAppInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -65802,7 +68659,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_7() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -65827,7 +68684,7 @@ class Test_TC_APPLAUNCHER_1_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_8() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -65916,32 +68773,52 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3b: Read the optional attribute(InputList) in AttributeList\n"); - if (ShouldSkip("MEDIAINPUT.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep3bReadTheOptionalAttributeInputListInAttributeList_5(); + err = TestStep3aReadTheGlobalAttributeAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3c: Read the optional attribute(CurrentInput) in AttributeList\n"); - if (ShouldSkip("MEDIAINPUT.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3b: Read the optional attribute(InputList) in AttributeList\n"); + if (ShouldSkip("MEDIAINPUT.S.A0000")) { NextTest(); return; } - err = TestStep3cReadTheOptionalAttributeCurrentInputInAttributeList_6(); + err = TestStep3bReadTheOptionalAttributeInputListInAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 3c: Read the optional attribute(CurrentInput) in AttributeList\n"); + if (ShouldSkip("MEDIAINPUT.S.A0001")) { + NextTest(); + return; + } + err = TestStep3cReadTheOptionalAttributeCurrentInputInAttributeList_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_9(); break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -65980,6 +68857,12 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -65993,7 +68876,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 11; chip::Optional mNodeId; chip::Optional mCluster; @@ -66090,6 +68973,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -66100,7 +68984,32 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadTheOptionalAttributeInputListInAttributeList_5() + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterMediaInput alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3bReadTheOptionalAttributeInputListInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66121,7 +69030,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3cReadTheOptionalAttributeCurrentInputInAttributeList_6() + CHIP_ERROR TestStep3cReadTheOptionalAttributeCurrentInputInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66142,7 +69051,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_7() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66166,7 +69075,7 @@ class Test_TC_MEDIAINPUT_1_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_8() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66243,24 +69152,44 @@ class Test_TC_WAKEONLAN_1_5 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3b: Read the optional attribute(MACAddress) in AttributeList\n"); - if (ShouldSkip("WAKEONLAN.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep3bReadTheOptionalAttributeMACAddressInAttributeList_4(); + err = TestStep3aReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3b: Read the optional attribute(MACAddress) in AttributeList\n"); + if (ShouldSkip("WAKEONLAN.S.A0000")) { + NextTest(); + return; + } + err = TestStep3bReadTheOptionalAttributeMACAddressInAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_6(); break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -66293,6 +69222,12 @@ class Test_TC_WAKEONLAN_1_5 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -66306,7 +69241,7 @@ class Test_TC_WAKEONLAN_1_5 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -66376,6 +69311,32 @@ class Test_TC_WAKEONLAN_1_5 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterWakeOnLAN alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterWakeOnLAN alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); @@ -66394,7 +69355,7 @@ class Test_TC_WAKEONLAN_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadTheOptionalAttributeMACAddressInAttributeList_4() + CHIP_ERROR TestStep3bReadTheOptionalAttributeMACAddressInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66415,7 +69376,7 @@ class Test_TC_WAKEONLAN_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_5() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66439,7 +69400,7 @@ class Test_TC_WAKEONLAN_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_6() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66538,75 +69499,95 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3b: Read the optional attribute(ChannelList): AttributeList\n"); - if (ShouldSkip("CHANNEL.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep3bReadTheOptionalAttributeChannelListAttributeList_6(); + err = TestStep3aReadTheGlobalAttributeAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 3c: Reading optional attribute(Lineup) in AttributeList\n"); - if (ShouldSkip("CHANNEL.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 3b: Read the optional attribute(ChannelList): AttributeList\n"); + if (ShouldSkip("CHANNEL.S.A0000")) { NextTest(); return; } - err = TestStep3cReadingOptionalAttributeLineupInAttributeList_7(); + err = TestStep3bReadTheOptionalAttributeChannelListAttributeList_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 3d: Read the optional attribute(CurrentChannel): AttributeList\n"); - if (ShouldSkip("CHANNEL.S.A0002")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 3c: Reading optional attribute(Lineup) in AttributeList\n"); + if (ShouldSkip("CHANNEL.S.A0001")) { NextTest(); return; } - err = TestStep3dReadTheOptionalAttributeCurrentChannelAttributeList_8(); + err = TestStep3cReadingOptionalAttributeLineupInAttributeList_8(); break; case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 3d: Read the optional attribute(CurrentChannel): AttributeList\n"); + if (ShouldSkip("CHANNEL.S.A0002")) { + NextTest(); + return; + } + err = TestStep3dReadTheOptionalAttributeCurrentChannelAttributeList_9(); + break; + case 10: ChipLogProgress( - chipTool, " ***** Test Step 9 : Step 4a: Read the optional command(ChangeChannel) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 10 : Step 4a: Read the optional command(ChangeChannel) in AcceptedCommandList\n"); if (ShouldSkip("CHANNEL.S.C00.Rsp")) { NextTest(); return; } - err = TestStep4aReadTheOptionalCommandChangeChannelInAcceptedCommandList_9(); + err = TestStep4aReadTheOptionalCommandChangeChannelInAcceptedCommandList_10(); break; - case 10: + case 11: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 4b: Read the optional command(ChangeChannelByNumber) in AcceptedCommandList\n"); + " ***** Test Step 11 : Step 4b: Read the optional command(ChangeChannelByNumber) in AcceptedCommandList\n"); if (ShouldSkip("CHANNEL.S.C02.Rsp")) { NextTest(); return; } - err = TestStep4bReadTheOptionalCommandChangeChannelByNumberInAcceptedCommandList_10(); + err = TestStep4bReadTheOptionalCommandChangeChannelByNumberInAcceptedCommandList_11(); break; - case 11: + case 12: ChipLogProgress( - chipTool, " ***** Test Step 11 : Step 4c: Read the optional command(SkipChannel) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 12 : Step 4c: Read the optional command(SkipChannel) in AcceptedCommandList\n"); if (ShouldSkip("CHANNEL.S.C03.Rsp")) { NextTest(); return; } - err = TestStep4cReadTheOptionalCommandSkipChannelInAcceptedCommandList_11(); + err = TestStep4cReadTheOptionalCommandSkipChannelInAcceptedCommandList_12(); break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 5a: Read the global attribute: GeneratedCommandList\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 5a: Read the global attribute: GeneratedCommandList\n"); if (ShouldSkip("( !CHANNEL.S.F00 && !CHANNEL.S.F01 )")) { NextTest(); return; } - err = TestStep5aReadTheGlobalAttributeGeneratedCommandList_12(); + err = TestStep5aReadTheGlobalAttributeGeneratedCommandList_13(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 5b: Read the global attribute: GeneratedCommandList\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 5b: Read the global attribute: GeneratedCommandList\n"); if (ShouldSkip("CHANNEL.S.F00 || CHANNEL.S.F01")) { NextTest(); return; } - err = TestStep5bReadTheGlobalAttributeGeneratedCommandList_13(); + err = TestStep5bReadTheGlobalAttributeGeneratedCommandList_14(); break; + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -66660,6 +69641,12 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -66673,7 +69660,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 14; + const uint16_t mTestCount = 16; chip::Optional mNodeId; chip::Optional mCluster; @@ -66781,6 +69768,32 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_6() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); @@ -66799,7 +69812,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadTheOptionalAttributeChannelListAttributeList_6() + CHIP_ERROR TestStep3bReadTheOptionalAttributeChannelListAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66820,7 +69833,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3cReadingOptionalAttributeLineupInAttributeList_7() + CHIP_ERROR TestStep3cReadingOptionalAttributeLineupInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66841,7 +69854,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3dReadTheOptionalAttributeCurrentChannelAttributeList_8() + CHIP_ERROR TestStep3dReadTheOptionalAttributeCurrentChannelAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66862,7 +69875,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4aReadTheOptionalCommandChangeChannelInAcceptedCommandList_9() + CHIP_ERROR TestStep4aReadTheOptionalCommandChangeChannelInAcceptedCommandList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66883,7 +69896,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalCommandChangeChannelByNumberInAcceptedCommandList_10() + CHIP_ERROR TestStep4bReadTheOptionalCommandChangeChannelByNumberInAcceptedCommandList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66904,7 +69917,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheOptionalCommandSkipChannelInAcceptedCommandList_11() + CHIP_ERROR TestStep4cReadTheOptionalCommandSkipChannelInAcceptedCommandList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66925,7 +69938,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5aReadTheGlobalAttributeGeneratedCommandList_12() + CHIP_ERROR TestStep5aReadTheGlobalAttributeGeneratedCommandList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -66949,7 +69962,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5bReadTheGlobalAttributeGeneratedCommandList_13() + CHIP_ERROR TestStep5bReadTheGlobalAttributeGeneratedCommandList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67045,137 +70058,157 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3b: Read the optional attribute(StartTime) in AttributeList\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep3bReadTheOptionalAttributeStartTimeInAttributeList_6(); + err = TestStep3aReadTheGlobalAttributeAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 3c: Read the optional attribute(Duration) in AttributeList\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.A0002")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 3b: Read the optional attribute(StartTime) in AttributeList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.A0001")) { NextTest(); return; } - err = TestStep3cReadTheOptionalAttributeDurationInAttributeList_7(); + err = TestStep3bReadTheOptionalAttributeStartTimeInAttributeList_7(); break; case 8: - ChipLogProgress( - chipTool, " ***** Test Step 8 : Step 3d: Read the optional attribute(SampledPosition) in AttributeList\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 3c: Read the optional attribute(Duration) in AttributeList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.A0002")) { NextTest(); return; } - err = TestStep3dReadTheOptionalAttributeSampledPositionInAttributeList_8(); + err = TestStep3cReadTheOptionalAttributeDurationInAttributeList_8(); break; case 9: ChipLogProgress( - chipTool, " ***** Test Step 9 : Step 3e: Read the optional attribute(PlaybackSpeed) in AttributeList\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.A0004")) { + chipTool, " ***** Test Step 9 : Step 3d: Read the optional attribute(SampledPosition) in AttributeList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.A0003")) { NextTest(); return; } - err = TestStep3eReadTheOptionalAttributePlaybackSpeedInAttributeList_9(); + err = TestStep3dReadTheOptionalAttributeSampledPositionInAttributeList_9(); break; case 10: ChipLogProgress( - chipTool, " ***** Test Step 10 : Step 3f: Read the optional attribute(SeekRangeEnd) in AttributeList\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.A0005")) { + chipTool, " ***** Test Step 10 : Step 3e: Read the optional attribute(PlaybackSpeed) in AttributeList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.A0004")) { NextTest(); return; } - err = TestStep3fReadTheOptionalAttributeSeekRangeEndInAttributeList_10(); + err = TestStep3eReadTheOptionalAttributePlaybackSpeedInAttributeList_10(); break; case 11: ChipLogProgress( - chipTool, " ***** Test Step 11 : Step 3g: Read the optional attribute(SeekRangeStart) in AttributeList\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.A0006")) { + chipTool, " ***** Test Step 11 : Step 3f: Read the optional attribute(SeekRangeEnd) in AttributeList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.A0005")) { NextTest(); return; } - err = TestStep3gReadTheOptionalAttributeSeekRangeStartInAttributeList_11(); + err = TestStep3fReadTheOptionalAttributeSeekRangeEndInAttributeList_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 4a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4aReadTheGlobalAttributeAcceptedCommandList_12(); + ChipLogProgress( + chipTool, " ***** Test Step 12 : Step 3g: Read the optional attribute(SeekRangeStart) in AttributeList\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.A0006")) { + NextTest(); + return; + } + err = TestStep3gReadTheOptionalAttributeSeekRangeStartInAttributeList_12(); break; case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 4a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4aReadTheGlobalAttributeAcceptedCommandList_13(); + break; + case 14: ChipLogProgress( - chipTool, " ***** Test Step 13 : Step 4b: Read the optional command(StartOver) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 14 : Step 4b: Read the optional command(StartOver) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C03.Rsp")) { NextTest(); return; } - err = TestStep4bReadTheOptionalCommandStartOverInAcceptedCommandList_13(); + err = TestStep4bReadTheOptionalCommandStartOverInAcceptedCommandList_14(); break; - case 14: + case 15: ChipLogProgress( - chipTool, " ***** Test Step 14 : Step 4c: Read the optional command(Previous) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 15 : Step 4c: Read the optional command(Previous) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C04.Rsp")) { NextTest(); return; } - err = TestStep4cReadTheOptionalCommandPreviousInAcceptedCommandList_14(); + err = TestStep4cReadTheOptionalCommandPreviousInAcceptedCommandList_15(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4d: Read the optional command(Next) in AcceptedCommandList\n"); + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4d: Read the optional command(Next) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C05.Rsp")) { NextTest(); return; } - err = TestStep4dReadTheOptionalCommandNextInAcceptedCommandList_15(); + err = TestStep4dReadTheOptionalCommandNextInAcceptedCommandList_16(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Step 4e: Read the optional command(Rewind) in AcceptedCommandList\n"); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 4e: Read the optional command(Rewind) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C06.Rsp")) { NextTest(); return; } - err = TestStep4eReadTheOptionalCommandRewindInAcceptedCommandList_16(); + err = TestStep4eReadTheOptionalCommandRewindInAcceptedCommandList_17(); break; - case 17: + case 18: ChipLogProgress( - chipTool, " ***** Test Step 17 : Step 4f: Read the optional command(FastForward) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 18 : Step 4f: Read the optional command(FastForward) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C07.Rsp")) { NextTest(); return; } - err = TestStep4fReadTheOptionalCommandFastForwardInAcceptedCommandList_17(); + err = TestStep4fReadTheOptionalCommandFastForwardInAcceptedCommandList_18(); break; - case 18: + case 19: ChipLogProgress( - chipTool, " ***** Test Step 18 : Step 4g: Read the optional command(SkipForward) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 19 : Step 4g: Read the optional command(SkipForward) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C08.Rsp")) { NextTest(); return; } - err = TestStep4gReadTheOptionalCommandSkipForwardInAcceptedCommandList_18(); + err = TestStep4gReadTheOptionalCommandSkipForwardInAcceptedCommandList_19(); break; - case 19: + case 20: ChipLogProgress( - chipTool, " ***** Test Step 19 : Step 4h: Read the optional command(SkipBackward) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 20 : Step 4h: Read the optional command(SkipBackward) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C09.Rsp")) { NextTest(); return; } - err = TestStep4hReadTheOptionalCommandSkipBackwardInAcceptedCommandList_19(); + err = TestStep4hReadTheOptionalCommandSkipBackwardInAcceptedCommandList_20(); break; - case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Step 4i: Read the optional command(Seek) in AcceptedCommandList\n"); + case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : Step 4i: Read the optional command(Seek) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C0b.Rsp")) { NextTest(); return; } - err = TestStep4iReadTheOptionalCommandSeekInAcceptedCommandList_20(); + err = TestStep4iReadTheOptionalCommandSeekInAcceptedCommandList_21(); break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_21(); + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_22(); break; + case 23: + ChipLogProgress(chipTool, " ***** Test Step 23 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -67253,6 +70286,12 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -67266,7 +70305,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 22; + const uint16_t mTestCount = 24; chip::Optional mNodeId; chip::Optional mCluster; @@ -67374,6 +70413,33 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_6() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); @@ -67393,7 +70459,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadTheOptionalAttributeStartTimeInAttributeList_6() + CHIP_ERROR TestStep3bReadTheOptionalAttributeStartTimeInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67414,7 +70480,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3cReadTheOptionalAttributeDurationInAttributeList_7() + CHIP_ERROR TestStep3cReadTheOptionalAttributeDurationInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67435,7 +70501,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3dReadTheOptionalAttributeSampledPositionInAttributeList_8() + CHIP_ERROR TestStep3dReadTheOptionalAttributeSampledPositionInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67456,7 +70522,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3eReadTheOptionalAttributePlaybackSpeedInAttributeList_9() + CHIP_ERROR TestStep3eReadTheOptionalAttributePlaybackSpeedInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67477,7 +70543,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3fReadTheOptionalAttributeSeekRangeEndInAttributeList_10() + CHIP_ERROR TestStep3fReadTheOptionalAttributeSeekRangeEndInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67498,7 +70564,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3gReadTheOptionalAttributeSeekRangeStartInAttributeList_11() + CHIP_ERROR TestStep3gReadTheOptionalAttributeSeekRangeStartInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67519,7 +70585,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4aReadTheGlobalAttributeAcceptedCommandList_12() + CHIP_ERROR TestStep4aReadTheGlobalAttributeAcceptedCommandList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67542,7 +70608,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalCommandStartOverInAcceptedCommandList_13() + CHIP_ERROR TestStep4bReadTheOptionalCommandStartOverInAcceptedCommandList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67563,7 +70629,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheOptionalCommandPreviousInAcceptedCommandList_14() + CHIP_ERROR TestStep4cReadTheOptionalCommandPreviousInAcceptedCommandList_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67584,7 +70650,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadTheOptionalCommandNextInAcceptedCommandList_15() + CHIP_ERROR TestStep4dReadTheOptionalCommandNextInAcceptedCommandList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67605,7 +70671,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadTheOptionalCommandRewindInAcceptedCommandList_16() + CHIP_ERROR TestStep4eReadTheOptionalCommandRewindInAcceptedCommandList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67626,7 +70692,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalCommandFastForwardInAcceptedCommandList_17() + CHIP_ERROR TestStep4fReadTheOptionalCommandFastForwardInAcceptedCommandList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67647,7 +70713,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gReadTheOptionalCommandSkipForwardInAcceptedCommandList_18() + CHIP_ERROR TestStep4gReadTheOptionalCommandSkipForwardInAcceptedCommandList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67668,7 +70734,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheOptionalCommandSkipBackwardInAcceptedCommandList_19() + CHIP_ERROR TestStep4hReadTheOptionalCommandSkipBackwardInAcceptedCommandList_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67689,7 +70755,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4iReadTheOptionalCommandSeekInAcceptedCommandList_20() + CHIP_ERROR TestStep4iReadTheOptionalCommandSeekInAcceptedCommandList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67710,7 +70776,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_21() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67796,16 +70862,36 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3ReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep3ReadTheGlobalAttributeAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_7(); break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -67838,6 +70924,12 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -67851,7 +70943,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -67945,6 +71037,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 1UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -67955,7 +71048,34 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_5() + CHIP_ERROR TestStep3ReadTheGlobalAttributeAttributeList_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterAudioOutput alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3: Read the global attribute: AttributeList 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, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -67976,7 +71096,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_6() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68053,25 +71173,45 @@ class Test_TC_TGTNAV_1_9 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress( - chipTool, " ***** Test Step 4 : Step 3b: Read the optional attribute(CurrentTarget) in AttributeList\n"); - if (ShouldSkip("TGTNAV.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep3bReadTheOptionalAttributeCurrentTargetInAttributeList_4(); + err = TestStep3aReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_5(); + ChipLogProgress( + chipTool, " ***** Test Step 5 : Step 3b: Read the optional attribute(CurrentTarget) in AttributeList\n"); + if (ShouldSkip("TGTNAV.S.A0001")) { + NextTest(); + return; + } + err = TestStep3bReadTheOptionalAttributeCurrentTargetInAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_6(); break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -68104,6 +71244,12 @@ class Test_TC_TGTNAV_1_9 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -68117,7 +71263,7 @@ class Test_TC_TGTNAV_1_9 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -68187,6 +71333,33 @@ class Test_TC_TGTNAV_1_9 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterTargetNavigator alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterTargetNavigator alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); @@ -68206,7 +71379,7 @@ class Test_TC_TGTNAV_1_9 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadTheOptionalAttributeCurrentTargetInAttributeList_4() + CHIP_ERROR TestStep3bReadTheOptionalAttributeCurrentTargetInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68227,7 +71400,7 @@ class Test_TC_TGTNAV_1_9 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_5() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68248,7 +71421,7 @@ class Test_TC_TGTNAV_1_9 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_6() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68322,40 +71495,60 @@ class Test_TC_APBSC_1_10 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3b: Read the optional attribute(VendorName) in AttributeList\n"); - if (ShouldSkip("APBSC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep3bReadTheOptionalAttributeVendorNameInAttributeList_4(); + err = TestStep3aReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3c: Read the optional attribute(VendorID) in AttributeList\n"); - if (ShouldSkip("APBSC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3b: Read the optional attribute(VendorName) in AttributeList\n"); + if (ShouldSkip("APBSC.S.A0000")) { NextTest(); return; } - err = TestStep3cReadTheOptionalAttributeVendorIDInAttributeList_5(); + err = TestStep3bReadTheOptionalAttributeVendorNameInAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3d: Read the optional attribute(ProductID) in AttributeList\n"); - if (ShouldSkip("APBSC.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3c: Read the optional attribute(VendorID) in AttributeList\n"); + if (ShouldSkip("APBSC.S.A0001")) { NextTest(); return; } - err = TestStep3dReadTheOptionalAttributeProductIDInAttributeList_6(); + err = TestStep3cReadTheOptionalAttributeVendorIDInAttributeList_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 3d: Read the optional attribute(ProductID) in AttributeList\n"); + if (ShouldSkip("APBSC.S.A0003")) { + NextTest(); + return; + } + err = TestStep3dReadTheOptionalAttributeProductIDInAttributeList_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_9(); break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -68394,6 +71587,12 @@ class Test_TC_APBSC_1_10 : public TestCommandBridge { case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -68407,7 +71606,7 @@ class Test_TC_APBSC_1_10 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 11; chip::Optional mNodeId; chip::Optional mCluster; @@ -68490,6 +71689,7 @@ class Test_TC_APBSC_1_10 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 7UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -68500,7 +71700,37 @@ class Test_TC_APBSC_1_10 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadTheOptionalAttributeVendorNameInAttributeList_4() + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3bReadTheOptionalAttributeVendorNameInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68521,7 +71751,7 @@ class Test_TC_APBSC_1_10 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3cReadTheOptionalAttributeVendorIDInAttributeList_5() + CHIP_ERROR TestStep3cReadTheOptionalAttributeVendorIDInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68542,7 +71772,7 @@ class Test_TC_APBSC_1_10 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3dReadTheOptionalAttributeProductIDInAttributeList_6() + CHIP_ERROR TestStep3dReadTheOptionalAttributeProductIDInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68563,7 +71793,7 @@ class Test_TC_APBSC_1_10 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_7() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68587,7 +71817,7 @@ class Test_TC_APBSC_1_10 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_8() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68686,47 +71916,67 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3aReadTheGlobalAttributeAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3b: Read the optional attribute(AcceptHeader): AttributeList\n"); - if (ShouldSkip("CONTENTLAUNCHER.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep3bReadTheOptionalAttributeAcceptHeaderAttributeList_6(); + err = TestStep3aReadTheGlobalAttributeAttributeList_6(); break; case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 3b: Read the optional attribute(AcceptHeader): AttributeList\n"); + if (ShouldSkip("CONTENTLAUNCHER.S.A0000")) { + NextTest(); + return; + } + err = TestStep3bReadTheOptionalAttributeAcceptHeaderAttributeList_7(); + break; + case 8: ChipLogProgress(chipTool, - " ***** Test Step 7 : Step 3c: Read the optional attribute(SupportedStreamingProtocols): AttributeList\n"); + " ***** Test Step 8 : Step 3c: Read the optional attribute(SupportedStreamingProtocols): AttributeList\n"); if (ShouldSkip("CONTENTLAUNCHER.S.A0001")) { NextTest(); return; } - err = TestStep3cReadTheOptionalAttributeSupportedStreamingProtocolsAttributeList_7(); + err = TestStep3cReadTheOptionalAttributeSupportedStreamingProtocolsAttributeList_8(); break; - case 8: + case 9: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 4a: Read the optional command(LaunchContent) in AcceptedCommandList attribute\n"); + " ***** Test Step 9 : Step 4a: Read the optional command(LaunchContent) in AcceptedCommandList attribute\n"); if (ShouldSkip("CONTENTLAUNCHER.C.C00.Tx")) { NextTest(); return; } - err = TestStep4aReadTheOptionalCommandLaunchContentInAcceptedCommandListAttribute_8(); + err = TestStep4aReadTheOptionalCommandLaunchContentInAcceptedCommandListAttribute_9(); break; - case 9: + case 10: ChipLogProgress( - chipTool, " ***** Test Step 9 : Step 4b: Read the optional command(LaunchURL) in AcceptedCommandList attribute\n"); + chipTool, " ***** Test Step 10 : Step 4b: Read the optional command(LaunchURL) in AcceptedCommandList attribute\n"); if (ShouldSkip("CONTENTLAUNCHER.C.C01.Tx")) { NextTest(); return; } - err = TestStep4bReadTheOptionalCommandLaunchURLInAcceptedCommandListAttribute_9(); + err = TestStep4bReadTheOptionalCommandLaunchURLInAcceptedCommandListAttribute_10(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_10(); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_11(); break; + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -68771,6 +72021,12 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -68784,7 +72040,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 11; + const uint16_t mTestCount = 13; chip::Optional mNodeId; chip::Optional mCluster; @@ -68892,6 +72148,32 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3aReadTheGlobalAttributeAttributeList_6() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 3a: Read the global attribute: AttributeList Error: %@", err); @@ -68910,7 +72192,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadTheOptionalAttributeAcceptHeaderAttributeList_6() + CHIP_ERROR TestStep3bReadTheOptionalAttributeAcceptHeaderAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68931,7 +72213,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3cReadTheOptionalAttributeSupportedStreamingProtocolsAttributeList_7() + CHIP_ERROR TestStep3cReadTheOptionalAttributeSupportedStreamingProtocolsAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68952,7 +72234,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4aReadTheOptionalCommandLaunchContentInAcceptedCommandListAttribute_8() + CHIP_ERROR TestStep4aReadTheOptionalCommandLaunchContentInAcceptedCommandListAttribute_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68973,7 +72255,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalCommandLaunchURLInAcceptedCommandListAttribute_9() + CHIP_ERROR TestStep4bReadTheOptionalCommandLaunchURLInAcceptedCommandListAttribute_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -68994,7 +72276,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_10() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -69068,16 +72350,36 @@ class Test_TC_ALOGIN_1_12 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 3: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep3ReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: Read the global attribute: AcceptedCommandList\n"); - err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep3ReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 5: Read the global attribute: GeneratedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4: Read the global attribute: AcceptedCommandList\n"); + err = TestStep4ReadTheGlobalAttributeAcceptedCommandList_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5: Read the global attribute: GeneratedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeGeneratedCommandList_6(); break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6: TH reads EventList attribute from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -69107,6 +72409,12 @@ class Test_TC_ALOGIN_1_12 : public TestCommandBridge { case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -69120,7 +72428,7 @@ class Test_TC_ALOGIN_1_12 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 6; + const uint16_t mTestCount = 8; chip::Optional mNodeId; chip::Optional mCluster; @@ -69190,6 +72498,32 @@ class Test_TC_ALOGIN_1_12 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterAccountLogin alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 3: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep3ReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterAccountLogin alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 3: Read the global attribute: AttributeList Error: %@", err); @@ -69208,7 +72542,7 @@ class Test_TC_ALOGIN_1_12 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_4() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAcceptedCommandList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -69231,7 +72565,7 @@ class Test_TC_ALOGIN_1_12 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_5() + CHIP_ERROR TestStep5ReadTheGlobalAttributeGeneratedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77020,29 +80354,41 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads the AttributeList attribute from the DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsTheAttributeListAttributeFromTheDut_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4a: TH reads the AttributeList attribute from the DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsTheAttributeListAttributeFromTheDut_5(); + break; + case 6: ChipLogProgress(chipTool, - " ***** Test Step 5 : Step 4b: TH reads the optional attribute(StartUpMode) in AttributeList from the DUT\n"); + " ***** Test Step 6 : Step 4b: TH reads the optional attribute(StartUpMode) in AttributeList from the DUT\n"); if (ShouldSkip("MOD.S.A0004")) { NextTest(); return; } - err = TestStep4bThReadsTheOptionalAttributeStartUpModeInAttributeListFromTheDut_5(); + err = TestStep4bThReadsTheOptionalAttributeStartUpModeInAttributeListFromTheDut_6(); break; - case 6: + case 7: ChipLogProgress( - chipTool, " ***** Test Step 6 : Step 4c: TH reads the optional attribute(OnMode) in AttributeList from the DUT\n"); + chipTool, " ***** Test Step 7 : Step 4c: TH reads the optional attribute(OnMode) in AttributeList from the DUT\n"); if (ShouldSkip("MOD.S.A0005")) { NextTest(); return; } - err = TestStep4cThReadsTheOptionalAttributeOnModeInAttributeListFromTheDut_6(); + err = TestStep4cThReadsTheOptionalAttributeOnModeInAttributeListFromTheDut_7(); break; - case 7: + case 8: ChipLogProgress(chipTool, - " ***** Test Step 7 : Step 4d: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 8 : Step 4d: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -77052,15 +80398,37 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4dThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7(); - break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6a: TH reads AcceptedCommandList attribute from DUT\n"); - err = TestStep6aThReadsAcceptedCommandListAttributeFromDut_8(); + err = TestStep4dThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); break; case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 5a: TH reads from the DUT the EventList attribute\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 10: + ChipLogProgress(chipTool, + " ***** Test Step 10 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); + break; + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 6a: TH reads AcceptedCommandList attribute from DUT\n"); + err = TestStep6aThReadsAcceptedCommandListAttributeFromDut_11(); + break; + case 12: ChipLogProgress(chipTool, - " ***** Test Step 9 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 12 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -77070,15 +80438,15 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 7a: TH reads GeneratedCommandList attribute from DUT\n"); - err = TestStep7aThReadsGeneratedCommandListAttributeFromDut_10(); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 7a: TH reads GeneratedCommandList attribute from DUT\n"); + err = TestStep7aThReadsGeneratedCommandListAttributeFromDut_13(); break; - case 11: + case 14: ChipLogProgress(chipTool, - " ***** Test Step 11 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 14 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -77087,7 +80455,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14(); break; } @@ -77136,6 +80504,15 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -77149,7 +80526,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 12; + const uint16_t mTestCount = 15; chip::Optional mNodeId; chip::Optional mCluster; @@ -77229,6 +80606,36 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterModeSelect alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads the AttributeList attribute from the DUT 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, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsTheAttributeListAttributeFromTheDut_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterModeSelect alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads the AttributeList attribute from the DUT Error: %@", err); @@ -77251,7 +80658,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsTheOptionalAttributeStartUpModeInAttributeListFromTheDut_5() + CHIP_ERROR TestStep4bThReadsTheOptionalAttributeStartUpModeInAttributeListFromTheDut_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77272,7 +80679,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cThReadsTheOptionalAttributeOnModeInAttributeListFromTheDut_6() + CHIP_ERROR TestStep4cThReadsTheOptionalAttributeOnModeInAttributeListFromTheDut_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77294,7 +80701,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4dThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7() + TestStep4dThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -77304,7 +80711,18 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aThReadsAcceptedCommandListAttributeFromDut_8() + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aThReadsAcceptedCommandListAttributeFromDut_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77326,7 +80744,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -77336,7 +80754,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aThReadsGeneratedCommandListAttributeFromDut_10() + CHIP_ERROR TestStep7aThReadsGeneratedCommandListAttributeFromDut_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77361,7 +80779,7 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -77759,15 +81177,35 @@ class Test_TC_OCC_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4ReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 6: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 7: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 5: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 7: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_7(); break; } @@ -77798,6 +81236,12 @@ class Test_TC_OCC_1_1 : public TestCommandBridge { case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -77811,7 +81255,7 @@ class Test_TC_OCC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 6; + const uint16_t mTestCount = 8; chip::Optional mNodeId; chip::Optional mCluster; @@ -77881,6 +81325,35 @@ class Test_TC_OCC_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterOccupancySensing alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; 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); + + 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)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterOccupancySensing alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + 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); @@ -77902,7 +81375,7 @@ class Test_TC_OCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_4() + CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -77926,7 +81399,7 @@ class Test_TC_OCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_5() + CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -78685,20 +82158,32 @@ class Test_TC_OO_1_1 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_5(); break; case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aReadTheGlobalAttributeAttributeList_6(); + break; + case 7: ChipLogProgress( - chipTool, " ***** Test Step 6 : Step 4b: Read the feature dependent(OO.S.F00) attribute in AttributeList\n"); + chipTool, " ***** Test Step 7 : Step 4b: Read the feature dependent(OO.S.F00) attribute in AttributeList\n"); if (ShouldSkip("OO.S.F00")) { NextTest(); return; } - err = TestStep4bReadTheFeatureDependentOOSF00AttributeInAttributeList_6(); + err = TestStep4bReadTheFeatureDependentOOSF00AttributeInAttributeList_7(); break; - case 7: + case 8: ChipLogProgress(chipTool, - " ***** Test Step 7 : Step 4c: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 8 : Step 4c: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -78708,24 +82193,38 @@ class Test_TC_OO_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7(); - break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_8(); + err = TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); break; case 9: + ChipLogProgress(chipTool, + " ***** Test Step 9 : Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9(); + break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_10(); + break; + case 11: ChipLogProgress( - chipTool, " ***** Test Step 9 : Step 6b: Read the feature dependent(OO.S.F00) commands in AcceptedCommandList\n"); + chipTool, " ***** Test Step 11 : Step 6b: Read the feature dependent(OO.S.F00) commands in AcceptedCommandList\n"); if (ShouldSkip("OO.S.F00")) { NextTest(); return; } - err = TestStep6bReadTheFeatureDependentOOSF00CommandsInAcceptedCommandList_9(); + err = TestStep6bReadTheFeatureDependentOOSF00CommandsInAcceptedCommandList_11(); break; - case 10: + case 12: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 12 : Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -78735,15 +82234,15 @@ class Test_TC_OO_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); + err = TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_11(); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_13(); break; - case 12: + case 14: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 14 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -78752,7 +82251,7 @@ class Test_TC_OO_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14(); break; } @@ -78804,6 +82303,12 @@ class Test_TC_OO_1_1 : public TestCommandBridge { case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -78817,7 +82322,7 @@ class Test_TC_OO_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 13; + const uint16_t mTestCount = 15; chip::Optional mNodeId; chip::Optional mCluster; @@ -78923,6 +82428,33 @@ class Test_TC_OO_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_6() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -78942,7 +82474,7 @@ class Test_TC_OO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheFeatureDependentOOSF00AttributeInAttributeList_6() + CHIP_ERROR TestStep4bReadTheFeatureDependentOOSF00AttributeInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -78967,7 +82499,18 @@ class Test_TC_OO_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7() + TestStep4cThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -78977,7 +82520,7 @@ class Test_TC_OO_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_8() + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -79000,7 +82543,7 @@ class Test_TC_OO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bReadTheFeatureDependentOOSF00CommandsInAcceptedCommandList_9() + CHIP_ERROR TestStep6bReadTheFeatureDependentOOSF00CommandsInAcceptedCommandList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -79024,7 +82567,7 @@ class Test_TC_OO_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() + TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -79034,7 +82577,7 @@ class Test_TC_OO_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_11() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -79059,7 +82602,7 @@ class Test_TC_OO_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -80938,21 +84481,33 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TH reads the AttributeList attribute from the DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsTheAttributeListAttributeFromTheDut_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads the AttributeList attribute from the DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsTheAttributeListAttributeFromTheDut_4(); + break; + case 5: ChipLogProgress(chipTool, - " ***** Test Step 4 : Step 4b: TH reads from the DUT the optional attribute(CountdownTime) in the AttributeList " + " ***** Test Step 5 : Step 4b: TH reads from the DUT the optional attribute(CountdownTime) in the AttributeList " "from the DUT\n"); if (ShouldSkip("OPSTATE.S.A0002")) { NextTest(); return; } - err = TestStep4bThReadsFromTheDutTheOptionalAttributeCountdownTimeInTheAttributeListFromTheDut_4(); + err = TestStep4bThReadsFromTheDutTheOptionalAttributeCountdownTimeInTheAttributeListFromTheDut_5(); break; - case 5: + case 6: ChipLogProgress(chipTool, - " ***** Test Step 5 : Step 4c: TH reads AttributeList attribute from DUT. 1.The list MAY contain values in the " + " ***** Test Step 6 : Step 4c: TH reads AttributeList attribute from DUT. 1.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range " "(0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or " "invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -80961,43 +84516,74 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4cThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); + err = TestStep4cThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6a: Read the optional command(Start) in AcceptedCommandList\n"); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 5a: TH reads from the DUT the EventList attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 8: + ChipLogProgress(chipTool, + " ***** Test Step 8 : Step 5b: TH reads from the DUT the optional event(OperationCompletion) in EventList.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && OPSTATE.S.E01")) { + NextTest(); + return; + } + NextTest(); + return; + case 9: + ChipLogProgress(chipTool, + " ***** Test Step 9 : Step 5c: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5cThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9(); + break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6a: Read the optional command(Start) in AcceptedCommandList\n"); if (ShouldSkip("OPSTATE.S.C02")) { NextTest(); return; } - err = TestStep6aReadTheOptionalCommandStartInAcceptedCommandList_6(); + err = TestStep6aReadTheOptionalCommandStartInAcceptedCommandList_10(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6b: Read the optional command(Stop) in AcceptedCommandList\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 6b: Read the optional command(Stop) in AcceptedCommandList\n"); if (ShouldSkip("OPSTATE.S.C01")) { NextTest(); return; } - err = TestStep6bReadTheOptionalCommandStopInAcceptedCommandList_7(); + err = TestStep6bReadTheOptionalCommandStopInAcceptedCommandList_11(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6c: Read the optional command(Pause) in AcceptedCommandList\n"); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6c: Read the optional command(Pause) in AcceptedCommandList\n"); if (ShouldSkip("OPSTATE.S.C00")) { NextTest(); return; } - err = TestStep6cReadTheOptionalCommandPauseInAcceptedCommandList_8(); + err = TestStep6cReadTheOptionalCommandPauseInAcceptedCommandList_12(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 6d: Read the optional command(Resume) in AcceptedCommandList\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 6d: Read the optional command(Resume) in AcceptedCommandList\n"); if (ShouldSkip("OPSTATE.S.C03")) { NextTest(); return; } - err = TestStep6dReadTheOptionalCommandResumeInAcceptedCommandList_9(); + err = TestStep6dReadTheOptionalCommandResumeInAcceptedCommandList_13(); break; - case 10: + case 14: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 6e: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 14 : Step 6e: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -81006,27 +84592,27 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6eThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); + err = TestStep6eThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 7a: Read the global attribute: GeneratedCommandList\n"); if (ShouldSkip("!OPSTATE.S.C00 || !OPSTATE.S.C01 || !OPSTATE.S.C02 || !OPSTATE.S.C03")) { NextTest(); return; } - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_11(); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_15(); break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 7a: Read the global attribute: GeneratedCommandList\n"); if (ShouldSkip("(OPSTATE.S.C00 || OPSTATE.S.C01 || OPSTATE.S.C02 || OPSTATE.S.C03)")) { NextTest(); return; } - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_12(); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_16(); break; - case 13: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 13 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 17 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -81035,7 +84621,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17(); break; } @@ -81090,6 +84676,18 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -81103,7 +84701,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 14; + const uint16_t mTestCount = 18; chip::Optional mNodeId; chip::Optional mCluster; @@ -81173,6 +84771,37 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterOperationalState alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads the AttributeList attribute from the DUT 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, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsTheAttributeListAttributeFromTheDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterOperationalState alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads the AttributeList attribute from the DUT Error: %@", err); @@ -81196,7 +84825,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsFromTheDutTheOptionalAttributeCountdownTimeInTheAttributeListFromTheDut_4() + CHIP_ERROR TestStep4bThReadsFromTheDutTheOptionalAttributeCountdownTimeInTheAttributeListFromTheDut_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81220,7 +84849,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4cThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() + TestStep4cThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -81230,7 +84859,18 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheOptionalCommandStartInAcceptedCommandList_6() + CHIP_ERROR + TestStep5cThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aReadTheOptionalCommandStartInAcceptedCommandList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81252,7 +84892,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bReadTheOptionalCommandStopInAcceptedCommandList_7() + CHIP_ERROR TestStep6bReadTheOptionalCommandStopInAcceptedCommandList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81273,7 +84913,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6cReadTheOptionalCommandPauseInAcceptedCommandList_8() + CHIP_ERROR TestStep6cReadTheOptionalCommandPauseInAcceptedCommandList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81295,7 +84935,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6dReadTheOptionalCommandResumeInAcceptedCommandList_9() + CHIP_ERROR TestStep6dReadTheOptionalCommandResumeInAcceptedCommandList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81318,7 +84958,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6eThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() + TestStep6eThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -81328,7 +84968,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_11() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81352,7 +84992,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_12() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81374,7 +85014,7 @@ class Test_TC_OPSTATE_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -81477,51 +85117,105 @@ class Test_TC_PS_1_1 : public TestCommandBridge { break; case 7: ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4ReadTheGlobalAttributeAttributeList_7(); break; case 8: - ChipLogProgress( - chipTool, " ***** Test Step 8 : Step 4a: Read the Feature dependent(PS.S.F00-WIRED) attribute in AttributeList\n"); - if (ShouldSkip("PS.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4aReadTheFeatureDependentPSSF00WiredAttributeInAttributeList_8(); + err = TestStep4ReadTheGlobalAttributeAttributeList_8(); break; case 9: ChipLogProgress( - chipTool, " ***** Test Step 9 : Step 4b: Read the Feature dependent(PS.S.F01-BAT) attribute in AttributeList\n"); - if (ShouldSkip("PS.S.F01")) { + chipTool, " ***** Test Step 9 : Step 4a: Read the Feature dependent(PS.S.F00-WIRED) attribute in AttributeList\n"); + if (ShouldSkip("PS.S.F00")) { NextTest(); return; } - err = TestStep4bReadTheFeatureDependentPSSF01BatAttributeInAttributeList_9(); + err = TestStep4aReadTheFeatureDependentPSSF00WiredAttributeInAttributeList_9(); break; case 10: ChipLogProgress( - chipTool, " ***** Test Step 10 : Step 4c: Read the Feature dependent(PS.S.F02-RECHG) attribute in AttributeList\n"); - if (ShouldSkip("PS.S.F02")) { + chipTool, " ***** Test Step 10 : Step 4b: Read the Feature dependent(PS.S.F01-BAT) attribute in AttributeList\n"); + if (ShouldSkip("PS.S.F01")) { NextTest(); return; } - err = TestStep4cReadTheFeatureDependentPSSF02RechgAttributeInAttributeList_10(); + err = TestStep4bReadTheFeatureDependentPSSF01BatAttributeInAttributeList_10(); break; case 11: ChipLogProgress( - chipTool, " ***** Test Step 11 : Step 4d: Read the Feature dependent(PS.S.F03-REPLC) attribute in AttributeList\n"); - if (ShouldSkip("PS.S.F03")) { + chipTool, " ***** Test Step 11 : Step 4c: Read the Feature dependent(PS.S.F02-RECHG) attribute in AttributeList\n"); + if (ShouldSkip("PS.S.F02")) { NextTest(); return; } - err = TestStep4dReadTheFeatureDependentPSSF03ReplcAttributeInAttributeList_11(); + err = TestStep4cReadTheFeatureDependentPSSF02RechgAttributeInAttributeList_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 5: Read the global attribute: AcceptedCommandList\n"); - err = TestStep5ReadTheGlobalAttributeAcceptedCommandList_12(); + ChipLogProgress( + chipTool, " ***** Test Step 12 : Step 4d: Read the Feature dependent(PS.S.F03-REPLC) attribute in AttributeList\n"); + if (ShouldSkip("PS.S.F03")) { + NextTest(); + return; + } + err = TestStep4dReadTheFeatureDependentPSSF03ReplcAttributeInAttributeList_12(); break; case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 6: Read the global attribute: GeneratedCommandList\n"); - err = TestStep6ReadTheGlobalAttributeGeneratedCommandList_13(); + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 5: Read the global attribute: AcceptedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeAcceptedCommandList_13(); + break; + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 6: Read the global attribute: GeneratedCommandList\n"); + err = TestStep6ReadTheGlobalAttributeGeneratedCommandList_14(); + break; + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 7a: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && !PS.S.E00 && !PS.S.E01 && !PS.S.E02 ")) { + NextTest(); + return; + } + NextTest(); + return; + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Step 7b: Read PS.S.E00(WiredFaultChange) event in EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PS.S.E00")) { + NextTest(); + return; + } + NextTest(); + return; + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Step 7c: Read PS.S.E01(BatFaultChange) event in EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PS.S.E01")) { + NextTest(); + return; + } + NextTest(); + return; + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Step 7d: Read PS.S.E02(BatChargeFaultChange) event in EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PS.S.E02")) { + NextTest(); + return; + } + NextTest(); + return; + case 19: + ChipLogProgress(chipTool, + " ***** Test Step 19 : Step 7e: Read EventList attribute from the DUT.For this cluster the list is usually empty " + "but it can contain manufacturer specific event IDs.\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep7eReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_19(); break; } @@ -81576,6 +85270,24 @@ class Test_TC_PS_1_1 : public TestCommandBridge { case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -81589,7 +85301,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 14; + const uint16_t mTestCount = 20; chip::Optional mNodeId; chip::Optional mCluster; @@ -81735,6 +85447,36 @@ class Test_TC_PS_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; 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); + + 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, 31UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_8() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + 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); @@ -81757,7 +85499,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4aReadTheFeatureDependentPSSF00WiredAttributeInAttributeList_8() + CHIP_ERROR TestStep4aReadTheFeatureDependentPSSF00WiredAttributeInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81778,7 +85520,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheFeatureDependentPSSF01BatAttributeInAttributeList_9() + CHIP_ERROR TestStep4bReadTheFeatureDependentPSSF01BatAttributeInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81801,7 +85543,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheFeatureDependentPSSF02RechgAttributeInAttributeList_10() + CHIP_ERROR TestStep4cReadTheFeatureDependentPSSF02RechgAttributeInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81823,7 +85565,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadTheFeatureDependentPSSF03ReplcAttributeInAttributeList_11() + CHIP_ERROR TestStep4dReadTheFeatureDependentPSSF03ReplcAttributeInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81845,7 +85587,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeAcceptedCommandList_12() + CHIP_ERROR TestStep5ReadTheGlobalAttributeAcceptedCommandList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81869,7 +85611,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeGeneratedCommandList_13() + CHIP_ERROR TestStep6ReadTheGlobalAttributeGeneratedCommandList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -81892,6 +85634,17 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + + CHIP_ERROR + TestStep7eReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_19() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } }; class Test_TC_PS_2_1 : public TestCommandBridge { @@ -83118,62 +86871,74 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: Read the global mandatory attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalMandatoryAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4b: Read the optional attribute(ScaledValue) in AttributeList\n"); - if (ShouldSkip("PRS.S.A0010")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4a: Read the global mandatory attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeScaledValueInAttributeList_5(); + err = TestStep4aReadTheGlobalMandatoryAttributeAttributeList_5(); break; case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4b: Read the optional attribute(ScaledValue) in AttributeList\n"); + if (ShouldSkip("PRS.S.A0010")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeScaledValueInAttributeList_6(); + break; + case 7: ChipLogProgress( - chipTool, " ***** Test Step 6 : Step 4c: Read the optional attribute(MinScaledValue) in AttributeList\n"); + chipTool, " ***** Test Step 7 : Step 4c: Read the optional attribute(MinScaledValue) in AttributeList\n"); if (ShouldSkip("PRS.S.A0011")) { NextTest(); return; } - err = TestStep4cReadTheOptionalAttributeMinScaledValueInAttributeList_6(); + err = TestStep4cReadTheOptionalAttributeMinScaledValueInAttributeList_7(); break; - case 7: + case 8: ChipLogProgress( - chipTool, " ***** Test Step 7 : Step 4d: Read the optional attribute(MaxScaledValue) in AttributeList\n"); + chipTool, " ***** Test Step 8 : Step 4d: Read the optional attribute(MaxScaledValue) in AttributeList\n"); if (ShouldSkip("PRS.S.A0012")) { NextTest(); return; } - err = TestStep4dReadTheOptionalAttributeMaxScaledValueInAttributeList_7(); + err = TestStep4dReadTheOptionalAttributeMaxScaledValueInAttributeList_8(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4e: Read the optional attribute(Scale) in AttributeList\n"); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4e: Read the optional attribute(Scale) in AttributeList\n"); if (ShouldSkip("PRS.S.A0014")) { NextTest(); return; } - err = TestStep4eReadTheOptionalAttributeScaleInAttributeList_8(); + err = TestStep4eReadTheOptionalAttributeScaleInAttributeList_9(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4f: Read the optional attribute(Tolerance) in AttributeList\n"); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 4f: Read the optional attribute(Tolerance) in AttributeList\n"); if (ShouldSkip("PRS.S.A0003")) { NextTest(); return; } - err = TestStep4fReadTheOptionalAttributeToleranceInAttributeList_9(); + err = TestStep4fReadTheOptionalAttributeToleranceInAttributeList_10(); break; - case 10: + case 11: ChipLogProgress( - chipTool, " ***** Test Step 10 : Step 4g: Read the optional attribute(ScaledTolerance) in AttributeList\n"); + chipTool, " ***** Test Step 11 : Step 4g: Read the optional attribute(ScaledTolerance) in AttributeList\n"); if (ShouldSkip("PRS.S.A0013")) { NextTest(); return; } - err = TestStep4gReadTheOptionalAttributeScaledToleranceInAttributeList_10(); + err = TestStep4gReadTheOptionalAttributeScaledToleranceInAttributeList_11(); break; - case 11: + case 12: ChipLogProgress(chipTool, - " ***** Test Step 11 : Step 4h: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 12 : Step 4h: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -83183,11 +86948,25 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4hThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11(); + err = TestStep4hThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); break; - case 12: + case 13: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 13 : Step 5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13(); + break; + case 14: + ChipLogProgress(chipTool, + " ***** Test Step 14 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -83196,11 +86975,11 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); + err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14(); break; - case 13: + case 15: ChipLogProgress(chipTool, - " ***** Test Step 13 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 15 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -83209,7 +86988,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15(); break; } @@ -83264,6 +87043,12 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -83277,7 +87062,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 14; + const uint16_t mTestCount = 16; chip::Optional mNodeId; chip::Optional mCluster; @@ -83385,6 +87170,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -83395,7 +87181,37 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeScaledValueInAttributeList_5() + CHIP_ERROR TestStep4aReadTheGlobalMandatoryAttributeAttributeList_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterPressureMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global mandatory attribute: AttributeList 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)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheOptionalAttributeScaledValueInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -83418,7 +87234,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheOptionalAttributeMinScaledValueInAttributeList_6() + CHIP_ERROR TestStep4cReadTheOptionalAttributeMinScaledValueInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -83441,7 +87257,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadTheOptionalAttributeMaxScaledValueInAttributeList_7() + CHIP_ERROR TestStep4dReadTheOptionalAttributeMaxScaledValueInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -83464,7 +87280,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadTheOptionalAttributeScaleInAttributeList_8() + CHIP_ERROR TestStep4eReadTheOptionalAttributeScaleInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -83487,7 +87303,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalAttributeToleranceInAttributeList_9() + CHIP_ERROR TestStep4fReadTheOptionalAttributeToleranceInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -83510,7 +87326,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gReadTheOptionalAttributeScaledToleranceInAttributeList_10() + CHIP_ERROR TestStep4gReadTheOptionalAttributeScaledToleranceInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -83534,7 +87350,18 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4hThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11() + TestStep4hThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -83545,7 +87372,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() + TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -83556,7 +87383,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13() + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_15() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -84313,168 +88140,180 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { break; case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : Step 4a: TH reads the AttributeList attribute from the DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsTheAttributeListAttributeFromTheDut_10(); break; case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 4a: TH reads the AttributeList attribute from the DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsTheAttributeListAttributeFromTheDut_11(); + break; + case 12: ChipLogProgress(chipTool, - " ***** Test Step 11 : Step 4b: TH reads optional attribute(MinConstPressure) attribute in AttributeList from the " + " ***** Test Step 12 : Step 4b: TH reads optional attribute(MinConstPressure) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A0003")) { NextTest(); return; } - err = TestStep4bThReadsOptionalAttributeMinConstPressureAttributeInAttributeListFromTheDut_11(); + err = TestStep4bThReadsOptionalAttributeMinConstPressureAttributeInAttributeListFromTheDut_12(); break; - case 12: + case 13: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 4c TH reads optional attribute(MaxConstPressure) attribute in AttributeList from the " + " ***** Test Step 13 : Step 4c TH reads optional attribute(MaxConstPressure) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A0004")) { NextTest(); return; } - err = TestStep4cThReadsOptionalAttributeMaxConstPressureAttributeInAttributeListFromTheDut_12(); + err = TestStep4cThReadsOptionalAttributeMaxConstPressureAttributeInAttributeListFromTheDut_13(); break; - case 13: + case 14: ChipLogProgress(chipTool, - " ***** Test Step 13 : Step 4d: TH reads optional attribute(MinCompPressure) attribute in AttributeList from the " + " ***** Test Step 14 : Step 4d: TH reads optional attribute(MinCompPressure) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A0005")) { NextTest(); return; } - err = TestStep4dThReadsOptionalAttributeMinCompPressureAttributeInAttributeListFromTheDut_13(); + err = TestStep4dThReadsOptionalAttributeMinCompPressureAttributeInAttributeListFromTheDut_14(); break; - case 14: + case 15: ChipLogProgress(chipTool, - " ***** Test Step 14 : Step 4e: TH reads optional attribute(MaxCompPressure) attribute in AttributeList from the " + " ***** Test Step 15 : Step 4e: TH reads optional attribute(MaxCompPressure) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A0006")) { NextTest(); return; } - err = TestStep4eThReadsOptionalAttributeMaxCompPressureAttributeInAttributeListFromTheDut_14(); + err = TestStep4eThReadsOptionalAttributeMaxCompPressureAttributeInAttributeListFromTheDut_15(); break; - case 15: + case 16: ChipLogProgress(chipTool, - " ***** Test Step 15 : Step 4f: TH reads optional attribute(MinConstSpeed) attribute in AttributeList from the " + " ***** Test Step 16 : Step 4f: TH reads optional attribute(MinConstSpeed) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A0007")) { NextTest(); return; } - err = TestStep4fThReadsOptionalAttributeMinConstSpeedAttributeInAttributeListFromTheDut_15(); + err = TestStep4fThReadsOptionalAttributeMinConstSpeedAttributeInAttributeListFromTheDut_16(); break; - case 16: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 16 : Step 4g: TH reads optional attribute(MaxConstSpeed) attribute in AttributeList from the " + " ***** Test Step 17 : Step 4g: TH reads optional attribute(MaxConstSpeed) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A0008")) { NextTest(); return; } - err = TestStep4gThReadsOptionalAttributeMaxConstSpeedAttributeInAttributeListFromTheDut_16(); + err = TestStep4gThReadsOptionalAttributeMaxConstSpeedAttributeInAttributeListFromTheDut_17(); break; - case 17: + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4h: TH reads optional attribute(MinConstFlow) attribute in AttributeList from the " + " ***** Test Step 18 : Step 4h: TH reads optional attribute(MinConstFlow) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A0009")) { NextTest(); return; } - err = TestStep4hThReadsOptionalAttributeMinConstFlowAttributeInAttributeListFromTheDut_17(); + err = TestStep4hThReadsOptionalAttributeMinConstFlowAttributeInAttributeListFromTheDut_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4i: TH reads optional attribute(MaxConstFlow) attribute in AttributeList from the " + " ***** Test Step 19 : Step 4i: TH reads optional attribute(MaxConstFlow) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A000a")) { NextTest(); return; } - err = TestStep4iThReadsOptionalAttributeMaxConstFlowAttributeInAttributeListFromTheDut_18(); + err = TestStep4iThReadsOptionalAttributeMaxConstFlowAttributeInAttributeListFromTheDut_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4j: TH reads optional attribute(MinConstTemp) attribute in AttributeList from the " + " ***** Test Step 20 : Step 4j: TH reads optional attribute(MinConstTemp) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A000b")) { NextTest(); return; } - err = TestStep4jThReadsOptionalAttributeMinConstTempAttributeInAttributeListFromTheDut_19(); + err = TestStep4jThReadsOptionalAttributeMinConstTempAttributeInAttributeListFromTheDut_20(); break; - case 20: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 20 : Step 4k: TH reads optional attribute(MaxConstTemp) attribute in AttributeList from the " + " ***** Test Step 21 : Step 4k: TH reads optional attribute(MaxConstTemp) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A000c")) { NextTest(); return; } - err = TestStep4kThReadsOptionalAttributeMaxConstTempAttributeInAttributeListFromTheDut_20(); + err = TestStep4kThReadsOptionalAttributeMaxConstTempAttributeInAttributeListFromTheDut_21(); break; - case 21: + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : Step 4l: TH reads optional attribute(PumpStatus) attribute in AttributeList from the DUT\n"); + " ***** Test Step 22 : Step 4l: TH reads optional attribute(PumpStatus) attribute in AttributeList from the DUT\n"); if (ShouldSkip("PCC.S.A0010")) { NextTest(); return; } - err = TestStep4lThReadsOptionalAttributePumpStatusAttributeInAttributeListFromTheDut_21(); + err = TestStep4lThReadsOptionalAttributePumpStatusAttributeInAttributeListFromTheDut_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4m: TH reads optional attribute(Speed) attribute in AttributeList from the DUT\n"); + " ***** Test Step 23 : Step 4m: TH reads optional attribute(Speed) attribute in AttributeList from the DUT\n"); if (ShouldSkip("PCC.S.A0014")) { NextTest(); return; } - err = TestStep4mThReadsOptionalAttributeSpeedAttributeInAttributeListFromTheDut_22(); + err = TestStep4mThReadsOptionalAttributeSpeedAttributeInAttributeListFromTheDut_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4n: TH reads optional attribute(LifetimeRunningHours) attribute in AttributeList from " + " ***** Test Step 24 : Step 4n: TH reads optional attribute(LifetimeRunningHours) attribute in AttributeList from " "the DUT\n"); if (ShouldSkip("PCC.S.A0015")) { NextTest(); return; } - err = TestStep4nThReadsOptionalAttributeLifetimeRunningHoursAttributeInAttributeListFromTheDut_23(); + err = TestStep4nThReadsOptionalAttributeLifetimeRunningHoursAttributeInAttributeListFromTheDut_24(); break; - case 24: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 24 : Step 4o: TH reads optional attribute(Power) attribute in AttributeList from the DUT\n"); + " ***** Test Step 25 : Step 4o: TH reads optional attribute(Power) attribute in AttributeList from the DUT\n"); if (ShouldSkip("PCC.S.A0016")) { NextTest(); return; } - err = TestStep4oThReadsOptionalAttributePowerAttributeInAttributeListFromTheDut_24(); + err = TestStep4oThReadsOptionalAttributePowerAttributeInAttributeListFromTheDut_25(); break; - case 25: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 25 : Step 4p: TH reads optional attribute(LifetimeEnergyConsumed) attribute in AttributeList " + " ***** Test Step 26 : Step 4p: TH reads optional attribute(LifetimeEnergyConsumed) attribute in AttributeList " "from the DUT\n"); if (ShouldSkip("PCC.S.A0017")) { NextTest(); return; } - err = TestStep4pThReadsOptionalAttributeLifetimeEnergyConsumedAttributeInAttributeListFromTheDut_25(); + err = TestStep4pThReadsOptionalAttributeLifetimeEnergyConsumedAttributeInAttributeListFromTheDut_26(); break; - case 26: + case 27: ChipLogProgress(chipTool, - " ***** Test Step 26 : Step 4q: TH reads optional attribute(ControlMode) attribute in AttributeList from the " + " ***** Test Step 27 : Step 4q: TH reads optional attribute(ControlMode) attribute in AttributeList from the " "DUT\n"); if (ShouldSkip("PCC.S.A0021")) { NextTest(); return; } - err = TestStep4qThReadsOptionalAttributeControlModeAttributeInAttributeListFromTheDut_26(); + err = TestStep4qThReadsOptionalAttributeControlModeAttributeInAttributeListFromTheDut_27(); break; - case 27: + case 28: ChipLogProgress(chipTool, - " ***** Test Step 27 : Step 4r: TH reads AttributeList attribute from DUT. 1.The list MAY contain values in the " + " ***** Test Step 28 : Step 4r: TH reads AttributeList attribute from DUT. 1.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range " "(0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or " "invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -84483,11 +88322,190 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4rThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27(); + err = TestStep4rThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); break; - case 28: + case 29: + ChipLogProgress(chipTool, " ***** Test Step 29 : Step 5a: TH reads EventList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && !PCC.S.E00 && !PCC.S.E01 && !PCC.S.E02 && !PCC.S.E03 && !PCC.S.E04 && " + "!PCC.S.E05 && !PCC.S.E06 && !PCC.S.E07 && !PCC.S.E08 && !PCC.S.E09 && !PCC.S.E0a && !PCC.S.E0b && " + "!PCC.S.E0c && !PCC.S.E0d && !PCC.S.E0e && !PCC.S.E0f && !PCC.S.E10 ")) { + NextTest(); + return; + } + NextTest(); + return; + case 30: + ChipLogProgress(chipTool, + " ***** Test Step 30 : Step 5b: TH reads from the DUT the EventList optional (SupplyVoltageLow)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E00")) { + NextTest(); + return; + } + NextTest(); + return; + case 31: + ChipLogProgress(chipTool, + " ***** Test Step 31 : Step 5c: TH reads from the DUT the EventList optional (SupplyVoltageHigh)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E01")) { + NextTest(); + return; + } + NextTest(); + return; + case 32: + ChipLogProgress(chipTool, + " ***** Test Step 32 : Step 5d: TH reads from the DUT the EventList optional (PowerMissingPhase)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E02")) { + NextTest(); + return; + } + NextTest(); + return; + case 33: + ChipLogProgress(chipTool, + " ***** Test Step 33 : Step 5e: TH reads from the DUT the EventList optional (SystemPressureLow)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E03")) { + NextTest(); + return; + } + NextTest(); + return; + case 34: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 34 : Step 5f: TH reads from the DUT the EventList optional (SystemPressureHigh)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E04")) { + NextTest(); + return; + } + NextTest(); + return; + case 35: + ChipLogProgress( + chipTool, " ***** Test Step 35 : Step 5g: TH reads from the DUT the EventList optional (DryRunning)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E05")) { + NextTest(); + return; + } + NextTest(); + return; + case 36: + ChipLogProgress(chipTool, + " ***** Test Step 36 : Step 5h: TH reads from the DUT the EventList optional (MotorTemperatureHigh)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E06")) { + NextTest(); + return; + } + NextTest(); + return; + case 37: + ChipLogProgress(chipTool, + " ***** Test Step 37 : Step 5i: TH reads from the DUT the EventList optional (PumpMotorFatalFailure)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E07")) { + NextTest(); + return; + } + NextTest(); + return; + case 38: + ChipLogProgress(chipTool, + " ***** Test Step 38 : Step 5j: TH reads from the DUT the EventList optional " + "(ElectronicTemperatureHigh)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E08")) { + NextTest(); + return; + } + NextTest(); + return; + case 39: + ChipLogProgress( + chipTool, " ***** Test Step 39 : Step 5k: TH reads from the DUT the EventList optional (PumpBlocked)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E09")) { + NextTest(); + return; + } + NextTest(); + return; + case 40: + ChipLogProgress(chipTool, + " ***** Test Step 40 : Step 5l: TH reads from the DUT the EventList optional (SensorFailure)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0a")) { + NextTest(); + return; + } + NextTest(); + return; + case 41: + ChipLogProgress(chipTool, + " ***** Test Step 41 : Step 5m: TH reads from the DUT the EventList optional " + "(ElectronicNonFatalFailure)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0b")) { + NextTest(); + return; + } + NextTest(); + return; + case 42: + ChipLogProgress(chipTool, + " ***** Test Step 42 : Step 5n: TH reads from the DUT the EventList optional (ElectronicFatalFailure)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0c")) { + NextTest(); + return; + } + NextTest(); + return; + case 43: + ChipLogProgress( + chipTool, " ***** Test Step 43 : Step 5o: TH reads from the DUT the EventList optional (GeneralFault)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0d")) { + NextTest(); + return; + } + NextTest(); + return; + case 44: + ChipLogProgress( + chipTool, " ***** Test Step 44 : Step 5p: TH reads from the DUT the EventList optional (Leakage)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0e")) { + NextTest(); + return; + } + NextTest(); + return; + case 45: + ChipLogProgress( + chipTool, " ***** Test Step 45 : Step 5q: TH reads from the DUT the EventList optional (AirDetection)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E0f")) { + NextTest(); + return; + } + NextTest(); + return; + case 46: + ChipLogProgress(chipTool, + " ***** Test Step 46 : Step 5r: TH reads from the DUT the EventList optional (TurbineOperation)attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && PCC.S.E10")) { + NextTest(); + return; + } + NextTest(); + return; + case 47: + ChipLogProgress(chipTool, + " ***** Test Step 47 : Step 5s: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5sThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_47(); + break; + case 48: + ChipLogProgress(chipTool, + " ***** Test Step 48 : Step 6: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -84496,11 +88514,11 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + err = TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_48(); break; - case 29: + case 49: ChipLogProgress(chipTool, - " ***** Test Step 29 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 49 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -84509,7 +88527,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_49(); break; } @@ -84612,6 +88630,66 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 38: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 39: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 40: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 41: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 42: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 43: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 44: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 45: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 46: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 47: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 48: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 49: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -84625,7 +88703,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 30; + const uint16_t mTestCount = 50; chip::Optional mNodeId; chip::Optional mCluster; @@ -84863,6 +88941,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 32UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -84873,7 +88952,41 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsOptionalAttributeMinConstPressureAttributeInAttributeListFromTheDut_11() + CHIP_ERROR TestStep4aThReadsTheAttributeListAttributeFromTheDut_11() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterPumpConfigurationAndControl alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads the AttributeList attribute from the DUT 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, 17UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 18UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 19UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 32UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bThReadsOptionalAttributeMinConstPressureAttributeInAttributeListFromTheDut_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -84896,7 +89009,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cThReadsOptionalAttributeMaxConstPressureAttributeInAttributeListFromTheDut_12() + CHIP_ERROR TestStep4cThReadsOptionalAttributeMaxConstPressureAttributeInAttributeListFromTheDut_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -84919,7 +89032,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dThReadsOptionalAttributeMinCompPressureAttributeInAttributeListFromTheDut_13() + CHIP_ERROR TestStep4dThReadsOptionalAttributeMinCompPressureAttributeInAttributeListFromTheDut_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -84942,7 +89055,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eThReadsOptionalAttributeMaxCompPressureAttributeInAttributeListFromTheDut_14() + CHIP_ERROR TestStep4eThReadsOptionalAttributeMaxCompPressureAttributeInAttributeListFromTheDut_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -84965,7 +89078,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fThReadsOptionalAttributeMinConstSpeedAttributeInAttributeListFromTheDut_15() + CHIP_ERROR TestStep4fThReadsOptionalAttributeMinConstSpeedAttributeInAttributeListFromTheDut_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -84988,7 +89101,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gThReadsOptionalAttributeMaxConstSpeedAttributeInAttributeListFromTheDut_16() + CHIP_ERROR TestStep4gThReadsOptionalAttributeMaxConstSpeedAttributeInAttributeListFromTheDut_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85011,7 +89124,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hThReadsOptionalAttributeMinConstFlowAttributeInAttributeListFromTheDut_17() + CHIP_ERROR TestStep4hThReadsOptionalAttributeMinConstFlowAttributeInAttributeListFromTheDut_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85034,7 +89147,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4iThReadsOptionalAttributeMaxConstFlowAttributeInAttributeListFromTheDut_18() + CHIP_ERROR TestStep4iThReadsOptionalAttributeMaxConstFlowAttributeInAttributeListFromTheDut_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85057,7 +89170,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jThReadsOptionalAttributeMinConstTempAttributeInAttributeListFromTheDut_19() + CHIP_ERROR TestStep4jThReadsOptionalAttributeMinConstTempAttributeInAttributeListFromTheDut_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85080,7 +89193,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kThReadsOptionalAttributeMaxConstTempAttributeInAttributeListFromTheDut_20() + CHIP_ERROR TestStep4kThReadsOptionalAttributeMaxConstTempAttributeInAttributeListFromTheDut_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85103,7 +89216,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4lThReadsOptionalAttributePumpStatusAttributeInAttributeListFromTheDut_21() + CHIP_ERROR TestStep4lThReadsOptionalAttributePumpStatusAttributeInAttributeListFromTheDut_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85126,7 +89239,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4mThReadsOptionalAttributeSpeedAttributeInAttributeListFromTheDut_22() + CHIP_ERROR TestStep4mThReadsOptionalAttributeSpeedAttributeInAttributeListFromTheDut_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85149,7 +89262,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4nThReadsOptionalAttributeLifetimeRunningHoursAttributeInAttributeListFromTheDut_23() + CHIP_ERROR TestStep4nThReadsOptionalAttributeLifetimeRunningHoursAttributeInAttributeListFromTheDut_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85173,7 +89286,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4oThReadsOptionalAttributePowerAttributeInAttributeListFromTheDut_24() + CHIP_ERROR TestStep4oThReadsOptionalAttributePowerAttributeInAttributeListFromTheDut_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85196,7 +89309,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4pThReadsOptionalAttributeLifetimeEnergyConsumedAttributeInAttributeListFromTheDut_25() + CHIP_ERROR TestStep4pThReadsOptionalAttributeLifetimeEnergyConsumedAttributeInAttributeListFromTheDut_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85220,7 +89333,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4qThReadsOptionalAttributeControlModeAttributeInAttributeListFromTheDut_26() + CHIP_ERROR TestStep4qThReadsOptionalAttributeControlModeAttributeInAttributeListFromTheDut_27() { MTRBaseDevice * device = GetDevice("alpha"); @@ -85244,7 +89357,18 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4rThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_27() + TestStep4rThReadsAttributeListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep5sThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_47() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -85255,7 +89379,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + TestStep6ThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_48() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -85266,7 +89390,7 @@ class Test_TC_PCC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_49() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -87770,23 +91894,45 @@ class Test_TC_RH_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4b: Read the optional attribute(Tolerance) in AttributeList\n"); - if (ShouldSkip("RH.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeToleranceInAttributeList_4(); + err = TestStep4aReadTheGlobalAttributeAttributeList_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: Read the optional attribute(Tolerance) in AttributeList\n"); + if (ShouldSkip("RH.S.A0003")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeToleranceInAttributeList_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: Read the global attribute: AcceptedCommandList\n"); + err = TestStep5ReadTheGlobalAttributeAcceptedCommandList_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6: Read the global attribute: GeneratedCommandList\n"); + err = TestStep6ReadTheGlobalAttributeGeneratedCommandList_7(); + break; + case 8: + ChipLogProgress(chipTool, + " ***** Test Step 8 : Step 7: Read EventList attribute from the DUT.For this cluster the list is usually empty but " + "it can contain manufacturer specific event IDs.\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep7ReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_8(); break; } @@ -87820,6 +91966,12 @@ class Test_TC_RH_1_1 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -87833,7 +91985,7 @@ class Test_TC_RH_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -87909,6 +92061,37 @@ class Test_TC_RH_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList 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)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterRelativeHumidityMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -87930,7 +92113,7 @@ class Test_TC_RH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeToleranceInAttributeList_4() + CHIP_ERROR TestStep4bReadTheOptionalAttributeToleranceInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -87953,7 +92136,7 @@ class Test_TC_RH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadTheGlobalAttributeAcceptedCommandList_5() + CHIP_ERROR TestStep5ReadTheGlobalAttributeAcceptedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -87979,7 +92162,7 @@ class Test_TC_RH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeGeneratedCommandList_6() + CHIP_ERROR TestStep6ReadTheGlobalAttributeGeneratedCommandList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -88004,6 +92187,17 @@ class Test_TC_RH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + + CHIP_ERROR + TestStep7ReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_8() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } }; class Test_TC_RH_2_1 : public TestCommandBridge { @@ -88401,24 +92595,81 @@ class Test_TC_SMOKECO_1_1 : public TestCommandBridge { err = TestThReadsFromTheDutTheAttributeListAttributeExpiryDate_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads from the DUT the AcceptedCommandList attribute\n"); + ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads from the DUT the EventList attribute\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads from the DUT the EventList attribute(SmokeAlarm)\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E00")) { + NextTest(); + return; + } + NextTest(); + return; + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads from the DUT the EventList attribute(COAlarm)\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E01")) { + NextTest(); + return; + } + NextTest(); + return; + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : TH reads from the DUT the EventList attribute(AlarmMuted)\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E06")) { + NextTest(); + return; + } + NextTest(); + return; + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : TH reads from the DUT the EventList attribute(MuteEnded)\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E07")) { + NextTest(); + return; + } + NextTest(); + return; + case 20: + ChipLogProgress( + chipTool, " ***** Test Step 20 : TH reads from the DUT the EventList attribute(InterconnectSmokeAlarm)\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E08")) { + NextTest(); + return; + } + NextTest(); + return; + case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : TH reads from the DUT the EventList attribute(InterconnectCOAlarm)\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && SMOKECO.S.E09")) { + NextTest(); + return; + } + NextTest(); + return; + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : TH reads from the DUT the AcceptedCommandList attribute\n"); if (ShouldSkip("!SMOKECO.S.C00.Rsp")) { NextTest(); return; } - err = TestThReadsFromTheDutTheAcceptedCommandListAttribute_15(); + err = TestThReadsFromTheDutTheAcceptedCommandListAttribute_22(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads from the DUT the AcceptedCommandList attribute\n"); + case 23: + ChipLogProgress(chipTool, " ***** Test Step 23 : TH reads from the DUT the AcceptedCommandList attribute\n"); if (ShouldSkip("SMOKECO.S.C00.Rsp")) { NextTest(); return; } - err = TestThReadsFromTheDutTheAcceptedCommandListAttribute_16(); + err = TestThReadsFromTheDutTheAcceptedCommandListAttribute_23(); break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads from the DUT the GeneratedCommandList attribute\n"); - err = TestThReadsFromTheDutTheGeneratedCommandListAttribute_17(); + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : TH reads from the DUT the GeneratedCommandList attribute\n"); + err = TestThReadsFromTheDutTheGeneratedCommandListAttribute_24(); break; } @@ -88485,6 +92736,27 @@ class Test_TC_SMOKECO_1_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; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -88498,7 +92770,7 @@ class Test_TC_SMOKECO_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 18; + const uint16_t mTestCount = 25; chip::Optional mNodeId; chip::Optional mCluster; @@ -88826,7 +93098,7 @@ class Test_TC_SMOKECO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFromTheDutTheAcceptedCommandListAttribute_15() + CHIP_ERROR TestThReadsFromTheDutTheAcceptedCommandListAttribute_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -88850,7 +93122,7 @@ class Test_TC_SMOKECO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFromTheDutTheAcceptedCommandListAttribute_16() + CHIP_ERROR TestThReadsFromTheDutTheAcceptedCommandListAttribute_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -88871,7 +93143,7 @@ class Test_TC_SMOKECO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFromTheDutTheGeneratedCommandListAttribute_17() + CHIP_ERROR TestThReadsFromTheDutTheGeneratedCommandListAttribute_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -91129,19 +95401,91 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4b: Read the global attribute: AttributeList\n"); - if (ShouldSkip("!SWTCH.S.F04")) { + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && !SWTCH.S.F04")) { NextTest(); return; } err = TestStep4bReadTheGlobalAttributeAttributeList_9(); break; case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_10(); + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 4b: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED && !SWTCH.S.F04")) { + NextTest(); + return; + } + err = TestStep4bReadTheGlobalAttributeAttributeList_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 7: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_11(); + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 5a: Read the global attribute: EventList \n"); + if (ShouldSkip("!SWTCH.S.F00 && !SWTCH.S.F01 && !SWTCH.S.F02 && !SWTCH.S.F03 && !SWTCH.S.F04 ")) { + NextTest(); + return; + } + NextTest(); + return; + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 5b: Read EventList if SWTCH.S.F00(LS)\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && SWTCH.S.F00")) { + NextTest(); + return; + } + NextTest(); + return; + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 5c: Read EventList if SWTCH.S.F01(MS) & !SWTCH.S.F02(MSR)\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && !SWTCH.S.F02")) { + NextTest(); + return; + } + NextTest(); + return; + case 14: + ChipLogProgress(chipTool, + " ***** Test Step 14 : Step 5d: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & !SWTCH.S.F03(MSL) & " + "!SWTCH.S.F04(MSM)\n"); + if (ShouldSkip(" PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03 && !SWTCH.S.F04 ")) { + NextTest(); + return; + } + NextTest(); + return; + case 15: + ChipLogProgress(chipTool, + " ***** Test Step 15 : Step 5e: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & SWTCH.S.F03(MSL) & " + "!SWTCH.S.F04(MSM)\n"); + if (ShouldSkip(" PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && SWTCH.S.F03 && !SWTCH.S.F04 ")) { + NextTest(); + return; + } + NextTest(); + return; + case 16: + ChipLogProgress(chipTool, + " ***** Test Step 16 : Step 5f: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & !SWTCH.S.F03(MSL) & " + "SWTCH.S.F04(MSM) \n"); + if (ShouldSkip(" PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03 && SWTCH.S.F04 ")) { + NextTest(); + return; + } + NextTest(); + return; + case 17: + ChipLogProgress(chipTool, + " ***** Test Step 17 : Step 5g: Read EventList if SWTCH.S.F01(MS) & SWTCH.S.F02(MSR) & SWTCH.S.F03(MSL) & " + "SWTCH.S.F04(MSM) \n"); + if (ShouldSkip(" PICS_EVENT_LIST_ENABLED && SWTCH.S.F01 && SWTCH.S.F02 && SWTCH.S.F03 && SWTCH.S.F04 ")) { + NextTest(); + return; + } + NextTest(); + return; + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Step 6: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6ReadTheGlobalAttributeAcceptedCommandList_18(); + break; + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Step 7: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_19(); break; } @@ -91190,6 +95534,30 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -91203,7 +95571,7 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 12; + const uint16_t mTestCount = 20; chip::Optional mNodeId; chip::Optional mCluster; @@ -91389,6 +95757,34 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterSwitch 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: Read the global attribute: AttributeList 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, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheGlobalAttributeAttributeList_10() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterSwitch 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: Read the global attribute: AttributeList Error: %@", err); @@ -91409,7 +95805,7 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_10() + CHIP_ERROR TestStep6ReadTheGlobalAttributeAcceptedCommandList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -91433,7 +95829,7 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_11() + CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -91510,65 +95906,108 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: TH reads the AttributeList attribute from the DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsTheAttributeListAttributeFromTheDut_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads the AttributeList attribute from the DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsTheAttributeListAttributeFromTheDut_4(); + break; + case 5: ChipLogProgress(chipTool, - " ***** Test Step 4 : Step 4b: TH reads from the DUT the optional attribute(CountdownTime) in the AttributeList " + " ***** Test Step 5 : Step 4b: TH reads from the DUT the optional attribute(CountdownTime) in the AttributeList " "from the DUT\n"); if (ShouldSkip("RVCOPSTATE.S.A0002")) { NextTest(); return; } - err = TestStep4bThReadsFromTheDutTheOptionalAttributeCountdownTimeInTheAttributeListFromTheDut_4(); + err = TestStep4bThReadsFromTheDutTheOptionalAttributeCountdownTimeInTheAttributeListFromTheDut_5(); break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 6a: Read the optional command(Pause) in AcceptedCommandList\n"); + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5a: TH reads from the DUT the EventList attribute.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 7: + ChipLogProgress(chipTool, + " ***** Test Step 7 : Step 5b: TH reads from the DUT the optional event(OperationCompletion) in EventList.\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && RVCOPSTATE.S.E01")) { + NextTest(); + return; + } + NextTest(); + return; + case 8: + ChipLogProgress(chipTool, + " ***** Test Step 8 : Step 5c: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5cThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 6a: Read the optional command(Pause) in AcceptedCommandList\n"); if (ShouldSkip("RVCOPSTATE.S.C00.Rsp || RVCOPSTATE.S.C03.Rsp")) { NextTest(); return; } - err = TestStep6aReadTheOptionalCommandPauseInAcceptedCommandList_5(); + err = TestStep6aReadTheOptionalCommandPauseInAcceptedCommandList_9(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6b: Read the optional command(Stop) in AcceptedCommandList\n"); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6b: Read the optional command(Stop) in AcceptedCommandList\n"); if (ShouldSkip("RVCOPSTATE.S.C01.Rsp || RVCOPSTATE.S.C02.Rsp")) { NextTest(); return; } - err = TestStep6bReadTheOptionalCommandStopInAcceptedCommandList_6(); + err = TestStep6bReadTheOptionalCommandStopInAcceptedCommandList_10(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6c: Read the optional command(Start) in AcceptedCommandList\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 6c: Read the optional command(Start) in AcceptedCommandList\n"); if (ShouldSkip("RVCOPSTATE.S.C02.Rsp")) { NextTest(); return; } - err = TestStep6cReadTheOptionalCommandStartInAcceptedCommandList_7(); + err = TestStep6cReadTheOptionalCommandStartInAcceptedCommandList_11(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6d: Read the optional command(Resume) in AcceptedCommandList\n"); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6d: Read the optional command(Resume) in AcceptedCommandList\n"); if (ShouldSkip("RVCOPSTATE.S.C03.Rsp || RVCOPSTATE.S.C00.Rsp")) { NextTest(); return; } - err = TestStep6dReadTheOptionalCommandResumeInAcceptedCommandList_8(); + err = TestStep6dReadTheOptionalCommandResumeInAcceptedCommandList_12(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 7: Read the global attribute: GeneratedCommandList\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 7: Read the global attribute: GeneratedCommandList\n"); if (ShouldSkip(" !RVCOPSTATE.S.C00.Rsp && !RVCOPSTATE.S.C01.Rsp && !RVCOPSTATE.S.C02.Rsp && !RVCOPSTATE.S.C03.Rsp ")) { NextTest(); return; } - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_9(); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_13(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 7: Read the global attribute: GeneratedCommandList\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 7: Read the global attribute: GeneratedCommandList\n"); if (ShouldSkip(" RVCOPSTATE.S.C00.Rsp || RVCOPSTATE.S.C01.Rsp || RVCOPSTATE.S.C02.Rsp || RVCOPSTATE.S.C03.Rsp ")) { NextTest(); return; } - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_10(); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList_14(); break; } @@ -91614,6 +96053,18 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -91627,7 +96078,7 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 11; + const uint16_t mTestCount = 15; chip::Optional mNodeId; chip::Optional mCluster; @@ -91703,6 +96154,39 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads the AttributeList attribute from the DUT 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, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsTheAttributeListAttributeFromTheDut_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterRVCOperationalState alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads the AttributeList attribute from the DUT Error: %@", err); @@ -91726,7 +96210,7 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsFromTheDutTheOptionalAttributeCountdownTimeInTheAttributeListFromTheDut_4() + CHIP_ERROR TestStep4bThReadsFromTheDutTheOptionalAttributeCountdownTimeInTheAttributeListFromTheDut_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -91751,7 +96235,18 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6aReadTheOptionalCommandPauseInAcceptedCommandList_5() + CHIP_ERROR + TestStep5cThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aReadTheOptionalCommandPauseInAcceptedCommandList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -91775,7 +96270,7 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bReadTheOptionalCommandStopInAcceptedCommandList_6() + CHIP_ERROR TestStep6bReadTheOptionalCommandStopInAcceptedCommandList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -91799,7 +96294,7 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6cReadTheOptionalCommandStartInAcceptedCommandList_7() + CHIP_ERROR TestStep6cReadTheOptionalCommandStartInAcceptedCommandList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -91822,7 +96317,7 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6dReadTheOptionalCommandResumeInAcceptedCommandList_8() + CHIP_ERROR TestStep6dReadTheOptionalCommandResumeInAcceptedCommandList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -91846,7 +96341,7 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_9() + CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -91872,7 +96367,7 @@ class Test_TC_RVCOPSTATE_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_10() + CHIP_ERROR TestStep7ReadTheGlobalAttributeGeneratedCommandList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -91948,23 +96443,45 @@ class Test_TC_TMP_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4b: Read the optional attribute(Tolerance) in AttributeList\n"); - if (ShouldSkip("TMP.S.A0003")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeToleranceInAttributeList_4(); + err = TestStep4aReadTheGlobalAttributeAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 5: Read AcceptedCommandList attribute from the DUT\n"); - err = TestStep5ReadAcceptedCommandListAttributeFromTheDut_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4b: Read the optional attribute(Tolerance) in AttributeList\n"); + if (ShouldSkip("TMP.S.A0003")) { + NextTest(); + return; + } + err = TestStep4bReadTheOptionalAttributeToleranceInAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 6: Read GeneratedCommandList attribute from the DUT\n"); - err = TestStep6ReadGeneratedCommandListAttributeFromTheDut_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5: Read AcceptedCommandList attribute from the DUT\n"); + err = TestStep5ReadAcceptedCommandListAttributeFromTheDut_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6: Read GeneratedCommandList attribute from the DUT\n"); + err = TestStep6ReadGeneratedCommandListAttributeFromTheDut_7(); + break; + case 8: + ChipLogProgress(chipTool, + " ***** Test Step 8 : Step 7: Read EventList attribute from the DUT.For this cluster the list is usually empty but " + "it can contain manufacturer specific event IDs.\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep7ReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_8(); break; } @@ -91998,6 +96515,12 @@ class Test_TC_TMP_1_1 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -92011,7 +96534,7 @@ class Test_TC_TMP_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -92087,6 +96610,37 @@ class Test_TC_TMP_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList 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)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterTemperatureMeasurement alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -92108,7 +96662,7 @@ class Test_TC_TMP_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeToleranceInAttributeList_4() + CHIP_ERROR TestStep4bReadTheOptionalAttributeToleranceInAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -92131,7 +96685,7 @@ class Test_TC_TMP_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5ReadAcceptedCommandListAttributeFromTheDut_5() + CHIP_ERROR TestStep5ReadAcceptedCommandListAttributeFromTheDut_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -92157,7 +96711,7 @@ class Test_TC_TMP_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ReadGeneratedCommandListAttributeFromTheDut_6() + CHIP_ERROR TestStep6ReadGeneratedCommandListAttributeFromTheDut_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -92182,6 +96736,17 @@ class Test_TC_TMP_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + + CHIP_ERROR + TestStep7ReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_8() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } }; class Test_TC_TMP_2_1 : public TestCommandBridge { @@ -92549,412 +97114,434 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { break; case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_10(); break; case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aReadTheGlobalAttributeAttributeList_11(); + break; + case 12: ChipLogProgress(chipTool, - " ***** Test Step 11 : Step 4b: Read the Feature dependent(TSTAT.S.F00(HEAT)) attribute in AttributeList\n"); + " ***** Test Step 12 : Step 4b: Read the Feature dependent(TSTAT.S.F00(HEAT)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F00")) { NextTest(); return; } - err = TestStep4bReadTheFeatureDependentTSTATSF00HEATAttributeInAttributeList_11(); + err = TestStep4bReadTheFeatureDependentTSTATSF00HEATAttributeInAttributeList_12(); break; - case 12: + case 13: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 4c: Read the Feature dependent(TSTAT.S.F01(COOL)) attribute in AttributeList\n"); + " ***** Test Step 13 : Step 4c: Read the Feature dependent(TSTAT.S.F01(COOL)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F01")) { NextTest(); return; } - err = TestStep4cReadTheFeatureDependentTSTATSF01COOLAttributeInAttributeList_12(); + err = TestStep4cReadTheFeatureDependentTSTATSF01COOLAttributeInAttributeList_13(); break; - case 13: + case 14: ChipLogProgress(chipTool, - " ***** Test Step 13 : Step 4d: Read the Feature dependent(TSTAT.S.F02(OCC)) attribute in AttributeList\n"); + " ***** Test Step 14 : Step 4d: Read the Feature dependent(TSTAT.S.F02(OCC)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F02")) { NextTest(); return; } - err = TestStep4dReadTheFeatureDependentTSTATSF02OCCAttributeInAttributeList_13(); + err = TestStep4dReadTheFeatureDependentTSTATSF02OCCAttributeInAttributeList_14(); break; - case 14: + case 15: ChipLogProgress(chipTool, - " ***** Test Step 14 : Step 4e: Read the Feature dependent(TSTAT.S.F00(HEAT) & TSTAT.S.F02(OCC)) attribute in " + " ***** Test Step 15 : Step 4e: Read the Feature dependent(TSTAT.S.F00(HEAT) & TSTAT.S.F02(OCC)) attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F00 && TSTAT.S.F02")) { NextTest(); return; } - err = TestStep4eReadTheFeatureDependentTSTATSF00HEATTstatsf02occAttributeInAttributeList_14(); + err = TestStep4eReadTheFeatureDependentTSTATSF00HEATTstatsf02occAttributeInAttributeList_15(); break; - case 15: + case 16: ChipLogProgress(chipTool, - " ***** Test Step 15 : Step 4f: Read the Feature dependent(TSTAT.S.F01(COOL) & TSTAT.S.F02(OCC)) attribute in " + " ***** Test Step 16 : Step 4f: Read the Feature dependent(TSTAT.S.F01(COOL) & TSTAT.S.F02(OCC)) attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F01 && TSTAT.S.F02")) { NextTest(); return; } - err = TestStep4fReadTheFeatureDependentTSTATSF01COOLTstatsf02occAttributeInAttributeList_15(); + err = TestStep4fReadTheFeatureDependentTSTATSF01COOLTstatsf02occAttributeInAttributeList_16(); break; - case 16: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 16 : Step 4g: Read the Feature dependent(TSTAT.S.F05(AUTO)) attribute in AttributeList\n"); + " ***** Test Step 17 : Step 4g: Read the Feature dependent(TSTAT.S.F05(AUTO)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F05")) { NextTest(); return; } - err = TestStep4gReadTheFeatureDependentTSTATSF05AUTOAttributeInAttributeList_16(); + err = TestStep4gReadTheFeatureDependentTSTATSF05AUTOAttributeInAttributeList_17(); break; - case 17: + case 18: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 4h: Read the Feature dependent(TSTAT.S.F03(SCH)) attribute in AttributeList\n"); + " ***** Test Step 18 : Step 4h: Read the Feature dependent(TSTAT.S.F03(SCH)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F03")) { NextTest(); return; } - err = TestStep4hReadTheFeatureDependentTSTATSF03SCHAttributeInAttributeList_17(); + err = TestStep4hReadTheFeatureDependentTSTATSF03SCHAttributeInAttributeList_18(); break; - case 18: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 4i: Read the Feature dependent(TSTAT.S.F04(SB)) attribute in AttributeList\n"); + " ***** Test Step 19 : Step 4i: Read the Feature dependent(TSTAT.S.F04(SB)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F04")) { NextTest(); return; } - err = TestStep4iReadTheFeatureDependentTSTATSF04SBAttributeInAttributeList_18(); + err = TestStep4iReadTheFeatureDependentTSTATSF04SBAttributeInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress(chipTool, - " ***** Test Step 19 : Step 4j: Read the Feature dependent(TSTAT.S.F04(SB) & TSTAT.S.F02(OCC)) attribute in " + " ***** Test Step 20 : Step 4j: Read the Feature dependent(TSTAT.S.F04(SB) & TSTAT.S.F02(OCC)) attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F04 && TSTAT.S.F02")) { NextTest(); return; } - err = TestStep4jReadTheFeatureDependentTSTATSF04SBTstatsf02occAttributeInAttributeList_19(); + err = TestStep4jReadTheFeatureDependentTSTATSF04SBTstatsf02occAttributeInAttributeList_20(); break; - case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Step 4k: Read the optional attribute in AttributeList\n"); + case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : Step 4k: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0001")) { NextTest(); return; } - err = TestStep4kReadTheOptionalAttributeInAttributeList_20(); + err = TestStep4kReadTheOptionalAttributeInAttributeList_21(); break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : Step 4l: Read the optional attribute in AttributeList\n"); + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : Step 4l: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0009")) { NextTest(); return; } - err = TestStep4lReadTheOptionalAttributeInAttributeList_21(); + err = TestStep4lReadTheOptionalAttributeInAttributeList_22(); break; - case 22: - ChipLogProgress(chipTool, " ***** Test Step 22 : Step 4m: Read the optional attribute in AttributeList\n"); + case 23: + ChipLogProgress(chipTool, " ***** Test Step 23 : Step 4m: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0010")) { NextTest(); return; } - err = TestStep4mReadTheOptionalAttributeInAttributeList_22(); + err = TestStep4mReadTheOptionalAttributeInAttributeList_23(); break; - case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : Step 4n: Read the optional attribute in AttributeList\n"); + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : Step 4n: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A001a")) { NextTest(); return; } - err = TestStep4nReadTheOptionalAttributeInAttributeList_23(); + err = TestStep4nReadTheOptionalAttributeInAttributeList_24(); break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : Step 4o: Read the optional attribute in AttributeList\n"); + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : Step 4o: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A001d")) { NextTest(); return; } - err = TestStep4oReadTheOptionalAttributeInAttributeList_24(); + err = TestStep4oReadTheOptionalAttributeInAttributeList_25(); break; - case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : Step 4p: Read the optional attribute in AttributeList\n"); + case 26: + ChipLogProgress(chipTool, " ***** Test Step 26 : Step 4p: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0023")) { NextTest(); return; } - err = TestStep4pReadTheOptionalAttributeInAttributeList_25(); + err = TestStep4pReadTheOptionalAttributeInAttributeList_26(); break; - case 26: - ChipLogProgress(chipTool, " ***** Test Step 26 : Step 4q: Read the optional attribute in AttributeList\n"); + case 27: + ChipLogProgress(chipTool, " ***** Test Step 27 : Step 4q: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0024")) { NextTest(); return; } - err = TestStep4qReadTheOptionalAttributeInAttributeList_26(); + err = TestStep4qReadTheOptionalAttributeInAttributeList_27(); break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 4r: Read the optional attribute in AttributeList\n"); + case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 4r: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0025")) { NextTest(); return; } - err = TestStep4rReadTheOptionalAttributeInAttributeList_27(); + err = TestStep4rReadTheOptionalAttributeInAttributeList_28(); break; - case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : Step 4s: Read the optional attribute in AttributeList\n"); + case 29: + ChipLogProgress(chipTool, " ***** Test Step 29 : Step 4s: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0029")) { NextTest(); return; } - err = TestStep4sReadTheOptionalAttributeInAttributeList_28(); + err = TestStep4sReadTheOptionalAttributeInAttributeList_29(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : Step 4t: Read the optional attribute in AttributeList\n"); + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Step 4t: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0030")) { NextTest(); return; } - err = TestStep4tReadTheOptionalAttributeInAttributeList_29(); + err = TestStep4tReadTheOptionalAttributeInAttributeList_30(); break; - case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : Step 4u: Read the optional attribute in AttributeList\n"); + case 31: + ChipLogProgress(chipTool, " ***** Test Step 31 : Step 4u: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0031")) { NextTest(); return; } - err = TestStep4uReadTheOptionalAttributeInAttributeList_30(); + err = TestStep4uReadTheOptionalAttributeInAttributeList_31(); break; - case 31: - ChipLogProgress(chipTool, " ***** Test Step 31 : Step 4x: Read the optional attribute in AttributeList\n"); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 4x: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0032")) { NextTest(); return; } - err = TestStep4xReadTheOptionalAttributeInAttributeList_31(); + err = TestStep4xReadTheOptionalAttributeInAttributeList_32(); break; - case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : Step 5y: Read the optional attribute: AttributeList\n"); + case 33: + ChipLogProgress(chipTool, " ***** Test Step 33 : Step 5y: Read the optional attribute: AttributeList\n"); if (ShouldSkip("TSTAT.S.A003a")) { NextTest(); return; } - err = TestStep5yReadTheOptionalAttributeAttributeList_32(); + err = TestStep5yReadTheOptionalAttributeAttributeList_33(); break; - case 33: - ChipLogProgress(chipTool, " ***** Test Step 33 : Step 4z: Read the optional attribute in AttributeList\n"); + case 34: + ChipLogProgress(chipTool, " ***** Test Step 34 : Step 4z: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0040")) { NextTest(); return; } - err = TestStep4zReadTheOptionalAttributeInAttributeList_33(); + err = TestStep4zReadTheOptionalAttributeInAttributeList_34(); break; - case 34: - ChipLogProgress(chipTool, " ***** Test Step 34 : Step 4A: Read the optional attribute in AttributeList\n"); + case 35: + ChipLogProgress(chipTool, " ***** Test Step 35 : Step 4A: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0041")) { NextTest(); return; } - err = TestStep4aReadTheOptionalAttributeInAttributeList_34(); + err = TestStep4aReadTheOptionalAttributeInAttributeList_35(); break; - case 35: - ChipLogProgress(chipTool, " ***** Test Step 35 : Step 4B: Read the optional attribute in AttributeList\n"); + case 36: + ChipLogProgress(chipTool, " ***** Test Step 36 : Step 4B: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0042")) { NextTest(); return; } - err = TestStep4bReadTheOptionalAttributeInAttributeList_35(); + err = TestStep4bReadTheOptionalAttributeInAttributeList_36(); break; - case 36: - ChipLogProgress(chipTool, " ***** Test Step 36 : Step 4C: Read the optional attribute in AttributeList\n"); + case 37: + ChipLogProgress(chipTool, " ***** Test Step 37 : Step 4C: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0043")) { NextTest(); return; } - err = TestStep4cReadTheOptionalAttributeInAttributeList_36(); + err = TestStep4cReadTheOptionalAttributeInAttributeList_37(); break; - case 37: - ChipLogProgress(chipTool, " ***** Test Step 37 : Step 5D: Read the optional attribute: AttributeList\n"); + case 38: + ChipLogProgress(chipTool, " ***** Test Step 38 : Step 5D: Read the optional attribute: AttributeList\n"); if (ShouldSkip("TSTAT.S.A0044")) { NextTest(); return; } - err = TestStep5dReadTheOptionalAttributeAttributeList_37(); + err = TestStep5dReadTheOptionalAttributeAttributeList_38(); break; - case 38: - ChipLogProgress(chipTool, " ***** Test Step 38 : Step 4E: Read the optional attribute in AttributeList\n"); + case 39: + ChipLogProgress(chipTool, " ***** Test Step 39 : Step 4E: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0045")) { NextTest(); return; } - err = TestStep4eReadTheOptionalAttributeInAttributeList_38(); + err = TestStep4eReadTheOptionalAttributeInAttributeList_39(); break; - case 39: - ChipLogProgress(chipTool, " ***** Test Step 39 : Step 4F: Read the optional attribute in AttributeList\n"); + case 40: + ChipLogProgress(chipTool, " ***** Test Step 40 : Step 4F: Read the optional attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.A0046")) { NextTest(); return; } - err = TestStep4fReadTheOptionalAttributeInAttributeList_39(); + err = TestStep4fReadTheOptionalAttributeInAttributeList_40(); break; - case 40: - ChipLogProgress(chipTool, " ***** Test Step 40 : Step 5G: Read the optional attribute: AttributeList\n"); + case 41: + ChipLogProgress(chipTool, " ***** Test Step 41 : Step 5G: Read the optional attribute: AttributeList\n"); if (ShouldSkip("TSTAT.S.A0047")) { NextTest(); return; } - err = TestStep5gReadTheOptionalAttributeAttributeList_40(); + err = TestStep5gReadTheOptionalAttributeAttributeList_41(); break; - case 41: + case 42: ChipLogProgress(chipTool, - " ***** Test Step 41 : Step 4H: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in " + " ***** Test Step 42 : Step 4H: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0003")) { NextTest(); return; } - err = TestStep4hReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_41(); + err = TestStep4hReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_42(); break; - case 42: + case 43: ChipLogProgress(chipTool, - " ***** Test Step 42 : Step 4I: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in " + " ***** Test Step 43 : Step 4I: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0004")) { NextTest(); return; } - err = TestStep4iReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_42(); + err = TestStep4iReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_43(); break; - case 43: + case 44: ChipLogProgress(chipTool, - " ***** Test Step 43 : Step 4J: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in " + " ***** Test Step 44 : Step 4J: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0008")) { NextTest(); return; } - err = TestStep4jReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_43(); + err = TestStep4jReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_44(); break; - case 44: + case 45: ChipLogProgress(chipTool, - " ***** Test Step 44 : Step 4K: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in " + " ***** Test Step 45 : Step 4K: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0015")) { NextTest(); return; } - err = TestStep4kReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_44(); + err = TestStep4kReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_45(); break; - case 45: + case 46: ChipLogProgress(chipTool, - " ***** Test Step 45 : Step 4L: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in " + " ***** Test Step 46 : Step 4L: Read the Feature dependent(TSTAT.S.F00(HEAT)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F00 && TSTAT.S.A0016")) { NextTest(); return; } - err = TestStep4lReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_45(); + err = TestStep4lReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_46(); break; - case 46: + case 47: ChipLogProgress(chipTool, - " ***** Test Step 46 : Step 4M: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in " + " ***** Test Step 47 : Step 4M: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0005")) { NextTest(); return; } - err = TestStep4mReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_46(); + err = TestStep4mReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_47(); break; - case 47: + case 48: ChipLogProgress(chipTool, - " ***** Test Step 47 : Step 4N: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in " + " ***** Test Step 48 : Step 4N: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0007")) { NextTest(); return; } - err = TestStep4nReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_47(); + err = TestStep4nReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_48(); break; - case 48: + case 49: ChipLogProgress(chipTool, - " ***** Test Step 48 : Step 4O: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in " + " ***** Test Step 49 : Step 4O: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0007")) { NextTest(); return; } - err = TestStep4oReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_48(); + err = TestStep4oReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_49(); break; - case 49: + case 50: ChipLogProgress(chipTool, - " ***** Test Step 49 : Step 4P: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in " + " ***** Test Step 50 : Step 4P: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0017")) { NextTest(); return; } - err = TestStep4pReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_49(); + err = TestStep4pReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_50(); break; - case 50: + case 51: ChipLogProgress(chipTool, - " ***** Test Step 50 : Step 4Q: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in " + " ***** Test Step 51 : Step 4Q: Read the Feature dependent(TSTAT.S.F01(COOL)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F01 && TSTAT.S.A0018")) { NextTest(); return; } - err = TestStep4qReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_50(); + err = TestStep4qReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_51(); break; - case 51: + case 52: ChipLogProgress(chipTool, - " ***** Test Step 51 : Step 4R: Read the Feature dependent(TSTAT.S.F05(AUTO)) optional attribute in " + " ***** Test Step 52 : Step 4R: Read the Feature dependent(TSTAT.S.F05(AUTO)) optional attribute in " "AttributeList\n"); if (ShouldSkip("TSTAT.S.F05 && TSTAT.S.A001e")) { NextTest(); return; } - err = TestStep4rReadTheFeatureDependentTSTATSF05AUTOOptionalAttributeInAttributeList_51(); + err = TestStep4rReadTheFeatureDependentTSTATSF05AUTOOptionalAttributeInAttributeList_52(); break; - case 52: + case 53: ChipLogProgress(chipTool, - " ***** Test Step 52 : Step 5a: Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList\n"); + " ***** Test Step 53 : Step 5a: Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList\n"); if (ShouldSkip("TSTAT.S.F03")) { NextTest(); return; } - err = TestStep5aReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_52(); + err = TestStep5aReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_53(); break; - case 53: - ChipLogProgress(chipTool, " ***** Test Step 53 : Step 5b: Read the optional attribute: AcceptedCommandList\n"); + case 54: + ChipLogProgress(chipTool, " ***** Test Step 54 : Step 5b: Read the optional attribute: AcceptedCommandList\n"); if (ShouldSkip("TSTAT.S.C04.Rsp")) { NextTest(); return; } - err = TestStep5bReadTheOptionalAttributeAcceptedCommandList_53(); + err = TestStep5bReadTheOptionalAttributeAcceptedCommandList_54(); break; - case 54: - ChipLogProgress(chipTool, " ***** Test Step 54 : Step 6a: Read the global attribute: GeneratedCommandList\n"); + case 55: + ChipLogProgress(chipTool, " ***** Test Step 55 : Step 6a: Read the global attribute: GeneratedCommandList\n"); if (ShouldSkip(" !TSTAT.S.C04.Rsp && !TSTAT.S.C02.Rsp ")) { NextTest(); return; } - err = TestStep6aReadTheGlobalAttributeGeneratedCommandList_54(); + err = TestStep6aReadTheGlobalAttributeGeneratedCommandList_55(); break; - case 55: + case 56: ChipLogProgress(chipTool, - " ***** Test Step 55 : Step 6b: Read Feature dependent(TSTAT.S.F03(SCH)) commands in GeneratedCommandList\n"); + " ***** Test Step 56 : Step 6b: Read Feature dependent(TSTAT.S.F03(SCH)) commands in GeneratedCommandList\n"); if (ShouldSkip("TSTAT.S.F03")) { NextTest(); return; } - err = TestStep6bReadFeatureDependentTSTATSF03SCHCommandsInGeneratedCommandList_55(); + err = TestStep6bReadFeatureDependentTSTATSF03SCHCommandsInGeneratedCommandList_56(); break; - case 56: + case 57: ChipLogProgress(chipTool, - " ***** Test Step 56 : Step 6c: Read optional command (GetRelayStatusLogResponse) in GeneratedCommandList\n"); + " ***** Test Step 57 : Step 6c: Read optional command (GetRelayStatusLogResponse) in GeneratedCommandList\n"); if (ShouldSkip("TSTAT.S.C04.Rsp")) { NextTest(); return; } - err = TestStep6cReadOptionalCommandGetRelayStatusLogResponseInGeneratedCommandList_56(); + err = TestStep6cReadOptionalCommandGetRelayStatusLogResponseInGeneratedCommandList_57(); + break; + case 58: + ChipLogProgress(chipTool, + " ***** Test Step 58 : Step 7: Read EventList attribute from the DUT.For this cluster the list is usually empty " + "but it can contain manufacturer specific event IDs.\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep7ReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_58(); break; } @@ -93138,6 +97725,12 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { case 56: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 57: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 58: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -93151,7 +97744,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 57; + const uint16_t mTestCount = 59; chip::Optional mNodeId; chip::Optional mCluster; @@ -93340,6 +97933,35 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 27UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 28UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_11() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -93361,7 +97983,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheFeatureDependentTSTATSF00HEATAttributeInAttributeList_11() + CHIP_ERROR TestStep4bReadTheFeatureDependentTSTATSF00HEATAttributeInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93382,7 +98004,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheFeatureDependentTSTATSF01COOLAttributeInAttributeList_12() + CHIP_ERROR TestStep4cReadTheFeatureDependentTSTATSF01COOLAttributeInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93403,7 +98025,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadTheFeatureDependentTSTATSF02OCCAttributeInAttributeList_13() + CHIP_ERROR TestStep4dReadTheFeatureDependentTSTATSF02OCCAttributeInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93424,7 +98046,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadTheFeatureDependentTSTATSF00HEATTstatsf02occAttributeInAttributeList_14() + CHIP_ERROR TestStep4eReadTheFeatureDependentTSTATSF00HEATTstatsf02occAttributeInAttributeList_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93446,7 +98068,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheFeatureDependentTSTATSF01COOLTstatsf02occAttributeInAttributeList_15() + CHIP_ERROR TestStep4fReadTheFeatureDependentTSTATSF01COOLTstatsf02occAttributeInAttributeList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93468,7 +98090,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gReadTheFeatureDependentTSTATSF05AUTOAttributeInAttributeList_16() + CHIP_ERROR TestStep4gReadTheFeatureDependentTSTATSF05AUTOAttributeInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93491,7 +98113,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheFeatureDependentTSTATSF03SCHAttributeInAttributeList_17() + CHIP_ERROR TestStep4hReadTheFeatureDependentTSTATSF03SCHAttributeInAttributeList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93514,7 +98136,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4iReadTheFeatureDependentTSTATSF04SBAttributeInAttributeList_18() + CHIP_ERROR TestStep4iReadTheFeatureDependentTSTATSF04SBAttributeInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93537,7 +98159,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheFeatureDependentTSTATSF04SBTstatsf02occAttributeInAttributeList_19() + CHIP_ERROR TestStep4jReadTheFeatureDependentTSTATSF04SBTstatsf02occAttributeInAttributeList_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93561,7 +98183,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kReadTheOptionalAttributeInAttributeList_20() + CHIP_ERROR TestStep4kReadTheOptionalAttributeInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93582,7 +98204,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4lReadTheOptionalAttributeInAttributeList_21() + CHIP_ERROR TestStep4lReadTheOptionalAttributeInAttributeList_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93603,7 +98225,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4mReadTheOptionalAttributeInAttributeList_22() + CHIP_ERROR TestStep4mReadTheOptionalAttributeInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93624,7 +98246,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4nReadTheOptionalAttributeInAttributeList_23() + CHIP_ERROR TestStep4nReadTheOptionalAttributeInAttributeList_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93645,7 +98267,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4oReadTheOptionalAttributeInAttributeList_24() + CHIP_ERROR TestStep4oReadTheOptionalAttributeInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93666,7 +98288,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4pReadTheOptionalAttributeInAttributeList_25() + CHIP_ERROR TestStep4pReadTheOptionalAttributeInAttributeList_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93687,7 +98309,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4qReadTheOptionalAttributeInAttributeList_26() + CHIP_ERROR TestStep4qReadTheOptionalAttributeInAttributeList_27() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93708,7 +98330,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4rReadTheOptionalAttributeInAttributeList_27() + CHIP_ERROR TestStep4rReadTheOptionalAttributeInAttributeList_28() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93729,7 +98351,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4sReadTheOptionalAttributeInAttributeList_28() + CHIP_ERROR TestStep4sReadTheOptionalAttributeInAttributeList_29() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93750,7 +98372,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4tReadTheOptionalAttributeInAttributeList_29() + CHIP_ERROR TestStep4tReadTheOptionalAttributeInAttributeList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93771,7 +98393,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4uReadTheOptionalAttributeInAttributeList_30() + CHIP_ERROR TestStep4uReadTheOptionalAttributeInAttributeList_31() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93792,7 +98414,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4xReadTheOptionalAttributeInAttributeList_31() + CHIP_ERROR TestStep4xReadTheOptionalAttributeInAttributeList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93813,7 +98435,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5yReadTheOptionalAttributeAttributeList_32() + CHIP_ERROR TestStep5yReadTheOptionalAttributeAttributeList_33() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93834,7 +98456,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4zReadTheOptionalAttributeInAttributeList_33() + CHIP_ERROR TestStep4zReadTheOptionalAttributeInAttributeList_34() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93855,7 +98477,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4aReadTheOptionalAttributeInAttributeList_34() + CHIP_ERROR TestStep4aReadTheOptionalAttributeInAttributeList_35() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93876,7 +98498,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheOptionalAttributeInAttributeList_35() + CHIP_ERROR TestStep4bReadTheOptionalAttributeInAttributeList_36() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93897,7 +98519,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheOptionalAttributeInAttributeList_36() + CHIP_ERROR TestStep4cReadTheOptionalAttributeInAttributeList_37() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93918,7 +98540,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5dReadTheOptionalAttributeAttributeList_37() + CHIP_ERROR TestStep5dReadTheOptionalAttributeAttributeList_38() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93939,7 +98561,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadTheOptionalAttributeInAttributeList_38() + CHIP_ERROR TestStep4eReadTheOptionalAttributeInAttributeList_39() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93960,7 +98582,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalAttributeInAttributeList_39() + CHIP_ERROR TestStep4fReadTheOptionalAttributeInAttributeList_40() { MTRBaseDevice * device = GetDevice("alpha"); @@ -93981,7 +98603,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5gReadTheOptionalAttributeAttributeList_40() + CHIP_ERROR TestStep5gReadTheOptionalAttributeAttributeList_41() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94002,7 +98624,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_41() + CHIP_ERROR TestStep4hReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_42() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94023,7 +98645,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4iReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_42() + CHIP_ERROR TestStep4iReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_43() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94044,7 +98666,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_43() + CHIP_ERROR TestStep4jReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_44() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94065,7 +98687,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_44() + CHIP_ERROR TestStep4kReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_45() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94086,7 +98708,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4lReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_45() + CHIP_ERROR TestStep4lReadTheFeatureDependentTSTATSF00HEATOptionalAttributeInAttributeList_46() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94107,7 +98729,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4mReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_46() + CHIP_ERROR TestStep4mReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_47() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94128,7 +98750,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4nReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_47() + CHIP_ERROR TestStep4nReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_48() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94149,7 +98771,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4oReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_48() + CHIP_ERROR TestStep4oReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_49() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94170,7 +98792,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4pReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_49() + CHIP_ERROR TestStep4pReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_50() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94191,7 +98813,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4qReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_50() + CHIP_ERROR TestStep4qReadTheFeatureDependentTSTATSF01COOLOptionalAttributeInAttributeList_51() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94212,7 +98834,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4rReadTheFeatureDependentTSTATSF05AUTOOptionalAttributeInAttributeList_51() + CHIP_ERROR TestStep4rReadTheFeatureDependentTSTATSF05AUTOOptionalAttributeInAttributeList_52() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94233,7 +98855,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5aReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_52() + CHIP_ERROR TestStep5aReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_53() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94257,7 +98879,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5bReadTheOptionalAttributeAcceptedCommandList_53() + CHIP_ERROR TestStep5bReadTheOptionalAttributeAcceptedCommandList_54() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94278,7 +98900,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6aReadTheGlobalAttributeGeneratedCommandList_54() + CHIP_ERROR TestStep6aReadTheGlobalAttributeGeneratedCommandList_55() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94302,7 +98924,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bReadFeatureDependentTSTATSF03SCHCommandsInGeneratedCommandList_55() + CHIP_ERROR TestStep6bReadFeatureDependentTSTATSF03SCHCommandsInGeneratedCommandList_56() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94323,7 +98945,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6cReadOptionalCommandGetRelayStatusLogResponseInGeneratedCommandList_56() + CHIP_ERROR TestStep6cReadOptionalCommandGetRelayStatusLogResponseInGeneratedCommandList_57() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94343,6 +98965,17 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } + + CHIP_ERROR + TestStep7ReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_58() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } }; class Test_TC_TSUIC_1_1 : public TestCommandBridge { @@ -94396,12 +99029,24 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { err = TestStep3ReadFeatureMapAttributeFromTheDut_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: Read the global attribute: AttributeList\n"); - err = TestStep4aReadTheGlobalAttributeAttributeList_3(); + ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ReadTheGlobalAttributeAttributeList_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ReadTheGlobalAttributeAttributeList_4(); + break; + case 5: ChipLogProgress(chipTool, - " ***** Test Step 4 : Step 4b: Read the global attribute: AttributeList. 1.The list SHALL NOT contain any " + " ***** Test Step 5 : Step 4b: Read the global attribute: AttributeList. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -94411,15 +99056,15 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4(); - break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 5a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep5aReadTheGlobalAttributeAcceptedCommandList_5(); + err = TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); break; case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep5aReadTheGlobalAttributeAcceptedCommandList_6(); + break; + case 7: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 5b: Read the global attribute: AcceptedCommandList. 1. The list SHALL NOT contain any " + " ***** Test Step 7 : Step 5b: Read the global attribute: AcceptedCommandList. 1. The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) 2. The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any values in the Test " @@ -94429,15 +99074,15 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep5bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); - break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeGeneratedCommandList_7(); + err = TestStep5bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7(); break; case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 6a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeGeneratedCommandList_8(); + break; + case 9: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 6b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any " + " ***** Test Step 9 : Step 6b: Read the global attribute: GeneratedCommandList. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test " @@ -94447,7 +99092,17 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); + err = TestStep6bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9(); + break; + case 10: + ChipLogProgress(chipTool, + " ***** Test Step 10 : Step 7: Read EventList attribute from the DUT.For this cluster the list is usually empty " + "but it can contain manufacturer specific event IDs.\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep7ReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_10(); break; } @@ -94487,6 +99142,12 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -94500,7 +99161,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 11; chip::Optional mNodeId; chip::Optional mCluster; @@ -94567,7 +99228,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_3() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94577,7 +99238,38 @@ 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 4a: Read the global attribute: AttributeList Error: %@", err); + NSLog(@"Step 4: Read the global attribute: AttributeList 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)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_4() + { + + 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 4: Read the global attribute: AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -94598,7 +99290,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4() + TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -94608,7 +99300,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep5aReadTheGlobalAttributeAcceptedCommandList_5() + CHIP_ERROR TestStep5aReadTheGlobalAttributeAcceptedCommandList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94635,7 +99327,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep5bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + TestStep5bReadTheGlobalAttributeAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -94645,7 +99337,7 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeGeneratedCommandList_7() + CHIP_ERROR TestStep6aReadTheGlobalAttributeGeneratedCommandList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -94672,7 +99364,18 @@ class Test_TC_TSUIC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() + TestStep6bReadTheGlobalAttributeGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep7ReadEventListAttributeFromTheDUTForThisClusterTheListIsUsuallyEmptyButItCanContainManufacturerSpecificEventIDs_10() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -96215,80 +100918,132 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { break; case 7: ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4a: TH reads mandatory attributes in AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsMandatoryAttributesInAttributeListFromDut_7(); break; case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4a: TH reads mandatory attributes in AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsMandatoryAttributesInAttributeListFromDut_8(); + break; + case 9: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 4b: TH reads Feature dependent attribute(DGTHREAD.S.F01(ERRCNT)) in attributeList\n"); + " ***** Test Step 9 : Step 4b: TH reads Feature dependent attribute(DGTHREAD.S.F01(ERRCNT)) in attributeList\n"); if (ShouldSkip("DGTHREAD.S.A0006 && DGTHREAD.S.F01")) { NextTest(); return; } - err = TestStep4bThReadsFeatureDependentAttributeDGTHREADSF01ERRCNTInAttributeList_8(); + err = TestStep4bThReadsFeatureDependentAttributeDGTHREADSF01ERRCNTInAttributeList_9(); break; - case 9: + case 10: ChipLogProgress(chipTool, - " ***** Test Step 9 : Step 4c: TH reads Feature dependent attribute (DGTHREAD.S.F02(MLECNT)) in attributeList\n"); + " ***** Test Step 10 : Step 4c: TH reads Feature dependent attribute (DGTHREAD.S.F02(MLECNT)) in attributeList\n"); if (ShouldSkip("DGTHREAD.S.F02")) { NextTest(); return; } - err = TestStep4cThReadsFeatureDependentAttributeDgthreadsf02mlecntInAttributeList_9(); + err = TestStep4cThReadsFeatureDependentAttributeDgthreadsf02mlecntInAttributeList_10(); break; - case 10: + case 11: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 4d: TH reads Feature dependent attribute (DGTHREAD.S.F03(MACCNT)) in attributeList\n"); + " ***** Test Step 11 : Step 4d: TH reads Feature dependent attribute (DGTHREAD.S.F03(MACCNT)) in attributeList\n"); if (ShouldSkip("DGTHREAD.S.F03")) { NextTest(); return; } - err = TestStep4dThReadsFeatureDependentAttributeDgthreadsf03maccntInAttributeList_10(); + err = TestStep4dThReadsFeatureDependentAttributeDgthreadsf03maccntInAttributeList_11(); break; - case 11: + case 12: ChipLogProgress( - chipTool, " ***** Test Step 11 : Step 4e: Read the optional attribute (ActiveTimestamp) in AttributeList\n"); + chipTool, " ***** Test Step 12 : Step 4e: Read the optional attribute (ActiveTimestamp) in AttributeList\n"); if (ShouldSkip("DGTHREAD.S.A0038")) { NextTest(); return; } - err = TestStep4eReadTheOptionalAttributeActiveTimestampInAttributeList_11(); + err = TestStep4eReadTheOptionalAttributeActiveTimestampInAttributeList_12(); break; - case 12: + case 13: ChipLogProgress( - chipTool, " ***** Test Step 12 : Step 4f: Read the optional attribute (PendingTimestamp) in AttributeList\n"); + chipTool, " ***** Test Step 13 : Step 4f: Read the optional attribute (PendingTimestamp) in AttributeList\n"); if (ShouldSkip("DGTHREAD.S.A0039")) { NextTest(); return; } - err = TestStep4fReadTheOptionalAttributePendingTimestampInAttributeList_12(); + err = TestStep4fReadTheOptionalAttributePendingTimestampInAttributeList_13(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 4g: Read the optional attribute (Delay) in AttributeList\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 4g: Read the optional attribute (Delay) in AttributeList\n"); if (ShouldSkip("DGTHREAD.S.A003a")) { NextTest(); return; } - err = TestStep4gReadTheOptionalAttributeDelayInAttributeList_13(); + err = TestStep4gReadTheOptionalAttributeDelayInAttributeList_14(); break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Step 6a: TH reads AcceptedCommandList from DUT\n"); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 5a: TH reads EventList from DUT\n"); + if (ShouldSkip(" !DGTHREAD.S.E00 && !DGTHREAD.S.E01 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 16: + ChipLogProgress( + chipTool, " ***** Test Step 16 : Step 5b: TH reads DGTHREAD.S.E00(ConnectionStatus) event in EventList\n"); + if (ShouldSkip("DGTHREAD.S.E00 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 17: + ChipLogProgress( + chipTool, " ***** Test Step 17 : Step 5c: TH reads DGTHREAD.S.E01(NetworkFaultChange) event in EventList\n"); + if (ShouldSkip("DGTHREAD.S.E01 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 18: + ChipLogProgress(chipTool, + " ***** Test Step 18 : Step 5d: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5dThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); + break; + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Step 6a: TH reads AcceptedCommandList from DUT\n"); if (ShouldSkip(" !DGTHREAD.S.F01 ")) { NextTest(); return; } - err = TestStep6aThReadsAcceptedCommandListFromDut_14(); + err = TestStep6aThReadsAcceptedCommandListFromDut_19(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 6b: TH reads AcceptedCommandList from DUT\n"); + case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : Step 6b: TH reads AcceptedCommandList from DUT\n"); if (ShouldSkip("DGTHREAD.S.F01")) { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListFromDut_15(); + err = TestStep6bThReadsAcceptedCommandListFromDut_20(); break; - case 16: + case 21: ChipLogProgress(chipTool, - " ***** Test Step 16 : Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 21 : Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -96297,15 +101052,15 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16(); + err = TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_21(); break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Step 7a: TH reads GeneratedCommandList from DUT\n"); - err = TestStep7aThReadsGeneratedCommandListFromDut_17(); + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : Step 7a: TH reads GeneratedCommandList from DUT\n"); + err = TestStep7aThReadsGeneratedCommandListFromDut_22(); break; - case 18: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 18 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 23 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -96314,7 +101069,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_23(); break; } @@ -96384,6 +101139,21 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -96397,7 +101167,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 19; + const uint16_t mTestCount = 24; chip::Optional mNodeId; chip::Optional mCluster; @@ -96557,6 +101327,51 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads mandatory attributes in AttributeList from DUT 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, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 8UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 10UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 11UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 12UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 13UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 59UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 60UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 61UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 62UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsMandatoryAttributesInAttributeListFromDut_8() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads mandatory attributes in AttributeList from DUT Error: %@", err); @@ -96592,7 +101407,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsFeatureDependentAttributeDGTHREADSF01ERRCNTInAttributeList_8() + CHIP_ERROR TestStep4bThReadsFeatureDependentAttributeDGTHREADSF01ERRCNTInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96615,7 +101430,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cThReadsFeatureDependentAttributeDgthreadsf02mlecntInAttributeList_9() + CHIP_ERROR TestStep4cThReadsFeatureDependentAttributeDgthreadsf02mlecntInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96645,7 +101460,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dThReadsFeatureDependentAttributeDgthreadsf03maccntInAttributeList_10() + CHIP_ERROR TestStep4dThReadsFeatureDependentAttributeDgthreadsf03maccntInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96701,7 +101516,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadTheOptionalAttributeActiveTimestampInAttributeList_11() + CHIP_ERROR TestStep4eReadTheOptionalAttributeActiveTimestampInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96724,7 +101539,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheOptionalAttributePendingTimestampInAttributeList_12() + CHIP_ERROR TestStep4fReadTheOptionalAttributePendingTimestampInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96747,7 +101562,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gReadTheOptionalAttributeDelayInAttributeList_13() + CHIP_ERROR TestStep4gReadTheOptionalAttributeDelayInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96770,7 +101585,18 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_14() + CHIP_ERROR + TestStep5dThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96796,7 +101622,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bThReadsAcceptedCommandListFromDut_15() + CHIP_ERROR TestStep6bThReadsAcceptedCommandListFromDut_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96820,7 +101646,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16() + TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_21() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -96830,7 +101656,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aThReadsGeneratedCommandListFromDut_17() + CHIP_ERROR TestStep7aThReadsGeneratedCommandListFromDut_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -96857,7 +101683,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_18() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_23() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -96988,91 +101814,103 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { break; case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : TS4: Check for mandatory attributes in AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestTs4CheckForMandatoryAttributesInAttributeList_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : TS4: Check for optional attribute TimeSource in AttributeList\n"); - if (ShouldSkip("TIMESYNC.S.A0002")) { + ChipLogProgress(chipTool, " ***** Test Step 11 : TS4: Check for mandatory attributes in AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestTs4CheckForOptionalAttributeTimeSourceInAttributeList_11(); + err = TestTs4CheckForMandatoryAttributesInAttributeList_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : TS4: Check for optional attribute TimeSource not in AttributeList\n"); - if (ShouldSkip("!TIMESYNC.S.A0002")) { + ChipLogProgress(chipTool, " ***** Test Step 12 : TS4: Check for optional attribute TimeSource in AttributeList\n"); + if (ShouldSkip("TIMESYNC.S.A0002")) { NextTest(); return; } - err = TestTs4CheckForOptionalAttributeTimeSourceNotInAttributeList_12(); + err = TestTs4CheckForOptionalAttributeTimeSourceInAttributeList_12(); break; case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : TS4: Check for TZ feature-based attributes in AttributeList\n"); - if (ShouldSkip("TIMESYNC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 13 : TS4: Check for optional attribute TimeSource not in AttributeList\n"); + if (ShouldSkip("!TIMESYNC.S.A0002")) { NextTest(); return; } - err = TestTs4CheckForTzFeatureBasedAttributesInAttributeList_13(); + err = TestTs4CheckForOptionalAttributeTimeSourceNotInAttributeList_13(); break; case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : TS4: Check for TZ feature-based attributes not in AttributeList\n"); - if (ShouldSkip("!TIMESYNC.S.F00")) { + ChipLogProgress(chipTool, " ***** Test Step 14 : TS4: Check for TZ feature-based attributes in AttributeList\n"); + if (ShouldSkip("TIMESYNC.S.F00")) { NextTest(); return; } - err = TestTs4CheckForTzFeatureBasedAttributesNotInAttributeList_14(); + err = TestTs4CheckForTzFeatureBasedAttributesInAttributeList_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : TS4: Check for NTPC feature-based attributes in AttributeList\n"); - if (ShouldSkip("TIMESYNC.S.F01")) { + ChipLogProgress(chipTool, " ***** Test Step 15 : TS4: Check for TZ feature-based attributes not in AttributeList\n"); + if (ShouldSkip("!TIMESYNC.S.F00")) { NextTest(); return; } - err = TestTs4CheckForNtpcFeatureBasedAttributesInAttributeList_15(); + err = TestTs4CheckForTzFeatureBasedAttributesNotInAttributeList_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : TS4: Check for NTPC feature-based attributes not in AttributeList\n"); - if (ShouldSkip("!TIMESYNC.S.F01")) { + ChipLogProgress(chipTool, " ***** Test Step 16 : TS4: Check for NTPC feature-based attributes in AttributeList\n"); + if (ShouldSkip("TIMESYNC.S.F01")) { NextTest(); return; } - err = TestTs4CheckForNtpcFeatureBasedAttributesNotInAttributeList_16(); + err = TestTs4CheckForNtpcFeatureBasedAttributesInAttributeList_16(); break; case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : TS4: Check for NTPS feature-based attributes in AttributeList\n"); - if (ShouldSkip("TIMESYNC.S.F02")) { + ChipLogProgress(chipTool, " ***** Test Step 17 : TS4: Check for NTPC feature-based attributes not in AttributeList\n"); + if (ShouldSkip("!TIMESYNC.S.F01")) { NextTest(); return; } - err = TestTs4CheckForNtpsFeatureBasedAttributesInAttributeList_17(); + err = TestTs4CheckForNtpcFeatureBasedAttributesNotInAttributeList_17(); break; case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : TS4: Check for NTPS feature-based attributes not in AttributeList\n"); - if (ShouldSkip("!TIMESYNC.S.F02")) { + ChipLogProgress(chipTool, " ***** Test Step 18 : TS4: Check for NTPS feature-based attributes in AttributeList\n"); + if (ShouldSkip("TIMESYNC.S.F02")) { NextTest(); return; } - err = TestTs4CheckForNtpsFeatureBasedAttributesNotInAttributeList_18(); + err = TestTs4CheckForNtpsFeatureBasedAttributesInAttributeList_18(); break; case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : TS4: Check for TSC feature-based attributes in AttributeList\n"); - if (ShouldSkip("TIMESYNC.S.F03")) { + ChipLogProgress(chipTool, " ***** Test Step 19 : TS4: Check for NTPS feature-based attributes not in AttributeList\n"); + if (ShouldSkip("!TIMESYNC.S.F02")) { NextTest(); return; } - err = TestTs4CheckForTscFeatureBasedAttributesInAttributeList_19(); + err = TestTs4CheckForNtpsFeatureBasedAttributesNotInAttributeList_19(); break; case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : TS4: Check for TSC feature-based attributes not in AttributeList\n"); - if (ShouldSkip("!TIMESYNC.S.F03")) { + ChipLogProgress(chipTool, " ***** Test Step 20 : TS4: Check for TSC feature-based attributes in AttributeList\n"); + if (ShouldSkip("TIMESYNC.S.F03")) { NextTest(); return; } - err = TestTs4CheckForTscFeatureBasedAttributesNotInAttributeList_20(); + err = TestTs4CheckForTscFeatureBasedAttributesInAttributeList_20(); break; case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : TS4: Check for TSC feature-based attributes not in AttributeList\n"); + if (ShouldSkip("!TIMESYNC.S.F03")) { + NextTest(); + return; + } + err = TestTs4CheckForTscFeatureBasedAttributesNotInAttributeList_21(); + break; + case 22: ChipLogProgress(chipTool, - " ***** Test Step 21 : TS4: Check for mandatory attributes in AttributeList. 1.The list SHALL NOT contain any " + " ***** Test Step 22 : TS4: Check for mandatory attributes in AttributeList. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -97082,66 +101920,120 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestTs4CheckForMandatoryAttributesInAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_21(); - break; - case 22: - ChipLogProgress(chipTool, " ***** Test Step 22 : TS6: Check for mandatory commands in AcceptedCommandList\n"); - err = TestTs6CheckForMandatoryCommandsInAcceptedCommandList_22(); + err = TestTs4CheckForMandatoryAttributesInAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_22(); break; case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : TS6: Check for TZ feature-based commands in AcceptedCommandList\n"); + ChipLogProgress(chipTool, " ***** Test Step 23 : TS5: Check for mandatory events in EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : TS5: Check for TZ feature-based events in EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && TIMESYNC.S.F00")) { + NextTest(); + return; + } + NextTest(); + return; + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : TS5: Check for TZ feature-based events not in EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && !TIMESYNC.S.F00")) { + NextTest(); + return; + } + NextTest(); + return; + case 26: + ChipLogProgress(chipTool, " ***** Test Step 26 : TS5: Check for TSC feature-based events in EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && TIMESYNC.S.F03")) { + NextTest(); + return; + } + NextTest(); + return; + case 27: + ChipLogProgress(chipTool, " ***** Test Step 27 : TS5: Check for TSC feature-based events not in EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED && !TIMESYNC.S.F03")) { + NextTest(); + return; + } + NextTest(); + return; + case 28: + ChipLogProgress(chipTool, + " ***** Test Step 28 : TS5: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestTs5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28(); + break; + case 29: + ChipLogProgress(chipTool, " ***** Test Step 29 : TS6: Check for mandatory commands in AcceptedCommandList\n"); + err = TestTs6CheckForMandatoryCommandsInAcceptedCommandList_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : TS6: Check for TZ feature-based commands in AcceptedCommandList\n"); if (ShouldSkip("TIMESYNC.S.F00")) { NextTest(); return; } - err = TestTs6CheckForTzFeatureBasedCommandsInAcceptedCommandList_23(); + err = TestTs6CheckForTzFeatureBasedCommandsInAcceptedCommandList_30(); break; - case 24: + case 31: ChipLogProgress( - chipTool, " ***** Test Step 24 : TS6: Check for TZ feature-based commands in not AcceptedCommandList\n"); + chipTool, " ***** Test Step 31 : TS6: Check for TZ feature-based commands in not AcceptedCommandList\n"); if (ShouldSkip("!TIMESYNC.S.F00")) { NextTest(); return; } - err = TestTs6CheckForTzFeatureBasedCommandsInNotAcceptedCommandList_24(); + err = TestTs6CheckForTzFeatureBasedCommandsInNotAcceptedCommandList_31(); break; - case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : TS6: Check for NTPC feature-based commands in AcceptedCommandList\n"); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : TS6: Check for NTPC feature-based commands in AcceptedCommandList\n"); if (ShouldSkip("TIMESYNC.S.F01")) { NextTest(); return; } - err = TestTs6CheckForNtpcFeatureBasedCommandsInAcceptedCommandList_25(); + err = TestTs6CheckForNtpcFeatureBasedCommandsInAcceptedCommandList_32(); break; - case 26: + case 33: ChipLogProgress( - chipTool, " ***** Test Step 26 : TS6: Check for NTPC feature-based commands in not AcceptedCommandList\n"); + chipTool, " ***** Test Step 33 : TS6: Check for NTPC feature-based commands in not AcceptedCommandList\n"); if (ShouldSkip("!TIMESYNC.S.F01")) { NextTest(); return; } - err = TestTs6CheckForNtpcFeatureBasedCommandsInNotAcceptedCommandList_26(); + err = TestTs6CheckForNtpcFeatureBasedCommandsInNotAcceptedCommandList_33(); break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : TS6: Check for TSC feature-based commands in AcceptedCommandList\n"); + case 34: + ChipLogProgress(chipTool, " ***** Test Step 34 : TS6: Check for TSC feature-based commands in AcceptedCommandList\n"); if (ShouldSkip("TIMESYNC.S.F03")) { NextTest(); return; } - err = TestTs6CheckForTscFeatureBasedCommandsInAcceptedCommandList_27(); + err = TestTs6CheckForTscFeatureBasedCommandsInAcceptedCommandList_34(); break; - case 28: + case 35: ChipLogProgress( - chipTool, " ***** Test Step 28 : TS6: Check for TSC feature-based commands in not AcceptedCommandList\n"); + chipTool, " ***** Test Step 35 : TS6: Check for TSC feature-based commands in not AcceptedCommandList\n"); if (ShouldSkip("!TIMESYNC.S.F03")) { NextTest(); return; } - err = TestTs6CheckForTscFeatureBasedCommandsInNotAcceptedCommandList_28(); + err = TestTs6CheckForTscFeatureBasedCommandsInNotAcceptedCommandList_35(); break; - case 29: + case 36: ChipLogProgress(chipTool, - " ***** Test Step 29 : TS6: Check for mandatory commands in AcceptedCommandList. 1. The list SHALL NOT contain any " + " ***** Test Step 36 : TS6: Check for mandatory commands in AcceptedCommandList. 1. The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) 2. The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT contain any values in the Test " @@ -97151,28 +102043,28 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestTs6CheckForMandatoryCommandsInAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29(); + err = TestTs6CheckForMandatoryCommandsInAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_36(); break; - case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : TS7: Check for TZ feature-based commands in GeneratedCommandList\n"); + case 37: + ChipLogProgress(chipTool, " ***** Test Step 37 : TS7: Check for TZ feature-based commands in GeneratedCommandList\n"); if (ShouldSkip("TIMESYNC.S.F00")) { NextTest(); return; } - err = TestTs7CheckForTzFeatureBasedCommandsInGeneratedCommandList_30(); + err = TestTs7CheckForTzFeatureBasedCommandsInGeneratedCommandList_37(); break; - case 31: + case 38: ChipLogProgress( - chipTool, " ***** Test Step 31 : TS7: Check for TZ feature-based commands in not GeneratedCommandList\n"); + chipTool, " ***** Test Step 38 : TS7: Check for TZ feature-based commands in not GeneratedCommandList\n"); if (ShouldSkip("!TIMESYNC.S.F00")) { NextTest(); return; } - err = TestTs7CheckForTzFeatureBasedCommandsInNotGeneratedCommandList_31(); + err = TestTs7CheckForTzFeatureBasedCommandsInNotGeneratedCommandList_38(); break; - case 32: + case 39: ChipLogProgress(chipTool, - " ***** Test Step 32 : TS7: Check for mandatory commands in GeneratedCommandList. 1.The list SHALL NOT contain any " + " ***** Test Step 39 : TS7: Check for mandatory commands in GeneratedCommandList. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT contain any values in the Test " @@ -97182,7 +102074,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestTs7CheckForMandatoryCommandsInGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_32(); + err = TestTs7CheckForMandatoryCommandsInGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_39(); break; } @@ -97294,6 +102186,27 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 38: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 39: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -97307,7 +102220,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 33; + const uint16_t mTestCount = 40; chip::Optional mNodeId; chip::Optional mCluster; @@ -97524,6 +102437,35 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TS4: Check for mandatory attributes in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestTs4CheckForMandatoryAttributesInAttributeList_11() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterTimeSynchronization alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"TS4: Check for mandatory attributes in AttributeList Error: %@", err); @@ -97543,7 +102485,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs4CheckForOptionalAttributeTimeSourceInAttributeList_11() + CHIP_ERROR TestTs4CheckForOptionalAttributeTimeSourceInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97565,7 +102507,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs4CheckForOptionalAttributeTimeSourceNotInAttributeList_12() + CHIP_ERROR TestTs4CheckForOptionalAttributeTimeSourceNotInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97587,7 +102529,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs4CheckForTzFeatureBasedAttributesInAttributeList_13() + CHIP_ERROR TestTs4CheckForTzFeatureBasedAttributesInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97614,7 +102556,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs4CheckForTzFeatureBasedAttributesNotInAttributeList_14() + CHIP_ERROR TestTs4CheckForTzFeatureBasedAttributesNotInAttributeList_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97641,7 +102583,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs4CheckForNtpcFeatureBasedAttributesInAttributeList_15() + CHIP_ERROR TestTs4CheckForNtpcFeatureBasedAttributesInAttributeList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97664,7 +102606,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs4CheckForNtpcFeatureBasedAttributesNotInAttributeList_16() + CHIP_ERROR TestTs4CheckForNtpcFeatureBasedAttributesNotInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97687,7 +102629,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs4CheckForNtpsFeatureBasedAttributesInAttributeList_17() + CHIP_ERROR TestTs4CheckForNtpsFeatureBasedAttributesInAttributeList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97709,7 +102651,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs4CheckForNtpsFeatureBasedAttributesNotInAttributeList_18() + CHIP_ERROR TestTs4CheckForNtpsFeatureBasedAttributesNotInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97731,7 +102673,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs4CheckForTscFeatureBasedAttributesInAttributeList_19() + CHIP_ERROR TestTs4CheckForTscFeatureBasedAttributesInAttributeList_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97753,7 +102695,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs4CheckForTscFeatureBasedAttributesNotInAttributeList_20() + CHIP_ERROR TestTs4CheckForTscFeatureBasedAttributesNotInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97776,7 +102718,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestTs4CheckForMandatoryAttributesInAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_21() + TestTs4CheckForMandatoryAttributesInAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_22() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -97786,7 +102728,18 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestTs6CheckForMandatoryCommandsInAcceptedCommandList_22() + CHIP_ERROR + TestTs5ThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_28() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestTs6CheckForMandatoryCommandsInAcceptedCommandList_29() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97808,7 +102761,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs6CheckForTzFeatureBasedCommandsInAcceptedCommandList_23() + CHIP_ERROR TestTs6CheckForTzFeatureBasedCommandsInAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97831,7 +102784,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs6CheckForTzFeatureBasedCommandsInNotAcceptedCommandList_24() + CHIP_ERROR TestTs6CheckForTzFeatureBasedCommandsInNotAcceptedCommandList_31() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97854,7 +102807,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs6CheckForNtpcFeatureBasedCommandsInAcceptedCommandList_25() + CHIP_ERROR TestTs6CheckForNtpcFeatureBasedCommandsInAcceptedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97876,7 +102829,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs6CheckForNtpcFeatureBasedCommandsInNotAcceptedCommandList_26() + CHIP_ERROR TestTs6CheckForNtpcFeatureBasedCommandsInNotAcceptedCommandList_33() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97898,7 +102851,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs6CheckForTscFeatureBasedCommandsInAcceptedCommandList_27() + CHIP_ERROR TestTs6CheckForTscFeatureBasedCommandsInAcceptedCommandList_34() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97920,7 +102873,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs6CheckForTscFeatureBasedCommandsInNotAcceptedCommandList_28() + CHIP_ERROR TestTs6CheckForTscFeatureBasedCommandsInNotAcceptedCommandList_35() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97943,7 +102896,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestTs6CheckForMandatoryCommandsInAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_29() + TestTs6CheckForMandatoryCommandsInAcceptedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_36() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -97953,7 +102906,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestTs7CheckForTzFeatureBasedCommandsInGeneratedCommandList_30() + CHIP_ERROR TestTs7CheckForTzFeatureBasedCommandsInGeneratedCommandList_37() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97975,7 +102928,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTs7CheckForTzFeatureBasedCommandsInNotGeneratedCommandList_31() + CHIP_ERROR TestTs7CheckForTzFeatureBasedCommandsInNotGeneratedCommandList_38() { MTRBaseDevice * device = GetDevice("alpha"); @@ -97998,7 +102951,7 @@ class Test_TC_TIMESYNC_1_1 : public TestCommandBridge { } CHIP_ERROR - TestTs7CheckForMandatoryCommandsInGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_32() + TestTs7CheckForMandatoryCommandsInGeneratedCommandList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_39() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -98349,11 +103302,23 @@ class Test_TC_ULABEL_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aReadTheGlobalAttributeAttributeList_4(); + break; + case 5: ChipLogProgress(chipTool, - " ***** Test Step 4 : Step 4b: Read the global attribute: AttributeList. 1.The list SHALL NOT contain any " + " ***** Test Step 5 : Step 4b: Read the global attribute: AttributeList. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -98363,11 +103328,24 @@ class Test_TC_ULABEL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4(); + err = TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); break; - case 5: + case 6: + ChipLogProgress(chipTool, + " ***** Test Step 6 : Step 5: Read the global attribute: EventList. 1.The list MAY contain values in the " + "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " + "(0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or " + "invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where " + "XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5ReadTheGlobalAttributeEventList1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + break; + case 7: ChipLogProgress(chipTool, - " ***** Test Step 5 : Step 6: Read the global attribute: AcceptedCommandList. 1.The list MAY contain values in the " + " ***** Test Step 7 : Step 6: Read the global attribute: AcceptedCommandList. 1.The list MAY contain values in the " "Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range " "(0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test Vendor or " "invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where " @@ -98376,11 +103354,11 @@ class Test_TC_ULABEL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6ReadTheGlobalAttributeAcceptedCommandList1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5(); + err = TestStep6ReadTheGlobalAttributeAcceptedCommandList1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7(); break; - case 6: + case 8: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 7: Read the global attribute: GeneratedCommandList. 1.The list MAY contain values in " + " ***** Test Step 8 : Step 7: Read the global attribute: GeneratedCommandList. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -98389,7 +103367,7 @@ class Test_TC_ULABEL_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ReadTheGlobalAttributeGeneratedCommandList1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6(); + err = TestStep7ReadTheGlobalAttributeGeneratedCommandList1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8(); break; } @@ -98423,6 +103401,12 @@ class Test_TC_ULABEL_1_1 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -98436,7 +103420,7 @@ class Test_TC_ULABEL_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -98506,6 +103490,33 @@ class Test_TC_ULABEL_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterUserLabel alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterUserLabel alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -98526,7 +103537,7 @@ class Test_TC_ULABEL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_4() + TestStep4bReadTheGlobalAttributeAttributeList1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -98537,7 +103548,7 @@ class Test_TC_ULABEL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6ReadTheGlobalAttributeAcceptedCommandList1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_5() + TestStep5ReadTheGlobalAttributeEventList1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -98548,7 +103559,18 @@ class Test_TC_ULABEL_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ReadTheGlobalAttributeGeneratedCommandList1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_6() + TestStep6ReadTheGlobalAttributeAcceptedCommandList1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_7() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR + TestStep7ReadTheGlobalAttributeGeneratedCommandList1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_8() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -99344,57 +104366,104 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_5(); break; case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsAttributeListFromDut_6(); + break; + case 7: ChipLogProgress(chipTool, - " ***** Test Step 6 : Step 4b: TH reads Feature dependent(DGWIFI.S.F00) attributes in attributeList from DUT\n"); + " ***** Test Step 7 : Step 4b: TH reads Feature dependent(DGWIFI.S.F00) attributes in attributeList from DUT\n"); if (ShouldSkip("DGWIFI.S.F00")) { NextTest(); return; } - err = TestStep4bThReadsFeatureDependentDGWIFISF00AttributesInAttributeListFromDut_6(); + err = TestStep4bThReadsFeatureDependentDGWIFISF00AttributesInAttributeListFromDut_7(); break; - case 7: + case 8: ChipLogProgress(chipTool, - " ***** Test Step 7 : Step 4c: TH reads Feature dependent(DGWIFI.S.F01) attributes in attributeList from DUT\n"); + " ***** Test Step 8 : Step 4c: TH reads Feature dependent(DGWIFI.S.F01) attributes in attributeList from DUT\n"); if (ShouldSkip("DGWIFI.S.F01")) { NextTest(); return; } - err = TestStep4cThReadsFeatureDependentDGWIFISF01AttributesInAttributeListFromDut_7(); + err = TestStep4cThReadsFeatureDependentDGWIFISF01AttributesInAttributeListFromDut_8(); break; - case 8: + case 9: ChipLogProgress( - chipTool, " ***** Test Step 8 : Step 4d: TH reads optional attribute (CurrentMaxRate) in AttributeList from DUT\n"); + chipTool, " ***** Test Step 9 : Step 4d: TH reads optional attribute (CurrentMaxRate) in AttributeList from DUT\n"); if (ShouldSkip("DGWIFI.S.A000b")) { NextTest(); return; } - err = TestStep4dThReadsOptionalAttributeCurrentMaxRateInAttributeListFromDut_8(); + err = TestStep4dThReadsOptionalAttributeCurrentMaxRateInAttributeListFromDut_9(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 5a: TH reads AcceptedCommandList from DUT\n"); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Step 5a: TH reads AcceptedCommandList from DUT\n"); if (ShouldSkip(" !DGWIFI.S.F01 ")) { NextTest(); return; } - err = TestStep5aThReadsAcceptedCommandListFromDut_9(); + err = TestStep5aThReadsAcceptedCommandListFromDut_10(); break; - case 10: + case 11: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 5b: TH reads Feature dependent(DGWIFI.S.F01) command in AcceptedCommandList from " + " ***** Test Step 11 : Step 5b: TH reads Feature dependent(DGWIFI.S.F01) command in AcceptedCommandList from " "DUT\n"); if (ShouldSkip("DGWIFI.S.F01")) { NextTest(); return; } - err = TestStep5bThReadsFeatureDependentDGWIFISF01CommandInAcceptedCommandListFromDut_10(); + err = TestStep5bThReadsFeatureDependentDGWIFISF01CommandInAcceptedCommandListFromDut_11(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 6: TH reads GeneratedCommandList from DUT\n"); - err = TestStep6ThReadsGeneratedCommandListFromDut_11(); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6: TH reads GeneratedCommandList from DUT\n"); + err = TestStep6ThReadsGeneratedCommandListFromDut_12(); break; + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 7a: TH reads EventList from DUT\n"); + if (ShouldSkip(" !DGWIFI.S.E00 && !DGWIFI.S.E01 && !DGWIFI.S.E02 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 14: + ChipLogProgress( + chipTool, " ***** Test Step 14 : Step 7b: TH reads optional attribute (Disconnection) in EventList from DUT\n"); + if (ShouldSkip("DGWIFI.S.E00 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 15: + ChipLogProgress(chipTool, + " ***** Test Step 15 : Step 7c: TH reads optional attribute (AssociationFailure) in EventList from DUT\n"); + if (ShouldSkip("DGWIFI.S.E01 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 16: + ChipLogProgress( + chipTool, " ***** Test Step 16 : Step 7d: TH reads optional attribute (ConnectionStatus) in EventList from DUT\n"); + if (ShouldSkip("DGWIFI.S.E02 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; } if (CHIP_NO_ERROR != err) { @@ -99442,6 +104511,21 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -99455,7 +104539,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 12; + const uint16_t mTestCount = 17; chip::Optional mNodeId; chip::Optional mCluster; @@ -99573,6 +104657,39 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT 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, 3UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_6() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterWiFiNetworkDiagnostics alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); @@ -99596,7 +104713,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsFeatureDependentDGWIFISF00AttributesInAttributeListFromDut_6() + CHIP_ERROR TestStep4bThReadsFeatureDependentDGWIFISF00AttributesInAttributeListFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -99623,7 +104740,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cThReadsFeatureDependentDGWIFISF01AttributesInAttributeListFromDut_7() + CHIP_ERROR TestStep4cThReadsFeatureDependentDGWIFISF01AttributesInAttributeListFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -99647,7 +104764,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dThReadsOptionalAttributeCurrentMaxRateInAttributeListFromDut_8() + CHIP_ERROR TestStep4dThReadsOptionalAttributeCurrentMaxRateInAttributeListFromDut_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -99670,7 +104787,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5aThReadsAcceptedCommandListFromDut_9() + CHIP_ERROR TestStep5aThReadsAcceptedCommandListFromDut_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -99696,7 +104813,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5bThReadsFeatureDependentDGWIFISF01CommandInAcceptedCommandListFromDut_10() + CHIP_ERROR TestStep5bThReadsFeatureDependentDGWIFISF01CommandInAcceptedCommandListFromDut_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -99719,7 +104836,7 @@ class Test_TC_DGWIFI_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ThReadsGeneratedCommandListFromDut_11() + CHIP_ERROR TestStep6ThReadsGeneratedCommandListFromDut_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -100763,93 +105880,114 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : Step 4a: TH reads from the DUT the (0xFFFB) AttributeList attribute\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsFromTheDutThe0xFFFBAttributeListAttribute_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4b: TH reads optional attribute(SafetyStatus) in AttributeList\n"); - if (ShouldSkip("WNCV.S.A001a")) { + ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4a: TH reads from the DUT the (0xFFFB) AttributeList attribute\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { NextTest(); return; } - err = TestStep4bThReadsOptionalAttributeSafetyStatusInAttributeList_9(); + err = TestStep4aThReadsFromTheDutThe0xFFFBAttributeListAttribute_9(); break; case 10: + ChipLogProgress( + chipTool, " ***** Test Step 10 : Step 4b: TH reads optional attribute(SafetyStatus) in AttributeList\n"); + if (ShouldSkip("WNCV.S.A001a")) { + NextTest(); + return; + } + err = TestStep4bThReadsOptionalAttributeSafetyStatusInAttributeList_10(); + break; + case 11: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 4c: Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 & WNCV.S.F03) attribute in " + " ***** Test Step 11 : Step 4c: Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 & WNCV.S.F03) attribute in " "AttributeList\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.F03")) { NextTest(); return; } - err = TestStep4cReadTheFeatureDependentWNCVSF00Wncvsf02Wncvsf03AttributeInAttributeList_10(); + err = TestStep4cReadTheFeatureDependentWNCVSF00Wncvsf02Wncvsf03AttributeInAttributeList_11(); break; - case 11: + case 12: ChipLogProgress(chipTool, - " ***** Test Step 11 : Step 4d: Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 ) attribute in AttributeList\n"); + " ***** Test Step 12 : Step 4d: Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 ) attribute in AttributeList\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02")) { NextTest(); return; } - err = TestStep4dReadTheFeatureDependentWNCVSF00Wncvsf02AttributeInAttributeList_11(); + err = TestStep4dReadTheFeatureDependentWNCVSF00Wncvsf02AttributeInAttributeList_12(); break; - case 12: + case 13: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 4e: Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 & WNCV.S.F03) attribute in " + " ***** Test Step 13 : Step 4e: Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 & WNCV.S.F03) attribute in " "AttributeList\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.F03")) { NextTest(); return; } - err = TestStep4eReadTheFeatureDependentWNCVSF01Wncvsf04Wncvsf03AttributeInAttributeList_12(); + err = TestStep4eReadTheFeatureDependentWNCVSF01Wncvsf04Wncvsf03AttributeInAttributeList_13(); break; - case 13: + case 14: ChipLogProgress(chipTool, - " ***** Test Step 13 : Step 4f: Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 ) attribute in AttributeList\n"); + " ***** Test Step 14 : Step 4f: Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 ) attribute in AttributeList\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04")) { NextTest(); return; } - err = TestStep4fReadTheFeatureDependentWNCVSF01Wncvsf04AttributeInAttributeList_13(); + err = TestStep4fReadTheFeatureDependentWNCVSF01Wncvsf04AttributeInAttributeList_14(); break; - case 14: + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 5: Read the global attribute: EventList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 16: ChipLogProgress( - chipTool, " ***** Test Step 14 : Step 6a: TH reads from the DUT the (0xFFF9) AcceptedCommandList attribute\n"); - err = TestStep6aThReadsFromTheDutThe0xFFF9AcceptedCommandListAttribute_14(); + chipTool, " ***** Test Step 16 : Step 6a: TH reads from the DUT the (0xFFF9) AcceptedCommandList attribute\n"); + err = TestStep6aThReadsFromTheDutThe0xFFF9AcceptedCommandListAttribute_16(); break; - case 15: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 15 : Step 6b: TH reads Feature dependent(WNCV.S.F00 & WNCV.S.F02) command in " + " ***** Test Step 17 : Step 6b: TH reads Feature dependent(WNCV.S.F00 & WNCV.S.F02) command in " "AcceptedCommandList\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02")) { NextTest(); return; } - err = TestStep6bThReadsFeatureDependentWNCVSF00Wncvsf02CommandInAcceptedCommandList_15(); + err = TestStep6bThReadsFeatureDependentWNCVSF00Wncvsf02CommandInAcceptedCommandList_17(); break; - case 16: + case 18: ChipLogProgress(chipTool, - " ***** Test Step 16 : Step 6c: TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F03) command in " + " ***** Test Step 18 : Step 6c: TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F03) command in " "AcceptedCommandList\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F03")) { NextTest(); return; } - err = TestStep6cThReadsFeatureDependentWNCVSF01Wncvsf03CommandInAcceptedCommandList_16(); + err = TestStep6cThReadsFeatureDependentWNCVSF01Wncvsf03CommandInAcceptedCommandList_18(); break; - case 17: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 17 : Step 6d: TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F04) command in " + " ***** Test Step 19 : Step 6d: TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F04) command in " "AcceptedCommandList\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04")) { NextTest(); return; } - err = TestStep6dThReadsFeatureDependentWNCVSF01Wncvsf04CommandInAcceptedCommandList_17(); + err = TestStep6dThReadsFeatureDependentWNCVSF01Wncvsf04CommandInAcceptedCommandList_19(); break; - case 18: + case 20: ChipLogProgress( - chipTool, " ***** Test Step 18 : Step 7: TH reads from the DUT the (0xFFF8) GeneratedCommandList attribute\n"); - err = TestStep7ThReadsFromTheDutThe0xFFF8GeneratedCommandListAttribute_18(); + chipTool, " ***** Test Step 20 : Step 7: TH reads from the DUT the (0xFFF8) GeneratedCommandList attribute\n"); + err = TestStep7ThReadsFromTheDutThe0xFFF8GeneratedCommandListAttribute_20(); break; } @@ -100919,6 +106057,12 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -100932,7 +106076,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 19; + const uint16_t mTestCount = 21; chip::Optional mNodeId; chip::Optional mCluster; @@ -101113,6 +106257,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 23UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -101123,7 +106268,37 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsOptionalAttributeSafetyStatusInAttributeList_9() + CHIP_ERROR TestStep4aThReadsFromTheDutThe0xFFFBAttributeListAttribute_9() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads from the DUT the (0xFFFB) 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, 7UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 10UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 13UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 23UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bThReadsOptionalAttributeSafetyStatusInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -101144,7 +106319,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheFeatureDependentWNCVSF00Wncvsf02Wncvsf03AttributeInAttributeList_10() + CHIP_ERROR TestStep4cReadTheFeatureDependentWNCVSF00Wncvsf02Wncvsf03AttributeInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -101167,7 +106342,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadTheFeatureDependentWNCVSF00Wncvsf02AttributeInAttributeList_11() + CHIP_ERROR TestStep4dReadTheFeatureDependentWNCVSF00Wncvsf02AttributeInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -101189,7 +106364,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadTheFeatureDependentWNCVSF01Wncvsf04Wncvsf03AttributeInAttributeList_12() + CHIP_ERROR TestStep4eReadTheFeatureDependentWNCVSF01Wncvsf04Wncvsf03AttributeInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -101212,7 +106387,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fReadTheFeatureDependentWNCVSF01Wncvsf04AttributeInAttributeList_13() + CHIP_ERROR TestStep4fReadTheFeatureDependentWNCVSF01Wncvsf04AttributeInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -101234,7 +106409,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6aThReadsFromTheDutThe0xFFF9AcceptedCommandListAttribute_14() + CHIP_ERROR TestStep6aThReadsFromTheDutThe0xFFF9AcceptedCommandListAttribute_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -101257,7 +106432,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bThReadsFeatureDependentWNCVSF00Wncvsf02CommandInAcceptedCommandList_15() + CHIP_ERROR TestStep6bThReadsFeatureDependentWNCVSF00Wncvsf02CommandInAcceptedCommandList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -101278,7 +106453,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6cThReadsFeatureDependentWNCVSF01Wncvsf03CommandInAcceptedCommandList_16() + CHIP_ERROR TestStep6cThReadsFeatureDependentWNCVSF01Wncvsf03CommandInAcceptedCommandList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -101299,7 +106474,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6dThReadsFeatureDependentWNCVSF01Wncvsf04CommandInAcceptedCommandList_17() + CHIP_ERROR TestStep6dThReadsFeatureDependentWNCVSF01Wncvsf04CommandInAcceptedCommandList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -101320,7 +106495,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ThReadsFromTheDutThe0xFFF8GeneratedCommandListAttribute_18() + CHIP_ERROR TestStep7ThReadsFromTheDutThe0xFFF8GeneratedCommandListAttribute_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -149146,47 +154321,59 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsAttributeListFromDut_5(); + break; + case 6: ChipLogProgress( - chipTool, " ***** Test Step 5 : Step 4b: TH reads optional attribute(ThreadMetrics) in AttributeList\n"); + chipTool, " ***** Test Step 6 : Step 4b: TH reads optional attribute(ThreadMetrics) in AttributeList\n"); if (ShouldSkip("DGSW.S.A0000")) { NextTest(); return; } - err = TestStep4bThReadsOptionalAttributeThreadMetricsInAttributeList_5(); + err = TestStep4bThReadsOptionalAttributeThreadMetricsInAttributeList_6(); break; - case 6: + case 7: ChipLogProgress( - chipTool, " ***** Test Step 6 : Step 4c: TH reads optional attribute(CurrentHeapFree) in AttributeList\n"); + chipTool, " ***** Test Step 7 : Step 4c: TH reads optional attribute(CurrentHeapFree) in AttributeList\n"); if (ShouldSkip("DGSW.S.A0001")) { NextTest(); return; } - err = TestStep4cThReadsOptionalAttributeCurrentHeapFreeInAttributeList_6(); + err = TestStep4cThReadsOptionalAttributeCurrentHeapFreeInAttributeList_7(); break; - case 7: + case 8: ChipLogProgress( - chipTool, " ***** Test Step 7 : Step 4d: TH reads optional attribute(CurrentHeapUsed) in AttributeList\n"); + chipTool, " ***** Test Step 8 : Step 4d: TH reads optional attribute(CurrentHeapUsed) in AttributeList\n"); if (ShouldSkip("DGSW.S.A0002")) { NextTest(); return; } - err = TestStep4dThReadsOptionalAttributeCurrentHeapUsedInAttributeList_7(); + err = TestStep4dThReadsOptionalAttributeCurrentHeapUsedInAttributeList_8(); break; - case 8: + case 9: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 4e: TH reads Feature dependent attribute(CurrentHeapHighWatermark) in AttributeList\n"); + " ***** Test Step 9 : Step 4e: TH reads Feature dependent attribute(CurrentHeapHighWatermark) in AttributeList\n"); if (ShouldSkip("( DGSW.S.F00 || DGSW.S.A0003 )")) { NextTest(); return; } - err = TestStep4eThReadsFeatureDependentAttributeCurrentHeapHighWatermarkInAttributeList_8(); + err = TestStep4eThReadsFeatureDependentAttributeCurrentHeapHighWatermarkInAttributeList_9(); break; - case 9: + case 10: ChipLogProgress(chipTool, - " ***** Test Step 9 : Step 4f: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 10 : Step 4f: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -149196,27 +154383,57 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9(); + err = TestStep4fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6a: TH reads AcceptedCommandList from DUT\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Step 5a: TH reads EventList from DUT\n"); + if (ShouldSkip("DGSW.S.E00 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 5b: TH reads EventList from DUT\n"); + if (ShouldSkip(" !DGSW.S.E00 && PICS_EVENT_LIST_ENABLED ")) { + NextTest(); + return; + } + NextTest(); + return; + case 13: + ChipLogProgress(chipTool, + " ***** Test Step 13 : Step 5c: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5cThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13(); + break; + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 6a: TH reads AcceptedCommandList from DUT\n"); if (ShouldSkip("DGSW.S.F00")) { NextTest(); return; } - err = TestStep6aThReadsAcceptedCommandListFromDut_10(); + err = TestStep6aThReadsAcceptedCommandListFromDut_14(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 6b: TH reads AcceptedCommandList from DUT\n"); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 6b: TH reads AcceptedCommandList from DUT\n"); if (ShouldSkip(" !DGSW.S.F00 ")) { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListFromDut_11(); + err = TestStep6bThReadsAcceptedCommandListFromDut_15(); break; - case 12: + case 16: ChipLogProgress(chipTool, - " ***** Test Step 12 : Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 16 : Step 6c: TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored.3.The list SHALL NOT contain any values in the Test Vendor " @@ -149226,11 +154443,11 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); + err = TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16(); break; - case 13: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 13 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 17 : Step 7: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -149239,7 +154456,7 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13(); + err = TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17(); break; } @@ -149294,6 +154511,18 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -149307,7 +154536,7 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 14; + const uint16_t mTestCount = 18; chip::Optional mNodeId; chip::Optional mCluster; @@ -149412,6 +154641,7 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -149422,7 +154652,34 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsOptionalAttributeThreadMetricsInAttributeList_5() + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterSoftwareDiagnostics alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bThReadsOptionalAttributeThreadMetricsInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -149445,7 +154702,7 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cThReadsOptionalAttributeCurrentHeapFreeInAttributeList_6() + CHIP_ERROR TestStep4cThReadsOptionalAttributeCurrentHeapFreeInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -149468,7 +154725,7 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dThReadsOptionalAttributeCurrentHeapUsedInAttributeList_7() + CHIP_ERROR TestStep4dThReadsOptionalAttributeCurrentHeapUsedInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -149491,7 +154748,7 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eThReadsFeatureDependentAttributeCurrentHeapHighWatermarkInAttributeList_8() + CHIP_ERROR TestStep4eThReadsFeatureDependentAttributeCurrentHeapHighWatermarkInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -149515,7 +154772,7 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_9() + TestStep4fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_10() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -149525,7 +154782,18 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_10() + CHIP_ERROR + TestStep5cThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -149548,7 +154816,7 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bThReadsAcceptedCommandListFromDut_11() + CHIP_ERROR TestStep6bThReadsAcceptedCommandListFromDut_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -149575,7 +154843,7 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() + TestStep6cThReadsAcceptedCommandListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x000000ff2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -149586,7 +154854,7 @@ class Test_TC_DGSW_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13() + TestStep7ThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -163417,270 +168685,308 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { break; case 14: ChipLogProgress(chipTool, " ***** Test Step 14 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aThReadsAttributeListFromDut_14(); break; case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 4a: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aThReadsAttributeListFromDut_15(); + break; + case 16: ChipLogProgress( - chipTool, " ***** Test Step 15 : Step 4b: TH reads Feature dependent(DRLK.S.F05) attributes in AttributeList\n"); + chipTool, " ***** Test Step 16 : Step 4b: TH reads Feature dependent(DRLK.S.F05) attributes in AttributeList\n"); if (ShouldSkip("DRLK.S.F05")) { NextTest(); return; } - err = TestStep4bThReadsFeatureDependentDRLKSF05AttributesInAttributeList_15(); + err = TestStep4bThReadsFeatureDependentDRLKSF05AttributesInAttributeList_16(); break; - case 16: + case 17: ChipLogProgress( - chipTool, " ***** Test Step 16 : Step 4c: TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList\n"); + chipTool, " ***** Test Step 17 : Step 4c: TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList\n"); if (ShouldSkip("DRLK.S.F08")) { NextTest(); return; } - err = TestStep4cThReadsFeatureDependentDRLKSF08AttributesInAttributeList_16(); + err = TestStep4cThReadsFeatureDependentDRLKSF08AttributesInAttributeList_17(); break; - case 17: + case 18: ChipLogProgress( - chipTool, " ***** Test Step 17 : Step 4d: TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList\n"); + chipTool, " ***** Test Step 18 : Step 4d: TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList\n"); if (ShouldSkip("DRLK.S.F00")) { NextTest(); return; } - err = TestStep4dThReadsFeatureDependentDRLKSF00AttributesInAttributeList_17(); + err = TestStep4dThReadsFeatureDependentDRLKSF00AttributesInAttributeList_18(); break; - case 18: + case 19: ChipLogProgress( - chipTool, " ***** Test Step 18 : Step 4e: TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList\n"); + chipTool, " ***** Test Step 19 : Step 4e: TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList\n"); if (ShouldSkip("DRLK.S.F01")) { NextTest(); return; } - err = TestStep4eThReadsFeatureDependentDRLKSF01AttributesInAttributeList_18(); + err = TestStep4eThReadsFeatureDependentDRLKSF01AttributesInAttributeList_19(); break; - case 19: + case 20: ChipLogProgress( - chipTool, " ***** Test Step 19 : Step 4f: TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList\n"); + chipTool, " ***** Test Step 20 : Step 4f: TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList\n"); if (ShouldSkip("DRLK.S.F04")) { NextTest(); return; } - err = TestStep4fThReadsFeatureDependentDRLKSF04AttributeInAttributeList_19(); + err = TestStep4fThReadsFeatureDependentDRLKSF04AttributeInAttributeList_20(); break; - case 20: + case 21: ChipLogProgress( - chipTool, " ***** Test Step 20 : Step 4g: TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList\n"); + chipTool, " ***** Test Step 21 : Step 4g: TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList\n"); if (ShouldSkip("DRLK.S.F0a")) { NextTest(); return; } - err = TestStep4gThReadsFeatureDependentDRLKSF0aAttributeInAttributeList_20(); + err = TestStep4gThReadsFeatureDependentDRLKSF0aAttributeInAttributeList_21(); break; - case 21: + case 22: ChipLogProgress( - chipTool, " ***** Test Step 21 : Step 4h: TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList\n"); + chipTool, " ***** Test Step 22 : Step 4h: TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList\n"); if (ShouldSkip("DRLK.S.F0b")) { NextTest(); return; } - err = TestStep4hThReadsFeatureDependentDRLKSF0bAttributeInAttributeList_21(); + err = TestStep4hThReadsFeatureDependentDRLKSF0bAttributeInAttributeList_22(); break; - case 22: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 22 : Step 4i: TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in " + " ***** Test Step 23 : Step 4i: TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in " "AttributeList\n"); if (ShouldSkip("DRLK.S.F00 || DRLK.S.F01")) { NextTest(); return; } - err = TestStep4iThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_22(); + err = TestStep4iThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_23(); break; - case 23: + case 24: ChipLogProgress(chipTool, - " ***** Test Step 23 : Step 4j: TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList\n"); + " ***** Test Step 24 : Step 4j: TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList\n"); if (ShouldSkip("DRLK.S.F07 || DRLK.S.F00")) { NextTest(); return; } - err = TestStep4jThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_23(); + err = TestStep4jThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_24(); break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : Step 4k: TH reads optional attribute(Language) in AttributeList\n"); + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : Step 4k: TH reads optional attribute(Language) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0021")) { NextTest(); return; } - err = TestStep4kThReadsOptionalAttributeLanguageInAttributeList_24(); + err = TestStep4kThReadsOptionalAttributeLanguageInAttributeList_25(); break; - case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : Step 4l: TH reads optional attribute(LEDSettings) in AttributeList\n"); + case 26: + ChipLogProgress(chipTool, " ***** Test Step 26 : Step 4l: TH reads optional attribute(LEDSettings) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0022")) { NextTest(); return; } - err = TestStep4lThReadsOptionalAttributeLEDSettingsInAttributeList_25(); + err = TestStep4lThReadsOptionalAttributeLEDSettingsInAttributeList_26(); break; - case 26: + case 27: ChipLogProgress( - chipTool, " ***** Test Step 26 : Step 4m: TH reads optional attribute(AutoRelockTime) in AttributeList\n"); + chipTool, " ***** Test Step 27 : Step 4m: TH reads optional attribute(AutoRelockTime) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0023")) { NextTest(); return; } - err = TestStep4mThReadsOptionalAttributeAutoRelockTimeInAttributeList_26(); + err = TestStep4mThReadsOptionalAttributeAutoRelockTimeInAttributeList_27(); break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Step 4n: TH reads optional attribute(SoundVolume) in AttributeList\n"); + case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Step 4n: TH reads optional attribute(SoundVolume) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0024")) { NextTest(); return; } - err = TestStep4nThReadsOptionalAttributeSoundVolumeInAttributeList_27(); + err = TestStep4nThReadsOptionalAttributeSoundVolumeInAttributeList_28(); break; - case 28: + case 29: ChipLogProgress(chipTool, - " ***** Test Step 28 : Step 4o: TH reads optional attribute(DefaultConfigurationRegister) in AttributeList\n"); + " ***** Test Step 29 : Step 4o: TH reads optional attribute(DefaultConfigurationRegister) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0027")) { NextTest(); return; } - err = TestStep4oThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_28(); + err = TestStep4oThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_29(); break; - case 29: + case 30: ChipLogProgress( - chipTool, " ***** Test Step 29 : Step 4p: TH reads optional attribute(EnableLocalProgramming) in AttributeList\n"); + chipTool, " ***** Test Step 30 : Step 4p: TH reads optional attribute(EnableLocalProgramming) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0028")) { NextTest(); return; } - err = TestStep4pThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_29(); + err = TestStep4pThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_30(); break; - case 30: + case 31: ChipLogProgress( - chipTool, " ***** Test Step 30 : Step 4q: TH reads optional attribute(EnableOneTouchLocking) in AttributeList\n"); + chipTool, " ***** Test Step 31 : Step 4q: TH reads optional attribute(EnableOneTouchLocking) in AttributeList\n"); if (ShouldSkip("DRLK.S.A0029")) { NextTest(); return; } - err = TestStep4qThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_30(); + err = TestStep4qThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_31(); break; - case 31: + case 32: ChipLogProgress( - chipTool, " ***** Test Step 31 : Step 4r: TH reads optional attribute(EnableInsideStatusLED) in AttributeList\n"); + chipTool, " ***** Test Step 32 : Step 4r: TH reads optional attribute(EnableInsideStatusLED) in AttributeList\n"); if (ShouldSkip("DRLK.S.A002a")) { NextTest(); return; } - err = TestStep4rThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_31(); + err = TestStep4rThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_32(); break; - case 32: + case 33: ChipLogProgress( - chipTool, " ***** Test Step 32 : Step 4s: TH reads optional attribute(EnablePrivacyModeButton) in AttributeList\n"); + chipTool, " ***** Test Step 33 : Step 4s: TH reads optional attribute(EnablePrivacyModeButton) in AttributeList\n"); if (ShouldSkip("DRLK.S.A002b")) { NextTest(); return; } - err = TestStep4sThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_32(); + err = TestStep4sThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_33(); break; - case 33: + case 34: ChipLogProgress(chipTool, - " ***** Test Step 33 : Step 4t: TH reads optional attribute(LocalProgrammingFeatures) in AttributeList\n"); + " ***** Test Step 34 : Step 4t: TH reads optional attribute(LocalProgrammingFeatures) in AttributeList\n"); if (ShouldSkip("DRLK.S.A002c")) { NextTest(); return; } - err = TestStep4tThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_33(); - break; - case 34: - ChipLogProgress(chipTool, " ***** Test Step 34 : Step 6a: TH reads AcceptedCommandList from DUT\n"); - err = TestStep6aThReadsAcceptedCommandListFromDut_34(); + err = TestStep4tThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_34(); break; case 35: + ChipLogProgress(chipTool, " ***** Test Step 35 : Step 5a: TH reads EventList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 36: + ChipLogProgress( + chipTool, " ***** Test Step 36 : Step 5b: TH reads optional event(Door position sensor) in EventList\n"); + if (ShouldSkip("DRLK.S.F05 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 37: + ChipLogProgress( + chipTool, " ***** Test Step 37 : Step 5c: TH reads optional event(User commands and database) in EventList\n"); + if (ShouldSkip("DRLK.S.F08 && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 38: + ChipLogProgress(chipTool, " ***** Test Step 38 : Step 6a: TH reads AcceptedCommandList from DUT\n"); + err = TestStep6aThReadsAcceptedCommandListFromDut_38(); + break; + case 39: ChipLogProgress(chipTool, - " ***** Test Step 35 : Step 6b: TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList\n"); + " ***** Test Step 39 : Step 6b: TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList\n"); if (ShouldSkip("DRLK.S.F04")) { NextTest(); return; } - err = TestStep6bThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_35(); + err = TestStep6bThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_39(); break; - case 36: + case 40: ChipLogProgress(chipTool, - " ***** Test Step 36 : Step 6c: TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList\n"); + " ***** Test Step 40 : Step 6c: TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList\n"); if (ShouldSkip("DRLK.S.F0a")) { NextTest(); return; } - err = TestStep6cThReadsFeatureDependentCommandsDRLKSF0aInAcceptedCommandList_36(); + err = TestStep6cThReadsFeatureDependentCommandsDRLKSF0aInAcceptedCommandList_40(); break; - case 37: + case 41: ChipLogProgress(chipTool, - " ***** Test Step 37 : Step 6d: TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList\n"); + " ***** Test Step 41 : Step 6d: TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList\n"); if (ShouldSkip("DRLK.S.F0b")) { NextTest(); return; } - err = TestStep6dThReadsFeatureDependentCommandsDRLKSF0bInAcceptedCommandList_37(); + err = TestStep6dThReadsFeatureDependentCommandsDRLKSF0bInAcceptedCommandList_41(); break; - case 38: + case 42: ChipLogProgress(chipTool, - " ***** Test Step 38 : Step 6e: TH reads Feature dependent commands(DRLK.S.F0c) in AcceptedCommandList\n"); + " ***** Test Step 42 : Step 6e: TH reads Feature dependent commands(DRLK.S.F0c) in AcceptedCommandList\n"); if (ShouldSkip("DRLK.S.F0c")) { NextTest(); return; } - err = TestStep6eThReadsFeatureDependentCommandsDRLKSF0cInAcceptedCommandList_38(); + err = TestStep6eThReadsFeatureDependentCommandsDRLKSF0cInAcceptedCommandList_42(); break; - case 39: + case 43: ChipLogProgress(chipTool, - " ***** Test Step 39 : Step 6f: TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList\n"); + " ***** Test Step 43 : Step 6f: TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList\n"); if (ShouldSkip("DRLK.S.F08")) { NextTest(); return; } - err = TestStep6fThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_39(); + err = TestStep6fThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_43(); break; - case 40: + case 44: ChipLogProgress( - chipTool, " ***** Test Step 40 : Step 6g: TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 44 : Step 6g: TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList\n"); if (ShouldSkip("DRLK.S.C03.Rsp")) { NextTest(); return; } - err = TestStep6gThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_40(); + err = TestStep6gThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_44(); break; - case 41: + case 45: ChipLogProgress(chipTool, - " ***** Test Step 41 : Step 7a: TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList\n"); + " ***** Test Step 45 : Step 7a: TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList\n"); if (ShouldSkip("DRLK.S.F04")) { NextTest(); return; } - err = TestStep7aThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_41(); + err = TestStep7aThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_45(); break; - case 42: + case 46: ChipLogProgress(chipTool, - " ***** Test Step 42 : Step 7b: TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList\n"); + " ***** Test Step 46 : Step 7b: TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList\n"); if (ShouldSkip("DRLK.S.F0a")) { NextTest(); return; } - err = TestStep7bThReadsFeatureDependentCommandDRLKSF0aInGeneratedCommandList_42(); + err = TestStep7bThReadsFeatureDependentCommandDRLKSF0aInGeneratedCommandList_46(); break; - case 43: + case 47: ChipLogProgress(chipTool, - " ***** Test Step 43 : Step 7c: TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList\n"); + " ***** Test Step 47 : Step 7c: TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList\n"); if (ShouldSkip("DRLK.S.F0b")) { NextTest(); return; } - err = TestStep7cThReadsFeatureDependentCommandDRLKSF0bInGeneratedCommandList_43(); + err = TestStep7cThReadsFeatureDependentCommandDRLKSF0bInGeneratedCommandList_47(); break; - case 44: + case 48: ChipLogProgress(chipTool, - " ***** Test Step 44 : Step 7d: TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList\n"); + " ***** Test Step 48 : Step 7d: TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList\n"); if (ShouldSkip("DRLK.S.F08")) { NextTest(); return; } - err = TestStep7dThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_44(); + err = TestStep7dThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_48(); break; } @@ -163828,6 +169134,18 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { case 44: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 45: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 46: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 47: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 48: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -163841,7 +169159,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 45; + const uint16_t mTestCount = 49; chip::Optional mNodeId; chip::Optional mCluster; @@ -164133,6 +169451,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 38UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -164143,7 +169462,37 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bThReadsFeatureDependentDRLKSF05AttributesInAttributeList_15() + CHIP_ERROR TestStep4aThReadsAttributeListFromDut_15() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: TH reads AttributeList from DUT 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, 37UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 38UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bThReadsFeatureDependentDRLKSF05AttributesInAttributeList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164164,7 +169513,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cThReadsFeatureDependentDRLKSF08AttributesInAttributeList_16() + CHIP_ERROR TestStep4cThReadsFeatureDependentDRLKSF08AttributesInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164187,7 +169536,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dThReadsFeatureDependentDRLKSF00AttributesInAttributeList_17() + CHIP_ERROR TestStep4dThReadsFeatureDependentDRLKSF00AttributesInAttributeList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164210,7 +169559,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eThReadsFeatureDependentDRLKSF01AttributesInAttributeList_18() + CHIP_ERROR TestStep4eThReadsFeatureDependentDRLKSF01AttributesInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164233,7 +169582,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4fThReadsFeatureDependentDRLKSF04AttributeInAttributeList_19() + CHIP_ERROR TestStep4fThReadsFeatureDependentDRLKSF04AttributeInAttributeList_20() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164254,7 +169603,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4gThReadsFeatureDependentDRLKSF0aAttributeInAttributeList_20() + CHIP_ERROR TestStep4gThReadsFeatureDependentDRLKSF0aAttributeInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164275,7 +169624,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4hThReadsFeatureDependentDRLKSF0bAttributeInAttributeList_21() + CHIP_ERROR TestStep4hThReadsFeatureDependentDRLKSF0bAttributeInAttributeList_22() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164296,7 +169645,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4iThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_22() + CHIP_ERROR TestStep4iThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164318,7 +169667,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4jThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_23() + CHIP_ERROR TestStep4jThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_24() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164339,7 +169688,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4kThReadsOptionalAttributeLanguageInAttributeList_24() + CHIP_ERROR TestStep4kThReadsOptionalAttributeLanguageInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164360,7 +169709,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4lThReadsOptionalAttributeLEDSettingsInAttributeList_25() + CHIP_ERROR TestStep4lThReadsOptionalAttributeLEDSettingsInAttributeList_26() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164381,7 +169730,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4mThReadsOptionalAttributeAutoRelockTimeInAttributeList_26() + CHIP_ERROR TestStep4mThReadsOptionalAttributeAutoRelockTimeInAttributeList_27() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164402,7 +169751,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4nThReadsOptionalAttributeSoundVolumeInAttributeList_27() + CHIP_ERROR TestStep4nThReadsOptionalAttributeSoundVolumeInAttributeList_28() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164423,7 +169772,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4oThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_28() + CHIP_ERROR TestStep4oThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_29() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164444,7 +169793,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4pThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_29() + CHIP_ERROR TestStep4pThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164465,7 +169814,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4qThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_30() + CHIP_ERROR TestStep4qThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_31() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164486,7 +169835,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4rThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_31() + CHIP_ERROR TestStep4rThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164507,7 +169856,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4sThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_32() + CHIP_ERROR TestStep4sThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_33() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164528,7 +169877,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4tThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_33() + CHIP_ERROR TestStep4tThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_34() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164549,7 +169898,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_34() + CHIP_ERROR TestStep6aThReadsAcceptedCommandListFromDut_38() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164571,7 +169920,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_35() + CHIP_ERROR TestStep6bThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_39() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164594,7 +169943,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6cThReadsFeatureDependentCommandsDRLKSF0aInAcceptedCommandList_36() + CHIP_ERROR TestStep6cThReadsFeatureDependentCommandsDRLKSF0aInAcceptedCommandList_40() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164617,7 +169966,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6dThReadsFeatureDependentCommandsDRLKSF0bInAcceptedCommandList_37() + CHIP_ERROR TestStep6dThReadsFeatureDependentCommandsDRLKSF0bInAcceptedCommandList_41() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164640,7 +169989,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6eThReadsFeatureDependentCommandsDRLKSF0cInAcceptedCommandList_38() + CHIP_ERROR TestStep6eThReadsFeatureDependentCommandsDRLKSF0cInAcceptedCommandList_42() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164661,7 +170010,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6fThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_39() + CHIP_ERROR TestStep6fThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_43() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164687,7 +170036,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6gThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_40() + CHIP_ERROR TestStep6gThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_44() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164708,7 +170057,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7aThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_41() + CHIP_ERROR TestStep7aThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_45() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164729,7 +170078,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7bThReadsFeatureDependentCommandDRLKSF0aInGeneratedCommandList_42() + CHIP_ERROR TestStep7bThReadsFeatureDependentCommandDRLKSF0aInGeneratedCommandList_46() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164750,7 +170099,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7cThReadsFeatureDependentCommandDRLKSF0bInGeneratedCommandList_43() + CHIP_ERROR TestStep7cThReadsFeatureDependentCommandDRLKSF0bInGeneratedCommandList_47() { MTRBaseDevice * device = GetDevice("alpha"); @@ -164771,7 +170120,7 @@ class Test_TC_DRLK_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7dThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_44() + CHIP_ERROR TestStep7dThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_48() { MTRBaseDevice * device = GetDevice("alpha"); @@ -170728,15 +176077,35 @@ class Test_TC_G_1_1 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Step 4: TH reads AttributeList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4ThReadsAttributeListFromDut_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 6: TH reads AcceptedCommandList from DUT\n"); - err = TestStep6ThReadsAcceptedCommandListFromDut_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4: TH reads AttributeList from DUT\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ThReadsAttributeListFromDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 7: TH reads GeneratedCommandList from DUT\n"); - err = TestStep7ThReadsGeneratedCommandListFromDut_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 5: TH reads EventList from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 6: TH reads AcceptedCommandList from DUT\n"); + err = TestStep6ThReadsAcceptedCommandListFromDut_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 7: TH reads GeneratedCommandList from DUT\n"); + err = TestStep7ThReadsGeneratedCommandListFromDut_8(); break; } @@ -170770,6 +176139,12 @@ class Test_TC_G_1_1 : public TestCommandBridge { case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -170783,7 +176158,7 @@ class Test_TC_G_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -170872,6 +176247,33 @@ class Test_TC_G_1_1 : public TestCommandBridge { __auto_type * cluster = [[MTRBaseClusterGroups alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4: TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4ThReadsAttributeListFromDut_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterGroups alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4: TH reads AttributeList from DUT Error: %@", err); @@ -170891,7 +176293,7 @@ class Test_TC_G_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6ThReadsAcceptedCommandListFromDut_5() + CHIP_ERROR TestStep6ThReadsAcceptedCommandListFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -170917,7 +176319,7 @@ class Test_TC_G_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7ThReadsGeneratedCommandListFromDut_6() + CHIP_ERROR TestStep7ThReadsGeneratedCommandListFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171315,48 +176717,60 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } err = TestStep4aReadTheGlobalAttributeAttributeList_6(); break; case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4a: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4aReadTheGlobalAttributeAttributeList_7(); + break; + case 8: ChipLogProgress( - chipTool, " ***** Test Step 7 : Step 4b: Read the feature dependent(ACFREMON.S.F00) attribute in AttributeList\n"); + chipTool, " ***** Test Step 8 : Step 4b: Read the feature dependent(ACFREMON.S.F00) attribute in AttributeList\n"); if (ShouldSkip("ACFREMON.S.F00")) { NextTest(); return; } - err = TestStep4bReadTheFeatureDependentACFREMONSF00AttributeInAttributeList_7(); + err = TestStep4bReadTheFeatureDependentACFREMONSF00AttributeInAttributeList_8(); break; - case 8: + case 9: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 4c: Read the optional attribute InPlaceIndicator (ACFREMON.S.A0003) in AttributeList\n"); + " ***** Test Step 9 : Step 4c: Read the optional attribute InPlaceIndicator (ACFREMON.S.A0003) in AttributeList\n"); if (ShouldSkip("ACFREMON.S.A0003")) { NextTest(); return; } - err = TestStep4cReadTheOptionalAttributeInPlaceIndicatorAcfremonsa0003InAttributeList_8(); + err = TestStep4cReadTheOptionalAttributeInPlaceIndicatorAcfremonsa0003InAttributeList_9(); break; - case 9: + case 10: ChipLogProgress(chipTool, - " ***** Test Step 9 : Step 4d: Read the optional attribute LastChangedTime (ACFREMON.S.A0004) in AttributeList\n"); + " ***** Test Step 10 : Step 4d: Read the optional attribute LastChangedTime (ACFREMON.S.A0004) in AttributeList\n"); if (ShouldSkip("ACFREMON.S.A0004")) { NextTest(); return; } - err = TestStep4dReadTheOptionalAttributeLastChangedTimeAcfremonsa0004InAttributeList_9(); + err = TestStep4dReadTheOptionalAttributeLastChangedTimeAcfremonsa0004InAttributeList_10(); break; - case 10: + case 11: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 4e: Read the optional attribute ReplacementProductList (ACFREMON.S.F02) in " + " ***** Test Step 11 : Step 4e: Read the optional attribute ReplacementProductList (ACFREMON.S.F02) in " "AttributeList\n"); if (ShouldSkip("ACFREMON.S.F02")) { NextTest(); return; } - err = TestStep4eReadTheOptionalAttributeReplacementProductListAcfremonsf02InAttributeList_10(); + err = TestStep4eReadTheOptionalAttributeReplacementProductListAcfremonsf02InAttributeList_11(); break; - case 11: + case 12: ChipLogProgress(chipTool, - " ***** Test Step 11 : Step 4f: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " + " ***** Test Step 12 : Step 4f: TH reads AttributeList attribute from DUT. 1.The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list SHALL NOT " @@ -171366,28 +176780,50 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11(); + err = TestStep4fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 5a: TH reads EventList attribute from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 14: + ChipLogProgress(chipTool, + " ***** Test Step 14 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14(); + break; + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 6a: Read the global attribute: AcceptedCommandList\n"); if (ShouldSkip("!ACFREMON.S.C00.Rsp")) { NextTest(); return; } - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_12(); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_15(); break; - case 13: + case 16: ChipLogProgress( - chipTool, " ***** Test Step 13 : Step 6a: Read the optional command (ResetCondition) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 16 : Step 6a: Read the optional command (ResetCondition) in AcceptedCommandList\n"); if (ShouldSkip("ACFREMON.S.C00.Rsp")) { NextTest(); return; } - err = TestStep6aReadTheOptionalCommandResetConditionInAcceptedCommandList_13(); + err = TestStep6aReadTheOptionalCommandResetConditionInAcceptedCommandList_16(); break; - case 14: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 14 : Step 6b: TH reads from the DUT the AcceptedCommandList attribute. 1.The list SHALL NOT " + " ***** Test Step 17 : Step 6b: TH reads from the DUT the AcceptedCommandList attribute. 1.The list SHALL NOT " "contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - " "0x0000_FFFE). 2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - " "0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list " @@ -171398,15 +176834,15 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsFromTheDutTheAcceptedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14(); + err = TestStep6bThReadsFromTheDutTheAcceptedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_15(); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_18(); break; - case 16: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 16 : Step 7b: TH reads from the DUT the GeneratedCommandList attribute. 1.The list SHALL NOT " + " ***** Test Step 19 : Step 7b: TH reads from the DUT the GeneratedCommandList attribute. 1.The list SHALL NOT " "contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - " "0x0000_FFFE). 2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - " "0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list " @@ -171417,7 +176853,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16(); + err = TestStep7bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); break; } @@ -171481,6 +176917,15 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -171494,7 +176939,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 17; + const uint16_t mTestCount = 20; chip::Optional mNodeId; chip::Optional mCluster; @@ -171634,6 +177079,35 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_7() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterActivatedCarbonFilterMonitoring alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); @@ -171653,7 +177127,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheFeatureDependentACFREMONSF00AttributeInAttributeList_7() + CHIP_ERROR TestStep4bReadTheFeatureDependentACFREMONSF00AttributeInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171678,7 +177152,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheOptionalAttributeInPlaceIndicatorAcfremonsa0003InAttributeList_8() + CHIP_ERROR TestStep4cReadTheOptionalAttributeInPlaceIndicatorAcfremonsa0003InAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171701,7 +177175,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadTheOptionalAttributeLastChangedTimeAcfremonsa0004InAttributeList_9() + CHIP_ERROR TestStep4dReadTheOptionalAttributeLastChangedTimeAcfremonsa0004InAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171724,7 +177198,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadTheOptionalAttributeReplacementProductListAcfremonsf02InAttributeList_10() + CHIP_ERROR TestStep4eReadTheOptionalAttributeReplacementProductListAcfremonsf02InAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171748,7 +177222,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11() + TestStep4fThReadsAttributeListAttributeFromDut1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -171758,7 +177232,18 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_12() + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171784,7 +177269,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6aReadTheOptionalCommandResetConditionInAcceptedCommandList_13() + CHIP_ERROR TestStep6aReadTheOptionalCommandResetConditionInAcceptedCommandList_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171808,7 +177293,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsFromTheDutTheAcceptedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14() + TestStep6bThReadsFromTheDutTheAcceptedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_17() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -171818,7 +177303,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_15() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -171845,7 +177330,7 @@ class Test_TC_ACFREMON_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16() + TestStep7bThReadsFromTheDutTheGeneratedCommandListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -172229,51 +177714,63 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { err = TestStep3dGivenHEPAFREMONSF02ReplacementProductListEnsureFeaturemapHasTheCorrectBitSet_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4a: Read the global attribute: AttributeList\n"); - err = TestStep4aReadTheGlobalAttributeAttributeList_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ReadTheGlobalAttributeAttributeList_6(); break; case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4: Read the global attribute: AttributeList\n"); + if (ShouldSkip("!PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep4ReadTheGlobalAttributeAttributeList_7(); + break; + case 8: ChipLogProgress(chipTool, - " ***** Test Step 7 : Step 4b: Read the feature dependent(HEPAFREMON.S.F00) attribute in AttributeList\n"); + " ***** Test Step 8 : Step 4b: Read the feature dependent(HEPAFREMON.S.F00) attribute in AttributeList\n"); if (ShouldSkip("HEPAFREMON.S.F00")) { NextTest(); return; } - err = TestStep4bReadTheFeatureDependentHEPAFREMONSF00AttributeInAttributeList_7(); + err = TestStep4bReadTheFeatureDependentHEPAFREMONSF00AttributeInAttributeList_8(); break; - case 8: + case 9: ChipLogProgress(chipTool, - " ***** Test Step 8 : Step 4c: Read the optional attribute InPlaceIndicator (HEPAFREMON.S.A0003) in " + " ***** Test Step 9 : Step 4c: Read the optional attribute InPlaceIndicator (HEPAFREMON.S.A0003) in " "AttributeList\n"); if (ShouldSkip("HEPAFREMON.S.A0003")) { NextTest(); return; } - err = TestStep4cReadTheOptionalAttributeInPlaceIndicatorHepafremonsa0003InAttributeList_8(); + err = TestStep4cReadTheOptionalAttributeInPlaceIndicatorHepafremonsa0003InAttributeList_9(); break; - case 9: + case 10: ChipLogProgress(chipTool, - " ***** Test Step 9 : Step 4d: Read the optional attribute LastChangedTime (HEPAFREMON.S.A0004) in " + " ***** Test Step 10 : Step 4d: Read the optional attribute LastChangedTime (HEPAFREMON.S.A0004) in " "AttributeList\n"); if (ShouldSkip("HEPAFREMON.S.A0004")) { NextTest(); return; } - err = TestStep4dReadTheOptionalAttributeLastChangedTimeHepafremonsa0004InAttributeList_9(); + err = TestStep4dReadTheOptionalAttributeLastChangedTimeHepafremonsa0004InAttributeList_10(); break; - case 10: + case 11: ChipLogProgress(chipTool, - " ***** Test Step 10 : Step 4e: Read the optional attribute ReplacementProductList (HEPAFREMON.S.F02) in " + " ***** Test Step 11 : Step 4e: Read the optional attribute ReplacementProductList (HEPAFREMON.S.F02) in " "AttributeList\n"); if (ShouldSkip("HEPAFREMON.S.F02")) { NextTest(); return; } - err = TestStep4eReadTheOptionalAttributeReplacementProductListHepafremonsf02InAttributeList_10(); + err = TestStep4eReadTheOptionalAttributeReplacementProductListHepafremonsf02InAttributeList_11(); break; - case 11: + case 12: ChipLogProgress(chipTool, - " ***** Test Step 11 : Step 4f: TH reads from the DUT the AttributeList attribute. The list SHALL NOT contain any " + " ***** Test Step 12 : Step 4f: TH reads from the DUT the AttributeList attribute. The list SHALL NOT contain any " "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE). " "2.The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.TThe list SHALL NOT " @@ -172283,15 +177780,37 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep4fThReadsFromTheDutTheAttributeListAttributeTheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TTheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11(); - break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 6a: Read the global attribute: AcceptedCommandList\n"); - err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_12(); + err = TestStep4fThReadsFromTheDutTheAttributeListAttributeTheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TTheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12(); break; case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Step 5a: TH reads EventList attribute from DUT\n"); + if (ShouldSkip("PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + NextTest(); + return; + case 14: + ChipLogProgress(chipTool, + " ***** Test Step 14 : Step 5b: TH reads from the DUT the EventList attribute. 1.The list SHALL NOT contain any " + "additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2. " + "The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), " + "where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. 3. The list SHALL NOT " + "contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 " + "- 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)\n"); + if (ShouldSkip("PICS_USER_PROMPT && PICS_EVENT_LIST_ENABLED")) { + NextTest(); + return; + } + err = TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14(); + break; + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Step 6a: Read the global attribute: AcceptedCommandList\n"); + err = TestStep6aReadTheGlobalAttributeAcceptedCommandList_15(); + break; + case 16: ChipLogProgress(chipTool, - " ***** Test Step 13 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 16 : Step 6b: TH reads AcceptedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -172300,24 +177819,24 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13(); + err = TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16(); break; - case 14: + case 17: ChipLogProgress( - chipTool, " ***** Test Step 14 : Step 6b: Read the optional command (ResetCondition) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 17 : Step 6b: Read the optional command (ResetCondition) in AcceptedCommandList\n"); if (ShouldSkip("HEPAFREMON.S.C00.Rsp")) { NextTest(); return; } - err = TestStep6bReadTheOptionalCommandResetConditionInAcceptedCommandList_14(); + err = TestStep6bReadTheOptionalCommandResetConditionInAcceptedCommandList_17(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Step 7a: Read the global attribute: GeneratedCommandList\n"); - err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_15(); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Step 7a: Read the global attribute: GeneratedCommandList\n"); + err = TestStep7aReadTheGlobalAttributeGeneratedCommandList_18(); break; - case 16: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 16 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " + " ***** Test Step 19 : Step 7b: TH reads GeneratedCommandList attribute from DUT. 1.The list MAY contain values in " "the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI " "range (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT contain any values in the Test " "Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - " @@ -172326,7 +177845,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { NextTest(); return; } - err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16(); + err = TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19(); break; } @@ -172390,6 +177909,15 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -172403,7 +177931,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 17; + const uint16_t mTestCount = 20; chip::Optional mNodeId; chip::Optional mCluster; @@ -172534,7 +178062,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4aReadTheGlobalAttributeAttributeList_6() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172544,7 +178072,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 4a: Read the global attribute: AttributeList Error: %@", err); + NSLog(@"Step 4: Read the global attribute: AttributeList Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -172552,6 +178080,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65530UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); @@ -172562,7 +178091,35 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadTheFeatureDependentHEPAFREMONSF00AttributeInAttributeList_7() + CHIP_ERROR TestStep4ReadTheGlobalAttributeAttributeList_7() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterHEPAFilterMonitoring alloc] initWithDevice:device + endpointID:@(1) + queue:mCallbackQueue]; + 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); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestStep4bReadTheFeatureDependentHEPAFREMONSF00AttributeInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172587,7 +178144,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4cReadTheOptionalAttributeInPlaceIndicatorHepafremonsa0003InAttributeList_8() + CHIP_ERROR TestStep4cReadTheOptionalAttributeInPlaceIndicatorHepafremonsa0003InAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172610,7 +178167,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4dReadTheOptionalAttributeLastChangedTimeHepafremonsa0004InAttributeList_9() + CHIP_ERROR TestStep4dReadTheOptionalAttributeLastChangedTimeHepafremonsa0004InAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172633,7 +178190,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4eReadTheOptionalAttributeReplacementProductListHepafremonsf02InAttributeList_10() + CHIP_ERROR TestStep4eReadTheOptionalAttributeReplacementProductListHepafremonsf02InAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172658,7 +178215,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep4fThReadsFromTheDutTheAttributeListAttributeTheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TTheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_11() + TestStep4fThReadsFromTheDutTheAttributeListAttributeTheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TTheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_12() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -172668,7 +178225,18 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_12() + CHIP_ERROR + TestStep5bThReadsFromTheDutTheEventListAttribute1TheListShallNotContainAnyAdditionalValuesInTheStandardOrScopedRange0x000000000x00004fffAnd0x0000F0000x0000Fffe2TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX4fffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored3TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000050000x0000EfffAnd0x0000Ffff0xXXXX50000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_14() + { + + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); + } + + CHIP_ERROR TestStep6aReadTheGlobalAttributeAcceptedCommandList_15() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172690,7 +178258,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_13() + TestStep6bThReadsAcceptedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -172700,7 +178268,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep6bReadTheOptionalCommandResetConditionInAcceptedCommandList_14() + CHIP_ERROR TestStep6bReadTheOptionalCommandResetConditionInAcceptedCommandList_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172723,7 +178291,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_15() + CHIP_ERROR TestStep7aReadTheGlobalAttributeGeneratedCommandList_18() { MTRBaseDevice * device = GetDevice("alpha"); @@ -172750,7 +178318,7 @@ class Test_TC_HEPAFREMON_1_1 : public TestCommandBridge { } CHIP_ERROR - TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_16() + TestStep7bThReadsGeneratedCommandListAttributeFromDut1TheListMayContainValuesInTheManufacturerExtensibleIdentifierMeiRange0xXXXX00000xXXXX00ffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1TheseValuesShallBeIgnored2TheListShallNotContainAnyValuesInTheTestVendorOrInvalidRange0x000001000x0000Ffff0xXXXX01000xXXXXFfffAnd0xFFF100000xFFFFFfffWhereXxxxIsTheAllowedMeiRange0x00010xFFF1_19() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;