From 8b6c0c0a7337c76c016891e26cc7b8df066b0739 Mon Sep 17 00:00:00 2001 From: Justin Wood Date: Thu, 1 Sep 2022 10:54:48 -0700 Subject: [PATCH] Modified scripts Aug 30 (#22284) (#22342) * Modified automation script: TC-CC-* TC-CHANNEL-1.6 TC-DGGEN-1.1 TC-DGTHREAD-1.1 TC-DRLK-1.1 TC-DRLK-2.4 TC-DRLK-2.9 TC-PRS-1.1 TC-PS-1.1 TC-TSTAT-1.1 TC-SWTCH-1.1 TC-WNCV-1.1 TC-WNCV-2.1 TC-WNCV-2.1 TC-WNCV-3.* Modified Manual tests TC-IDM-* TC-ACl-2.5 TC-ACT-2.1 TC-OO-3.1 * Added auto generated files * Restyled by whitespace * Modified CC and WNCV script Added Manual scripts * Added auto generated files * Restyled by whitespace * Modified CC-4.4 and CC-5.3 script * Added auto generated files * Modified Zap_template.yaml increased timeout by 5s * Modified Zap_template.yaml timeout increased by 10s Co-authored-by: Restyled.io Co-authored-by: manjunath-grl <102359958+manjunath-grl@users.noreply.github.com> Co-authored-by: Restyled.io --- .github/workflows/zap_templates.yaml | 2 +- src/app/tests/suites/certification/PICS.yaml | 17 +- .../suites/certification/Test_TC_ACL_2_5.yaml | 10 +- .../suites/certification/Test_TC_ACT_2_1.yaml | 35 +- .../suites/certification/Test_TC_ACT_3_1.yaml | 4 +- .../suites/certification/Test_TC_ACT_3_2.yaml | 6 +- .../Test_TC_AUDIOOUTPUT_1_8.yaml | 4 +- .../certification/Test_TC_BINFO_2_2.yaml | 3 +- .../certification/Test_TC_BRBINFO_2_3.yaml | 32 +- .../suites/certification/Test_TC_BR_4.yaml | 299 +- .../suites/certification/Test_TC_CC_1_1.yaml | 43 +- .../suites/certification/Test_TC_CC_3_1.yaml | 27 +- .../suites/certification/Test_TC_CC_3_2.yaml | 4 +- .../suites/certification/Test_TC_CC_3_3.yaml | 4 +- .../suites/certification/Test_TC_CC_4_1.yaml | 4 +- .../suites/certification/Test_TC_CC_4_2.yaml | 4 +- .../suites/certification/Test_TC_CC_4_3.yaml | 4 +- .../suites/certification/Test_TC_CC_4_4.yaml | 18 +- .../suites/certification/Test_TC_CC_5_1.yaml | 4 +- .../suites/certification/Test_TC_CC_5_2.yaml | 4 +- .../suites/certification/Test_TC_CC_5_3.yaml | 20 +- .../suites/certification/Test_TC_CC_6_1.yaml | 4 +- .../suites/certification/Test_TC_CC_6_2.yaml | 4 +- .../suites/certification/Test_TC_CC_6_3.yaml | 4 +- .../suites/certification/Test_TC_CC_7_1.yaml | 4 +- .../suites/certification/Test_TC_CC_7_2.yaml | 4 +- .../suites/certification/Test_TC_CC_7_3.yaml | 4 +- .../suites/certification/Test_TC_CC_7_4.yaml | 4 +- .../certification/Test_TC_CHANNEL_1_6.yaml | 16 +- .../certification/Test_TC_CNET_4_6.yaml | 6 +- .../Test_TC_CONTENTLAUNCHER_1_11.yaml | 18 +- .../certification/Test_TC_DGETH_1_1.yaml | 22 +- .../certification/Test_TC_DGGEN_2_3.yaml | 5 - .../certification/Test_TC_DGTHREAD_1_1.yaml | 50 +- .../certification/Test_TC_DRLK_2_2.yaml | 93 +- .../certification/Test_TC_DRLK_2_3.yaml | 9 - .../certification/Test_TC_DRLK_2_4.yaml | 76 +- .../certification/Test_TC_DRLK_2_9.yaml | 19 +- .../suites/certification/Test_TC_G_1_1.yaml | 4 +- .../suites/certification/Test_TC_IDM_1_1.yaml | 5 +- .../suites/certification/Test_TC_IDM_1_2.yaml | 22 +- .../suites/certification/Test_TC_IDM_2_1.yaml | 2 + .../suites/certification/Test_TC_IDM_2_2.yaml | 64 +- .../suites/certification/Test_TC_IDM_3_1.yaml | 12 + .../suites/certification/Test_TC_IDM_3_2.yaml | 703 +-- .../suites/certification/Test_TC_IDM_4_1.yaml | 11 + .../suites/certification/Test_TC_IDM_4_2.yaml | 16 +- .../suites/certification/Test_TC_IDM_4_3.yaml | 36 +- .../suites/certification/Test_TC_IDM_5_1.yaml | 6 +- .../suites/certification/Test_TC_IDM_5_2.yaml | 8 +- .../suites/certification/Test_TC_IDM_6_1.yaml | 22 +- .../suites/certification/Test_TC_IDM_6_2.yaml | 32 +- .../Test_TC_KEYPADINPUT_1_2.yaml | 25 +- .../certification/Test_TC_LUNIT_3_1.yaml | 14 +- .../suites/certification/Test_TC_LVL_1_1.yaml | 29 +- .../Test_TC_MEDIAPLAYBACK_1_7.yaml | 18 +- .../suites/certification/Test_TC_OO_1_1.yaml | 8 +- .../suites/certification/Test_TC_OO_3_1.yaml | 53 +- .../suites/certification/Test_TC_PRS_1_1.yaml | 10 +- .../suites/certification/Test_TC_PS_1_1.yaml | 40 +- .../suites/certification/Test_TC_SU_2_8.yaml | 1 + .../certification/Test_TC_SWTCH_1_1.yaml | 62 +- .../certification/Test_TC_SWTCH_2_2.yaml | 82 +- .../certification/Test_TC_TSTAT_1_1.yaml | 54 +- .../certification/Test_TC_WNCV_1_1.yaml | 52 +- .../certification/Test_TC_WNCV_2_1.yaml | 4 +- .../certification/Test_TC_WNCV_3_1.yaml | 70 +- .../certification/Test_TC_WNCV_3_2.yaml | 71 +- .../certification/Test_TC_WNCV_3_3.yaml | 29 +- .../certification/Test_TC_WNCV_6_1.yaml | 70 +- .../tests/suites/certification/ci-pics-values | 25 +- src/app/tests/suites/ciTests.json | 2 +- src/app/tests/suites/manualTests.json | 2 +- .../chip-tool/zap-generated/test/Commands.h | 3020 +++++++----- .../zap-generated/test/Commands.h | 4209 +++++++++++------ 75 files changed, 6301 insertions(+), 3482 deletions(-) diff --git a/.github/workflows/zap_templates.yaml b/.github/workflows/zap_templates.yaml index 9943f6fa8cdf2a..7eb1188c0addd9 100644 --- a/.github/workflows/zap_templates.yaml +++ b/.github/workflows/zap_templates.yaml @@ -55,7 +55,7 @@ jobs: npm rebuild canvas --update-binary npm run build-spa - name: Generate all - timeout-minutes: 30 + timeout-minutes: 45 run: scripts/tools/zap_regen_all.py - name: Check for uncommited changes run: | diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index 5a6c416989f2c9..de8d60c6fa20f5 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -1673,6 +1673,12 @@ PICS: - label: "Does the DUT support Vendor specific OTA implementation?" id: MCORE.OTA.VendorSpecific + - label: + "Does the Requestor DUT support querying a different Provider in its + OTA Provider List when it hits error conditions in invoking the + QueryImage command?" + id: MCORE.OTA.Retry + - label: "Does the DUT have Administer privilege over the Access Control of another node?" @@ -1813,13 +1819,13 @@ PICS: id: LUNIT.S.Afffd - label: "Does the DUT (Server) support Fahrenheit TemperatureUnit?" - id: LUNIT.S.A0000.Fahrenheit + id: LUNIT.TempUnit.Fahrenheit - label: "Does the DUT (Server) support Celsius TemperatureUnit?" - id: LUNIT.S.A0000.Celsius + id: LUNIT.TempUnit.Celsius - label: "Does the DUT (Server) support Kelvin TemperatureUnit?" - id: LUNIT.S.A0000.Kelvin + id: LUNIT.TempUnit.Kelvin - label: "Does the DUT (Client) support TemperatureUnit attribute?" id: LUNIT.C.A0000 @@ -1998,6 +2004,11 @@ PICS: feature?" id: MEDIAINPUT.S.NU + - label: + "Does the DUT support the Audio Ouput server cluster, Name Updates + feature?" + id: AUDIOOUTPUT.S.NU + - label: "Does the DUT support the Channel server cluster Channel List feature?" id: CHANNEL.S.CL diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml index a463ed899b398f..bdd2f5ca9b3fb9 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml @@ -91,7 +91,7 @@ tests: "TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element 1.struct Data field: D_OK_EMPTY : 1718" - PICS: ACL.S.E01 + PICS: ACL.S.A0001 verification: | ./chip-tool accesscontrol write extension "[{"data":"1718"}]" 1 0 On TH1(Chiptool), Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element @@ -168,7 +168,7 @@ tests: value is list of AccessControlExtensionStruct containing 1 element 1.struct Data field: D_OK_SINGLE 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" - PICS: ACL.S.E01 + PICS: ACL.S.A0001 verification: | ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 1 0 On TH1(Chiptool) , Verify Successfully extension attribute list containing one element @@ -249,7 +249,7 @@ tests: value is list of AccessControlExtensionStruct containing 1 element 1.struct Data field: D_BAD_LENGTH 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018" - PICS: ACL.S.E01 + PICS: ACL.S.A0001 verification: | ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018"}]" 1 0 @@ -303,7 +303,7 @@ tests: value is list of AccessControlExtensionStruct containing 2 elements 1. struct Data field: D_OK_EMPTY :1718 2.struct Data field: D_OK_SINGLE :17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" - PICS: ACL.S.E01 + PICS: ACL.S.A0001 verification: | ./chip-tool accesscontrol write extension "[{"data":"1718"},{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 1 0 @@ -356,7 +356,7 @@ tests: - label: "TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is an empty list" - PICS: ACL.S.E01 + PICS: ACL.S.A0001 verification: | ./chip-tool accesscontrol write extension "[]" 1 0 On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is an empty list diff --git a/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml b/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml index 068cde853d3751..bd6efc3e244448 100644 --- a/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml @@ -58,24 +58,23 @@ tests: verification: | ./chip-tool descriptor read parts-list 1 0 - On TH(chip-tool), verify the PartsList value as 13 entries (number may vary by DUT capabilities) - - [1658393733.358450][13576:13581] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3528858866 - [1658393733.358548][13576:13581] CHIP:TOO: parts list: 13 entries - [1658393733.358579][13576:13581] CHIP:TOO: [1]: 1 - [1658393733.358615][13576:13581] CHIP:TOO: [2]: 2 - [1658393733.358640][13576:13581] CHIP:TOO: [3]: 3 - [1658393733.358665][13576:13581] CHIP:TOO: [4]: 4 - [1658393733.358699][13576:13581] CHIP:TOO: [5]: 5 - [1658393733.358724][13576:13581] CHIP:TOO: [6]: 6 - [1658393733.358756][13576:13581] CHIP:TOO: [7]: 7 - [1658393733.358781][13576:13581] CHIP:TOO: [8]: 8 - [1658393733.358804][13576:13581] CHIP:TOO: [9]: 9 - [1658393733.358838][13576:13581] CHIP:TOO: [10]: 10 - [1658393733.358863][13576:13581] CHIP:TOO: [11]: 11 - [1658393733.358895][13576:13581] CHIP:TOO: [12]: 12 - [1658393733.358921][13576:13581] CHIP:TOO: [13]: 13 - [1658393733.359051][13576:13581] CHIP:EM: Sending Standalone Ack for MessageCounter:3177509 on exchange 11364i + On TH(chip-tool), verify the PartsList value as 12 entries (number may vary by DUT capabilities) + + [1661775581.434024][11909:11914] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2309949467 + [1661775581.434098][11909:11914] CHIP:TOO: parts list: 12 entries + [1661775581.434129][11909:11914] CHIP:TOO: [1]: 1 + [1661775581.434155][11909:11914] CHIP:TOO: [2]: 3 + [1661775581.434180][11909:11914] CHIP:TOO: [3]: 4 + [1661775581.434205][11909:11914] CHIP:TOO: [4]: 5 + [1661775581.434230][11909:11914] CHIP:TOO: [5]: 6 + [1661775581.434255][11909:11914] CHIP:TOO: [6]: 7 + [1661775581.434280][11909:11914] CHIP:TOO: [7]: 8 + [1661775581.434304][11909:11914] CHIP:TOO: [8]: 9 + [1661775581.434383][11909:11914] CHIP:TOO: [9]: 10 + [1661775581.434408][11909:11914] CHIP:TOO: [10]: 11 + [1661775581.434434][11909:11914] CHIP:TOO: [11]: 12 + [1661775581.434459][11909:11914] CHIP:TOO: [12]: 13 + [1661775581.434597][11909:11914] CHIP:EM: Sending Standalone Ack for MessageCounter:142298497 on exchange 3054i disabled: true - label: "Read EndpointLists attribute of Actions server" diff --git a/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml b/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml index 89258aeb54ec2b..7cdb52289f63a8 100644 --- a/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml @@ -39,7 +39,7 @@ tests: verification: | ./chip-tool actions read action-list 1 1 - Verify read command is received on TH(all-clusters-app) + Verify read command is received on TH(bridge-app) [1658848323.188336][28392:28392] CHIP:IM: Received Read request [1658848323.188433][28392:28392] CHIP:DMG: ReadRequestMessage = @@ -98,7 +98,7 @@ tests: ./chip-tool actions read setup-url 1 1 - Verify read command is received on TH(all-clusters-app) + Verify read command is received on TH(bridge-app) [1658848453.728775][28392:28392] CHIP:IM: Received Read request [1658848453.728895][28392:28392] CHIP:DMG: ReadRequestMessage = diff --git a/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml b/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml index 49353e5ffc64c1..83653e623e23ba 100644 --- a/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml @@ -46,9 +46,9 @@ tests: - label: "DUT issues an InstantAction command to TH" PICS: ACT.C.C00.Tx verification: | - ./chip-tool actions instant-action 0x1001 1 1 + ./chip-tool actions instant-action 0xA001 1 1 - Verify command is successfully sent on TH(all-clusters-app) + Verify command is successfully sent on TH(bridge-app) [1658848801.832452][10096:10101] CHIP:EM: Removed CHIP MessageCounter:163269462 from RetransTable on exchange 54295i [1658848801.832487][10096:10101] CHIP:DMG: ICR moving to [ResponseRe] @@ -161,7 +161,7 @@ tests: - label: "DUT issues an DisableActionWithDuration command to TH" PICS: ACT.C.C0b.Tx verification: | - ./chip-tool actions disable-action-with-duration 0 100 1 1 + ./chip-tool actions disable-action-with-duration 0x1001 100 1 1 Note: Message log similar as in step 1 disabled: true 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 81ace755741192..8d1caa480a84a9 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 @@ -67,7 +67,7 @@ tests: contains: [0] - label: "Read the global attribute: GeneratedCommandList" - PICS: MEDIAINPUT.S.NU + PICS: AUDIOOUTPUT.S.NU command: "readAttribute" attribute: "GeneratedCommandList" response: @@ -76,7 +76,7 @@ tests: type: list - label: "Read the global attribute: GeneratedCommandList" - PICS: " !MEDIAINPUT.S.NU " + PICS: " !AUDIOOUTPUT.S.NU " command: "readAttribute" attribute: "GeneratedCommandList" response: diff --git a/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml index e41fe1c356098f..dea7c8312782dc 100644 --- a/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml @@ -71,10 +71,9 @@ tests: 1. Launch chip-tool into interactive mode with the command ./chip-tool interactive start - basic subscribe-event shut-down 20 100 1 0 2. run below command in interactive mode shell and Turn down the DUT - + basic subscribe-event shut-down 20 100 1 0 verify that ShutDown event as priority set has CRITICAL on TH(Chip-tool) diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml index 343d47dbd49355..e057880b21e2e4 100644 --- a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml @@ -36,7 +36,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read vendor-name 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: [1659966264.659547][3334:3334] CHIP:DMG: ReadRequestMessage = @@ -68,7 +68,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read vendor-id 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: [1659966317.983464][3334:3334] CHIP:DMG: ReadRequestMessage = @@ -122,7 +122,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read product-name 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: [1659966351.620979][3334:3334] CHIP:IM: Received Read request @@ -152,7 +152,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read node-label 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: [1659966481.748125][3334:3334] CHIP:IM: Received Read request @@ -185,7 +185,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read location 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: [1659966523.437542][3334:3334] CHIP:IM: Received Read request @@ -218,7 +218,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read hardware-version 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: [1659966609.655514][3334:3334] CHIP:IM: Received Read request @@ -251,7 +251,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read hardware-version-string 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: @@ -285,7 +285,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read software-version 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: @@ -319,7 +319,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read software-version-string 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: @@ -353,7 +353,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read manufacturing-date 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: @@ -387,7 +387,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read part-number 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: @@ -421,7 +421,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read product-url 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: @@ -455,7 +455,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read product-label 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: @@ -489,7 +489,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read serial-number 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: @@ -523,7 +523,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read reachable 1 3 - Verify ReadRequestMessage is displayed on TH(all-clusters-app) Log + Verify ReadRequestMessage is displayed on TH(bridge-app) Log [1659966974.431316][3334:3334] CHIP:IM: Received Read request [1659966974.431423][3334:3334] CHIP:DMG: ReadRequestMessage = [1659966974.431461][3334:3334] CHIP:DMG: { @@ -554,7 +554,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read unique-id 1 3 - Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE + Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE Example Log: [1659967013.796500][3334:3334] CHIP:IM: Received Read request diff --git a/src/app/tests/suites/certification/Test_TC_BR_4.yaml b/src/app/tests/suites/certification/Test_TC_BR_4.yaml index ff5b5fa052e1ad..526df3b1aa8e6b 100644 --- a/src/app/tests/suites/certification/Test_TC_BR_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_BR_4.yaml @@ -46,7 +46,7 @@ tests: ./chip-tool descriptor read device-list 1 1 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972694.732632][3652:3652] CHIP:IM: Received Read request [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972694.732739][3652:3652] CHIP:DMG: { @@ -74,7 +74,7 @@ tests: ./chip-tool descriptor read device-list 1 2 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972694.732632][3652:3652] CHIP:IM: Received Read request [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972694.732739][3652:3652] CHIP:DMG: { @@ -101,7 +101,7 @@ tests: ./chip-tool descriptor read device-list 1 3 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -127,7 +127,7 @@ tests: ./chip-tool descriptor read device-list 1 4 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -154,7 +154,7 @@ tests: ./chip-tool descriptor read device-list 1 5 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -181,7 +181,7 @@ tests: ./chip-tool descriptor read device-list 1 6 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -208,7 +208,7 @@ tests: ./chip-tool descriptor read device-list 1 7 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -235,7 +235,7 @@ tests: ./chip-tool descriptor read device-list 1 8 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -262,7 +262,7 @@ tests: ./chip-tool descriptor read device-list 1 9 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -289,7 +289,7 @@ tests: ./chip-tool descriptor read device-list 1 10 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -315,7 +315,8 @@ tests: ./chip-tool descriptor read device-list 1 11 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: + [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -342,7 +343,7 @@ tests: ./chip-tool descriptor read device-list 1 12 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -369,7 +370,7 @@ tests: ./chip-tool descriptor read device-list 1 13 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -397,7 +398,7 @@ tests: ./chip-tool descriptor read parts-list 1 0 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972886.385353][3652:3652] CHIP:DMG: { @@ -421,7 +422,7 @@ tests: ./chip-tool descriptor read parts-list 1 1 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972886.385353][3652:3652] CHIP:DMG: { @@ -445,7 +446,7 @@ tests: ./chip-tool descriptor read parts-list 1 2 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972886.385353][3652:3652] CHIP:DMG: { @@ -469,7 +470,7 @@ tests: ./chip-tool descriptor read parts-list 1 3 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972886.385353][3652:3652] CHIP:DMG: { @@ -494,7 +495,7 @@ tests: ./chip-tool descriptor read parts-list 1 4 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -520,7 +521,7 @@ tests: ./chip-tool descriptor read parts-list 1 5 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -546,7 +547,7 @@ tests: ./chip-tool descriptor read parts-list 1 6 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -572,7 +573,7 @@ tests: ./chip-tool descriptor read parts-list 1 7 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -598,7 +599,7 @@ tests: ./chip-tool descriptor read parts-list 1 8 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -624,7 +625,7 @@ tests: ./chip-tool descriptor read parts-list 1 9 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -650,7 +651,7 @@ tests: ./chip-tool descriptor read parts-list 1 10 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -675,7 +676,7 @@ tests: ./chip-tool descriptor read parts-list 1 11 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -701,7 +702,7 @@ tests: ./chip-tool descriptor read parts-list 1 12 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -727,7 +728,7 @@ tests: ./chip-tool descriptor read parts-list 1 13 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -754,12 +755,13 @@ tests: - label: "Verify DUT contains the (supported) devices from the above list" PICS: MCORE.DEVLIST.UseDevices verification: | - Verify DUT contains the (supported) devices from the above list + sudo ./chip-bridge-app - ./chip-tool descriptor read device-list 1 1 + ./chip-tool pairing ethernet 1 20202021 3840 fe80::e65f:1ff:fe0f:2753 5540 - Verify in TH(all-clusters-app) Log: + ./chip-tool descriptor read device-list 1 1 + Verify in TH(bridge-app) Log: [1659972694.732632][3652:3652] CHIP:IM: Received Read request [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972694.732739][3652:3652] CHIP:DMG: { @@ -785,10 +787,36 @@ tests: [1659972694.733520][3652:3652] CHIP:DMG: AccessControl: allowed - ./chip-tool descriptor read device-list 1 3 + ./chip-tool descriptor read device-list 1 2 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: + [1659972694.732632][3652:3652] CHIP:IM: Received Read request + [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage = + [1659972694.732739][3652:3652] CHIP:DMG: { + [1659972694.732761][3652:3652] CHIP:DMG: AttributePathIBs = + [1659972694.732800][3652:3652] CHIP:DMG: [ + [1659972694.732824][3652:3652] CHIP:DMG: AttributePathIB = + [1659972694.732866][3652:3652] CHIP:DMG: { + [1659972694.732905][3652:3652] CHIP:DMG: Endpoint = 0x2, + [1659972694.732940][3652:3652] CHIP:DMG: Cluster = 0x1d, + [1659972694.732980][3652:3652] CHIP:DMG: Attribute = 0x0000_0000, + [1659972694.733009][3652:3652] CHIP:DMG: } + [1659972694.733066][3652:3652] CHIP:DMG: + [1659972694.733092][3652:3652] CHIP:DMG: ], + [1659972694.733128][3652:3652] CHIP:DMG: + [1659972694.733154][3652:3652] CHIP:DMG: isFabricFiltered = true, + [1659972694.733188][3652:3652] CHIP:DMG: InteractionModelRevision = 1 + [1659972694.733211][3652:3652] CHIP:DMG: }, + [1659972694.733292][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] + [1659972694.733401][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1659972694.733429][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty + [1659972694.733460][3652:3652] CHIP:DMG: Reading attribute: Cluster=0x0000_001D Endpoint=1 AttributeId=0x0000_0000 (expanded=0) + [1659972694.733487][3652:3652] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_001D e=1 p=v + [1659972694.733520][3652:3652] CHIP:DMG: AccessControl: allowed + + ./chip-tool descriptor read device-list 1 3 + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -814,8 +842,7 @@ tests: ./chip-tool descriptor read device-list 1 4 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -842,8 +869,7 @@ tests: ./chip-tool descriptor read device-list 1 5 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -870,8 +896,7 @@ tests: ./chip-tool descriptor read device-list 1 6 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -898,8 +923,7 @@ tests: ./chip-tool descriptor read device-list 1 7 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -926,8 +950,7 @@ tests: ./chip-tool descriptor read device-list 1 8 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -954,8 +977,7 @@ tests: ./chip-tool descriptor read device-list 1 9 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -982,8 +1004,7 @@ tests: ./chip-tool descriptor read device-list 1 10 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -1009,8 +1030,7 @@ tests: ./chip-tool descriptor read device-list 1 11 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -1037,8 +1057,7 @@ tests: ./chip-tool descriptor read device-list 1 12 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -1065,8 +1084,7 @@ tests: ./chip-tool descriptor read device-list 1 13 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972745.371532][3652:3652] CHIP:IM: Received Read request [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972745.371654][3652:3652] CHIP:DMG: { @@ -1094,8 +1112,7 @@ tests: ./chip-tool descriptor read parts-list 1 0 - Verify in TH(all-clusters-app) Log: - + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972886.385353][3652:3652] CHIP:DMG: { @@ -1117,11 +1134,57 @@ tests: [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty + ./chip-tool descriptor read parts-list 1 1 - ./chip-tool descriptor read parts-list 1 3 + Verify in TH(bridge-app) Log: + [1659972886.385225][3652:3652] CHIP:IM: Received Read request + [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = + [1659972886.385353][3652:3652] CHIP:DMG: { + [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs = + [1659972886.385413][3652:3652] CHIP:DMG: [ + [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB = + [1659972886.385482][3652:3652] CHIP:DMG: { + [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x1, + [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d, + [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003, + [1659972886.385630][3652:3652] CHIP:DMG: } + [1659972886.385668][3652:3652] CHIP:DMG: + [1659972886.385694][3652:3652] CHIP:DMG: ], + [1659972886.385730][3652:3652] CHIP:DMG: + [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true, + [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1 + [1659972886.385817][3652:3652] CHIP:DMG: }, + [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] + [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty + + ./chip-tool descriptor read parts-list 1 2 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: + [1659972886.385225][3652:3652] CHIP:IM: Received Read request + [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = + [1659972886.385353][3652:3652] CHIP:DMG: { + [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs = + [1659972886.385413][3652:3652] CHIP:DMG: [ + [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB = + [1659972886.385482][3652:3652] CHIP:DMG: { + [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x2, + [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d, + [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003, + [1659972886.385630][3652:3652] CHIP:DMG: } + [1659972886.385668][3652:3652] CHIP:DMG: + [1659972886.385694][3652:3652] CHIP:DMG: ], + [1659972886.385730][3652:3652] CHIP:DMG: + [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true, + [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1 + [1659972886.385817][3652:3652] CHIP:DMG: }, + [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] + [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty + + ./chip-tool descriptor read parts-list 1 3 + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = [1659972886.385353][3652:3652] CHIP:DMG: { @@ -1146,7 +1209,7 @@ tests: ./chip-tool descriptor read parts-list 1 4 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1172,7 +1235,7 @@ tests: ./chip-tool descriptor read parts-list 1 5 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1198,7 +1261,7 @@ tests: ./chip-tool descriptor read parts-list 1 6 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1224,7 +1287,7 @@ tests: ./chip-tool descriptor read parts-list 1 7 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1250,7 +1313,7 @@ tests: ./chip-tool descriptor read parts-list 1 8 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1276,7 +1339,7 @@ tests: ./chip-tool descriptor read parts-list 1 9 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1302,7 +1365,7 @@ tests: ./chip-tool descriptor read parts-list 1 10 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1327,7 +1390,7 @@ tests: ./chip-tool descriptor read parts-list 1 11 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1353,7 +1416,7 @@ tests: ./chip-tool descriptor read parts-list 1 12 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1379,7 +1442,7 @@ tests: ./chip-tool descriptor read parts-list 1 13 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1413,7 +1476,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 3 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1440,7 +1503,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 4 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1467,7 +1530,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 5 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1495,7 +1558,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 6 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1523,7 +1586,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 7 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1550,7 +1613,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 8 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1577,7 +1640,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 9 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1604,7 +1667,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 10 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1631,7 +1694,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 11 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1658,7 +1721,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 12 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1685,7 +1748,7 @@ tests: ./chip-tool bridgeddevicebasic read node-label 1 13 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1719,7 +1782,7 @@ tests: ./chip-tool onoff read on-off 1 3 - Verify in TH(all-clusters-app) Log: + Verify in TH(bridge-app) Log: [1659973152.263905][3652:3652] CHIP:IM: Received Read request [1659973152.264002][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1748,7 +1811,7 @@ tests: bridged On/Off lights (use key c in the console to bridge-app)" PICS: MCORE.DEVLIST.UseDeviceState verification: | - Verify on TH(all-clusters-app) Log: + Verify on TH(bridge-app) Log: ./chip-tool onoff read on-off 1 3 [1659973152.263905][3652:3652] CHIP:IM: Received Read request @@ -1783,24 +1846,24 @@ tests: verification: | ./chip-tool temperaturemeasurement read measured-value 1 4 - Verify on TH(all-clusters-app) Log: + Verify on TH(bridge-app) Log: [1659973227.630446][3652:3652] CHIP:IM: Received Read request [1659973227.630527][3652:3652] CHIP:DMG: ReadRequestMessage = [1659973227.630570][3652:3652] CHIP:DMG: { - [1659973227.630594][3652:3652] CHIP:DMG: AttributePathIBs = - [1659973227.630633][3652:3652] CHIP:DMG: [ - [1659973227.630658][3652:3652] CHIP:DMG: AttributePathIB = - [1659973227.630699][3652:3652] CHIP:DMG: { - [1659973227.630728][3652:3652] CHIP:DMG: Endpoint = 0x4, - [1659973227.630779][3652:3652] CHIP:DMG: Cluster = 0x402, - [1659973227.630821][3652:3652] CHIP:DMG: Attribute = 0x0000_0000, - [1659973227.630853][3652:3652] CHIP:DMG: } + [1659973227.630594][3652:3652] CHIP:DMG: AttributePathIBs = + [1659973227.630633][3652:3652] CHIP:DMG: [ + [1659973227.630658][3652:3652] CHIP:DMG: AttributePathIB = + [1659973227.630699][3652:3652] CHIP:DMG: { + [1659973227.630728][3652:3652] CHIP:DMG: Endpoint = 0x4, + [1659973227.630779][3652:3652] CHIP:DMG: Cluster = 0x402, + [1659973227.630821][3652:3652] CHIP:DMG: Attribute = 0x0000_0000, + [1659973227.630853][3652:3652] CHIP:DMG: } [1659973227.630892][3652:3652] CHIP:DMG: - [1659973227.630919][3652:3652] CHIP:DMG: ], + [1659973227.630919][3652:3652] CHIP:DMG: ], [1659973227.630957][3652:3652] CHIP:DMG: - [1659973227.630984][3652:3652] CHIP:DMG: isFabricFiltered = true, - [1659973227.631020][3652:3652] CHIP:DMG: InteractionModelRevision = 1 + [1659973227.630984][3652:3652] CHIP:DMG: isFabricFiltered = true, + [1659973227.631020][3652:3652] CHIP:DMG: InteractionModelRevision = 1 [1659973227.631044][3652:3652] CHIP:DMG: }, [1659973227.631126][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] [1659973227.631231][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -1818,7 +1881,7 @@ tests: ./chip-tool temperaturemeasurement read measured-value 1 4 - Verify on TH(all-clusters-app) Log: + Verify on TH(bridge-app) Log: expect to get a different value than step 7b [1659351542.393349][12212:12217] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0402 Attribute 0x0000_0000 DataVersion: 2406690153 @@ -1835,24 +1898,24 @@ tests: verification: | ./chip-tool powersource read bat-charge-level 1 9 - Verify on TH(all-clusters-app) Log: + Verify on TH(bridge-app) Log: [1659973227.630446][3652:3652] CHIP:IM: Received Read request [1659973227.630527][3652:3652] CHIP:DMG: ReadRequestMessage = [1659973227.630570][3652:3652] CHIP:DMG: { - [1659973227.630594][3652:3652] CHIP:DMG: AttributePathIBs = - [1659973227.630633][3652:3652] CHIP:DMG: [ - [1659973227.630658][3652:3652] CHIP:DMG: AttributePathIB = - [1659973227.630699][3652:3652] CHIP:DMG: { - [1659973227.630728][3652:3652] CHIP:DMG: Endpoint = 0x4, - [1659973227.630779][3652:3652] CHIP:DMG: Cluster = 0x402, - [1659973227.630821][3652:3652] CHIP:DMG: Attribute = 0x0000_0000, - [1659973227.630853][3652:3652] CHIP:DMG: } + [1659973227.630594][3652:3652] CHIP:DMG: AttributePathIBs = + [1659973227.630633][3652:3652] CHIP:DMG: [ + [1659973227.630658][3652:3652] CHIP:DMG: AttributePathIB = + [1659973227.630699][3652:3652] CHIP:DMG: { + [1659973227.630728][3652:3652] CHIP:DMG: Endpoint = 0x4, + [1659973227.630779][3652:3652] CHIP:DMG: Cluster = 0x402, + [1659973227.630821][3652:3652] CHIP:DMG: Attribute = 0x0000_0000, + [1659973227.630853][3652:3652] CHIP:DMG: } [1659973227.630892][3652:3652] CHIP:DMG: - [1659973227.630919][3652:3652] CHIP:DMG: ], + [1659973227.630919][3652:3652] CHIP:DMG: ], [1659973227.630957][3652:3652] CHIP:DMG: - [1659973227.630984][3652:3652] CHIP:DMG: isFabricFiltered = true, - [1659973227.631020][3652:3652] CHIP:DMG: InteractionModelRevision = 1 + [1659973227.630984][3652:3652] CHIP:DMG: isFabricFiltered = true, + [1659973227.631020][3652:3652] CHIP:DMG: InteractionModelRevision = 1 [1659973227.631044][3652:3652] CHIP:DMG: }, [1659973227.631126][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] [1659973227.631231][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -1865,7 +1928,7 @@ tests: verification: | ./chip-tool onoff read on-off 1 3 - Verify on TH(all-clusters-app) Log: + Verify on TH(bridge-app) Log: [1659973152.263905][3652:3652] CHIP:IM: Received Read request [1659973152.264002][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1896,7 +1959,7 @@ tests: verification: | ./chip-tool bridgeddevicebasic read node-label 1 3 - Verify on TH(all-clusters-app) Log: + Verify on TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1919,14 +1982,14 @@ tests: [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty - Verify on TH(chip-tool) Log + Verify on TH(bridge-app) Log "b [1659089470.077297][12236:12241] CHIP:DL: Device[Light 1]: New Name=""Light 1b"" ./chip-tool bridgeddevicebasic read node-label 1 3 - Verify on TH(all-clusters-app) Log: + Verify on TH(bridge-app) Log: [1659973028.616696][3652:3652] CHIP:IM: Received Read request [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1953,7 +2016,7 @@ tests: - label: "Verify DUT contains the added device in the list of devices" PICS: MCORE.DEVLIST.UseDeviceNames verification: | - Verify on TH(chip-tool) Log + Verify on TH(bridge-app) Log b @@ -1964,11 +2027,11 @@ tests: "Use TH/bridge-app to add a bridged light (use key 2 in the console to bridge-app to add Light 2)" verification: | - Press "2" on TH(chip-tool) Log + Press "2" on TH(bridge-app) Log ./chip-tool descriptor read parts-list 1 0 - Verify the endpoints listed in TH(all-clusters-app) Log + Verify the endpoints listed in TH(bridge-app) Log [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -1993,7 +2056,7 @@ tests: " ./chip-tool descriptor read parts-list 1 1 - Verify the list contains 11 entries in TH(all-clusters-app) Log + Verify the list contains 11 entries in TH(bridge-app) Log [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -2018,7 +2081,7 @@ tests: ./chip-tool descriptor read parts-list 1 14 - Verify on TH(all-clusters-app) Log + Verify on TH(bridge-app) Log [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -2043,7 +2106,7 @@ tests: ./chip-tool descriptor read device-list 1 14 - Verify the list contains 11 entries in TH(all-clusters-app) Log + Verify the list contains 11 entries in TH(bridge-app) Log [1659972694.732632][3652:3652] CHIP:IM: Received Read request [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -2073,7 +2136,7 @@ tests: - label: "Verify DUT contains the added device in the list of devices" PICS: MCORE.DEVLIST.UseDevices verification: | - Verify on TH(chip-tool) Log + Verify on TH(bridge-app) Log 2 [1659352274.915018][14237:14242] CHIP:DMG: Endpoint 1, Cluster 0x0000_001D update version to 7e918bae @@ -2087,7 +2150,7 @@ tests: verification: | ./chip-tool descriptor read parts-list 1 0 - Verify on TH(all-clusters-app) Log: + Verify on TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -2112,7 +2175,7 @@ tests: ./chip-tool descriptor read parts-list 1 1 - Verify on TH(all-clusters-app) Log: + Verify on TH(bridge-app) Log: [1659972886.385225][3652:3652] CHIP:IM: Received Read request [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -2141,7 +2204,7 @@ tests: devices" PICS: MCORE.DEVLIST.UseDevices verification: | - Verify on TH(chip-tool) Log + Verify on TH(bridge-app) Log 4 [1659352426.184434][14237:14242] CHIP:DMG: Endpoint 1, Cluster 0x0000_001D update version to 7e918baf 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 eb67cb2947c082..5c642d522257a0 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 @@ -48,15 +48,50 @@ tests: constraints: type: bitmap32 - - label: "Read the global attribute: FeatureMap" - PICS: ( CC.S.F00 || CC.S.F01 || CC.S.F02 || CC.S.F03 || CC.S.F04) + - label: "Given CC.S.F00(HS) ensure featuremap has the correct bit set" + PICS: CC.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "Given CC.S.F01(EHue) ensure featuremap has the correct bit set" + PICS: CC.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] + + - label: "Given CC.S.F02(CL) ensure featuremap has the correct bit set" + PICS: CC.S.F02 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x4] + + - label: "Given CC.S.F03(XY) ensure featuremap has the correct bit set" + PICS: CC.S.F03 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x8] + + - label: "Given CC.S.F04(CT) ensure featuremap has the correct bit set" + PICS: CC.S.F04 command: "readAttribute" attribute: "FeatureMap" response: constraints: type: bitmap32 - minValue: 1 - maxValue: 31 + hasMasksSet: [0x10] - label: "Read the global attribute: AttributeList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml index 897c1a0ead771b..400a1ffa795fc3 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml @@ -207,13 +207,22 @@ tests: value: 10000 - label: "TH reads CurrentHue attribute from DUT" - PICS: CC.S.F00 && CC.S.A0000 - command: "readAttribute" - attribute: "CurrentHue" - response: - constraints: - minValue: 0 - maxValue: 15 + PICS: CC.S.F00 && CC.S.A0000 && PICS_SKIP_SAMPLE_APP + verification: | + ./chip-tool colorcontrol read current-hue 1 1 + Verify response contains a CurrentHue value in TH(chip-tool) Logs: + + [1649661849.854961][8307:8312] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0000 DataVersion: 4087274517 + [1649661849.855019][8307:8312] CHIP:TOO: current hue: 0 (value can vary) + [1649661849.855097][8307:8312] CHIP:EM: Sending Standalone Ack for MessageCounter:13414799 on exchange 39735i + cluster: "LogCommands" + command: "UserPrompt" + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "Wait 10s" cluster: "DelayCommands" @@ -489,6 +498,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -496,8 +506,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml index 88222beb4995c6..0c5118e3a2a2bd 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml @@ -298,6 +298,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -305,8 +306,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml index 454d7743ec686b..72ebaf5903ab55 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml @@ -234,6 +234,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -241,8 +242,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml index 6f4666e21f0a72..dbcdf3d3ac08f5 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml @@ -157,6 +157,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -164,8 +165,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml index ef0e5174d659cf..dac5d1046f034b 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml @@ -326,6 +326,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -333,8 +334,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml index 1a6b0df2bf5826..ee0de99c49a480 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml @@ -296,6 +296,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -303,8 +304,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml index 25e76fc401b9d5..5714a4126a13f4 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml @@ -47,7 +47,7 @@ tests: - label: "TH sends MoveToHueAndSaturation command to DUT with Hue=200, Saturation=50 and TransitionTime=0 (immediately)" - PICS: CC.S.F01 && CC.S.C06.Rsp + PICS: CC.S.F00 && CC.S.C06.Rsp command: "MoveToHueAndSaturation" arguments: values: @@ -71,14 +71,14 @@ tests: value: 100 - label: "TH reads CurrentHue attribute from DUT." - PICS: CC.S.F01 && CC.S.A0000 && CC.S.C06.Rsp + PICS: CC.S.F00 && CC.S.A0000 && CC.S.C06.Rsp command: "readAttribute" attribute: "CurrentHue" response: value: 200 - label: "TH reads CurrentSaturation attribute from DUT" - PICS: CC.S.F01 && CC.S.A0001 + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -87,7 +87,7 @@ tests: - label: "TH sends MoveToHueAndSaturation command to DUT with Hue=160, Saturation=80 and TransitionTime=200 (20s)" - PICS: CC.S.F01 && CC.S.C06.Rsp + PICS: CC.S.F00 && CC.S.C06.Rsp command: "MoveToHueAndSaturation" arguments: values: @@ -120,7 +120,7 @@ tests: maxValue: 195 - label: "TH reads CurrentSaturation attribute from DUT" - PICS: CC.S.F01 && CC.S.A0001 + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -146,7 +146,7 @@ tests: maxValue: 185 - label: "TH reads CurrentSaturation attribute from DUT" - PICS: CC.S.F01 && CC.S.A0001 + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -171,7 +171,7 @@ tests: value: 160 - label: "TH reads CurrentSaturation attribute from DUT" - PICS: CC.S.F01 && CC.S.A0001 + PICS: CC.S.F00 && CC.S.A0001 command: "readAttribute" attribute: "CurrentSaturation" response: @@ -182,6 +182,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -189,8 +190,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml index 226bd43f7a7df2..8eee37f9bf79f8 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml @@ -549,6 +549,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 1 constraints: minValue: 0 maxValue: 2 @@ -556,8 +557,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 1 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_2.yaml index 94031eaaea7983..260b9d9b49b020 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_5_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_5_2.yaml @@ -198,6 +198,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 1 constraints: minValue: 0 maxValue: 2 @@ -205,8 +206,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 1 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml index 68de5492f19ed1..d8c70d8aff562a 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml @@ -101,8 +101,8 @@ tests: attribute: "CurrentX" response: constraints: - minValue: 19500 - maxValue: 26500 + minValue: 13000 + maxValue: 33000 - label: "TH reads CurrentY attribute from DUT" command: "readAttribute" @@ -110,8 +110,8 @@ tests: attribute: "CurrentY" response: constraints: - minValue: 14500 - maxValue: 19500 + minValue: 14000 + maxValue: 20000 - label: "Wait 10s" cluster: "DelayCommands" @@ -127,8 +127,8 @@ tests: attribute: "CurrentX" response: constraints: - minValue: 13000 - maxValue: 15000 + minValue: 11050 + maxValue: 14950 - label: "TH reads CurrentY attribute from DUT" command: "readAttribute" @@ -136,8 +136,8 @@ tests: attribute: "CurrentY" response: constraints: - minValue: 14000 - maxValue: 16000 + minValue: 11900 + maxValue: 16100 - label: "Wait 5s" cluster: "DelayCommands" @@ -166,6 +166,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 1 constraints: minValue: 0 maxValue: 2 @@ -173,8 +174,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 1 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml index 32f47357b30fc3..3c94e22d8b3e91 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml @@ -188,6 +188,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 2 constraints: minValue: 0 maxValue: 2 @@ -195,8 +196,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F04 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 2 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml index f15456a2053583..ef054b7b499ced 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml @@ -343,6 +343,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 2 constraints: minValue: 0 maxValue: 2 @@ -350,8 +351,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F04 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 2 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_3.yaml index 4d88f7fd6dfb7d..8a6858324c0c3e 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_6_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_6_3.yaml @@ -266,6 +266,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 2 constraints: minValue: 0 maxValue: 2 @@ -273,8 +274,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F04 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 2 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml index 6908af2c2debcc..7ea4d26afc92f9 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml @@ -489,6 +489,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -496,8 +497,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 3 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_2.yaml index 2e42a32b3a3df7..9e8234d2392efd 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_7_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_7_2.yaml @@ -302,6 +302,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -309,8 +310,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 3 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml index f8ff877b455b19..7700545fb42f2b 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml @@ -268,6 +268,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -275,8 +276,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 3 constraints: minValue: 0 maxValue: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml index a41127e7f4bfaf..6b22c9a9c40bae 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml @@ -184,6 +184,7 @@ tests: command: "readAttribute" attribute: "ColorMode" response: + value: 0 constraints: minValue: 0 maxValue: 2 @@ -191,8 +192,9 @@ tests: - label: "TH reads EnhancedColorMode attribute from DUT" PICS: CC.S.F00 && CC.S.A4001 command: "readAttribute" - attribute: "ColorMode" + attribute: "EnhancedColorMode" response: + value: 3 constraints: minValue: 0 maxValue: 3 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 a988c23d18dc14..47bde0e0fcf924 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 @@ -49,15 +49,23 @@ tests: constraints: type: bitmap32 - - label: "Read the global attribute: FeatureMap" - PICS: CHANNEL.S.CL || CHANNEL.S.LI + - label: "Given CHANNEL.S.CL) ensure featuremap has the correct bit set" + PICS: CHANNEL.S.CL + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "Given CHANNEL.S.LI) ensure featuremap has the correct bit set" + PICS: CHANNEL.S.LI command: "readAttribute" attribute: "FeatureMap" response: constraints: type: bitmap32 - minValue: 1 - maxValue: 3 + hasMasksSet: [0x2] - label: "Read the global attribute: AttributeList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml index 5a5a0d81c960d6..7bada371bcb4cc 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml @@ -28,19 +28,19 @@ config: tests: - label: "Commission TH and DUT on Thread setup" verification: | - verification step to be updated. + disabled: true - label: "The cluster Identifier 49 (0x0031) is present in the ServerList attribute" verification: | - verification step to be updated. + disabled: true - label: "The FeatureMap attribute value is 2" verification: | - verification step to be updated. + disabled: true - label: 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 b24690a2ab0d75..01db6b7c90cbb2 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 @@ -50,15 +50,25 @@ tests: constraints: type: bitmap32 - - label: "Read the global attribute: FeatureMap" - PICS: CONTENTLAUNCHER.S.CS || CONTENTLAUNCHER.S.UP + - label: + "Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set" + PICS: CONTENTLAUNCHER.S.CS + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: + "Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set" + PICS: CONTENTLAUNCHER.S.UP command: "readAttribute" attribute: "FeatureMap" response: constraints: type: bitmap32 - minValue: 1 - maxValue: 3 + hasMasksSet: [0x2] - label: "Read the global attribute: AttributeList" command: "readAttribute" 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 ee795cf0cfdb43..06bbd721bd93cb 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 @@ -41,13 +41,31 @@ tests: type: int16u - label: "TH reads the FeatureMap from DUT" + PICS: " !DGETH.S.F00 && !DGETH.S.F01" command: "readAttribute" attribute: "FeatureMap" response: + value: 0 constraints: type: bitmap32 - minValue: 0 - maxValue: 3 + + - label: "Given DGETH.S.F00 ensure featuremap has the correct bit set" + PICS: DGETH.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "Given DGETH.S.F01 ensure featuremap has the correct bit set" + PICS: DGETH.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] - label: "TH reads AttributeList from DUT" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml index 90db2c6c58d2fb..081735de1e0924 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml @@ -27,12 +27,7 @@ config: tests: - label: "Commission DUT to TH" verification: | - verification step to be updated. - disabled: true - - label: "Commission DUT to TH" - verification: | - verification step to be updated. disabled: true - label: "TH reads TestEventTriggersEnabled attribute value" 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 a48e928599b156..88a66a5ed71291 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 @@ -41,13 +41,59 @@ tests: type: int16u - label: "TH reads the FeatureMap from DUT" + PICS: + " !DGTHREAD.S.F00 && !DGTHREAD.S.F00 && !DGTHREAD.S.F00 && + !DGTHREAD.S.F00 " command: "readAttribute" attribute: "FeatureMap" response: + value: 0 constraints: type: bitmap32 - minValue: 0 - maxValue: 31 + + - label: + "Given DGTHREAD.S.F00(PKTCNT) ensure featuremap has the correct bit + set" + PICS: DGETH.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: + "Given DGTHREAD.S.F01(ERRCNT) ensure featuremap has the correct bit + set" + PICS: DGETH.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] + + - label: + "Given DGTHREAD.S.F02(MLECNT) ensure featuremap has the correct bit + set" + PICS: DGETH.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x4] + + - label: + "Given DGTHREAD.S.F03(MACCNT) ensure featuremap has the correct bit + set" + PICS: DGETH.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x8] - label: "TH reads AttributeList from DUT" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml index 6e34679157e549..f4ebc104b3b72a 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml @@ -231,16 +231,95 @@ tests: minValue: 1 maxValue: 255 - - label: "TH sends the unlock Door command to the DUT with invalid PINCode" - PICS: DRLK.S.A0030 - command: "UnlockDoor" - timedInteractionTimeoutMs: 1000 + #currently for loop is not implemented in yaml framework so converted this step as user prompt + - label: + "TH sends an Unlock Door Command from the DUT with invalid PINCode. + Repeat this step PIXIT.DRLK.WrongCodeEntryLimit times and Verify that + DUT sends failure response to the TH" + verification: | + ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 1234568 + + Verify " DUT sends failure response" on the TH(Chip-tool) Log: + + [1659013993.892445][25432:25437] CHIP:DMG: CommandPathIB = + [1659013993.892496][25432:25437] CHIP:DMG: { + [1659013993.892546][25432:25437] CHIP:DMG: EndpointId = 0x1, + [1659013993.892597][25432:25437] CHIP:DMG: ClusterId = 0x101, + [1659013993.892647][25432:25437] CHIP:DMG: CommandId = 0x1, + [1659013993.892694][25432:25437] CHIP:DMG: }, + [1659013993.892747][25432:25437] CHIP:DMG: + [1659013993.892791][25432:25437] CHIP:DMG: StatusIB = + [1659013993.892840][25432:25437] CHIP:DMG: { + [1659013993.892890][25432:25437] CHIP:DMG: status = 0x01 (FAILURE), + [1659013993.892938][25432:25437] CHIP:DMG: }, + [1659013993.892987][25432:25437] CHIP:DMG: + [1659013993.893029][25432:25437] CHIP:DMG: }, + [1659013993.893076][25432:25437] CHIP:DMG: + [1659013993.893105][25432:25437] CHIP:DMG: }, + [1659013993.893147][25432:25437] CHIP:DMG: + [1659013993.893173][25432:25437] CHIP:DMG: ], + [1659013993.893203][25432:25437] CHIP:DMG: + [1659013993.893227][25432:25437] CHIP:DMG: InteractionModelRevision = 1 + [1659013993.893251][25432:25437] CHIP:DMG: }, + [1659013993.893310][25432:25437] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0001 Status=0x1 + [1659013993.893344][25432:25437] CHIP:TOO: Error: IM Error 0x00000501: General error: 0x01 (FAILURE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && DRLK.S.A0030 arguments: values: - - name: "PINCode" - value: "1234568" + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH sends an Unlock Door Command from User1 to the DUT with the valid + PINCode and verify the DUT response" + verification: | + ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 123456 + + Verify " DUT sends failure response" on the TH(Chip-tool) Log: + + [1659517923.875822][33902:33907] CHIP:DMG: StatusIB = + [1659517923.875858][33902:33907] CHIP:DMG: { + [1659517923.875894][33902:33907] CHIP:DMG: status = 0x01 (FAILURE), + [1659517923.876008][33902:33907] CHIP:DMG: }, + [1659517923.876048][33902:33907] CHIP:DMG: + [1659517923.876079][33902:33907] CHIP:DMG: }, + [1659517923.876116][33902:33907] CHIP:DMG: + [1659517923.876145][33902:33907] CHIP:DMG: }, + [1659517923.876178][33902:33907] CHIP:DMG: + [1659517923.876233][33902:33907] CHIP:DMG: ], + [1659517923.876266][33902:33907] CHIP:DMG: + [1659517923.876290][33902:33907] CHIP:DMG: InteractionModelRevision = 1 + [1659517923.876395][33902:33907] CHIP:DMG: }, + [1659517923.876460][33902:33907] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0001 Status=0x1 + [1659517923.876495][33902:33907] CHIP:TOO: Error: IM Error 0x00000501: General error: 0x01 (FAILURE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && DRLK.S.A0030 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: "TH reads the UserCodeTemporaryDisableTime attribute from the DUT" + PICS: DRLK.S.A0031 + command: "readAttribute" + attribute: "UserCodeTemporaryDisableTime" response: - error: FAILURE + value: 10 + + - label: "Wait 15000ms" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 15000 - label: "TH sends the unlock Door command to the DUT with valid PINCode" PICS: DRLK.S.A0030 diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml index 72b9721f2ba73f..5a0c4e3546e357 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml @@ -126,15 +126,6 @@ tests: - name: "nextCredentialIndex" value: null - - label: "Precondition: Door is in locked state" - PICS: DRLK.S.C00.Rsp - command: "LockDoor" - timedInteractionTimeoutMs: 1000 - arguments: - values: - - name: "PINCode" - value: "123456" - - label: "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT" diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_4.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_4.yaml index cb40729ce5accd..30018a13b37fc9 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_4.yaml @@ -23,7 +23,6 @@ config: nodeId: 0x12344321 cluster: "Door Lock" endpoint: 1 - timeout: 200 tests: - label: "Wait for the commissioned device to be retrieved" @@ -128,40 +127,15 @@ tests: - name: "nextCredentialIndex" value: null - - label: "Precondition: Door is in locked state" - PICS: DRLK.S.C00.Rsp - command: "LockDoor" - timedInteractionTimeoutMs: 1000 - arguments: - values: - - name: "PINCode" - value: "123456" - - - label: "TH writes AutoRelockTime attribute value as 10 seconds on the DUT" - PICS: DRLK.S.A0023 && PICS_SDK_CI_ONLY - command: "writeAttribute" - attribute: "AutoRelockTime" - arguments: - value: 10 - - label: "TH writes AutoRelockTime attribute value as 60 seconds on the DUT" - PICS: DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP + PICS: DRLK.S.A0023 command: "writeAttribute" attribute: "AutoRelockTime" arguments: value: 60 - - label: "TH writes AutoRelockTime attribute value as 10 seconds on the DUT" - PICS: "!DRLK.S.A0023 && PICS_SDK_CI_ONLY" - command: "writeAttribute" - attribute: "AutoRelockTime" - arguments: - value: 10 - response: - error: UNSUPPORTED_WRITE - - label: "TH writes AutoRelockTime attribute value as 60 seconds on the DUT" - PICS: "!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP" + PICS: " !DRLK.S.A0023 " command: "writeAttribute" attribute: "AutoRelockTime" arguments: @@ -169,19 +143,8 @@ tests: response: error: UNSUPPORTED_WRITE - - label: "TH sends the unlock with Timeout command to the DUT " - PICS: DRLK.S.C03.Rsp && PICS_SDK_CI_ONLY - command: "UnlockWithTimeout" - timedInteractionTimeoutMs: 1000 - arguments: - values: - - name: "Timeout" - value: 10 - - name: "PINCode" - value: "123456" - - - label: "TH sends the unlock with Timeout command to the DUT " - PICS: DRLK.S.C03.Rsp && PICS_SKIP_SAMPLE_APP + - label: "TH sends the Unlock with Timeout argument value as 60 seconds" + PICS: DRLK.S.C03.Rsp command: "UnlockWithTimeout" timedInteractionTimeoutMs: 1000 arguments: @@ -191,40 +154,17 @@ tests: - name: "PINCode" value: "123456" - - label: "TH reads AutoRelockTime attribute from DUT" - PICS: DRLK.S.A0023 && PICS_SDK_CI_ONLY - command: "readAttribute" - attribute: "AutoRelockTime" - response: - value: 10 - - - label: "TH reads AutoRelockTime attribute from DUT" - PICS: DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP - command: "readAttribute" - attribute: "AutoRelockTime" - response: - value: 60 - - - label: "Wait 10000ms" - PICS: PICS_SDK_CI_ONLY - cluster: "DelayCommands" - command: "WaitForMs" - arguments: - values: - - name: "ms" - value: 10000 - - - label: "Wait 70000ms" - PICS: PICS_SKIP_SAMPLE_APP + - label: "Wait 60s" + PICS: DRLK.S.C03.Rsp cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 70000 + value: 60000 - label: "TH reads LockState attribute" - PICS: DRLK.S.A0000 + PICS: DRLK.S.A0000 && DRLK.S.C03.Rsp command: "readAttribute" attribute: "LockState" response: diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml index f0e9c1dea26fe8..7143b563189df8 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml @@ -86,7 +86,7 @@ tests: - label: "TH reads NumberOfTotalUsersSupported attribute and saves for future use." - PICS: DRLK.C.F08 && DRLK.S.A0011 + PICS: DRLK.S.F08 && DRLK.S.A0011 command: "readAttribute" attribute: "NumberOfTotalUsersSupported" response: @@ -156,7 +156,7 @@ tests: - name: "credentialData" value: "4321" - name: "userIndex" - value: 2 + value: null - name: "userStatus" value: 5 - name: "userType" @@ -183,7 +183,7 @@ tests: - name: "credentialData" value: "123456" - name: "userIndex" - value: 2 + value: null - name: "userStatus" value: null - name: "userType" @@ -211,7 +211,7 @@ tests: - name: "credentialData" value: "123456" - name: "userIndex" - value: 2 + value: 1 - name: "userStatus" value: null - name: "userType" @@ -260,11 +260,11 @@ tests: - name: "operationType" value: 0 - name: "credential" - value: { CredentialType: 1, CredentialIndex: 3 } + value: { CredentialType: 1, CredentialIndex: 1 } - name: "credentialData" value: "123456" - name: "userIndex" - value: 3 + value: 1 - name: "userStatus" value: null - name: "userType" @@ -276,7 +276,7 @@ tests: - name: "userIndex" value: null - name: "nextCredentialIndex" - value: 4 + value: 2 #Issue 19990 expected response OCCUPIED, but CHIP Tool Verification Steps shows status: 2 fix script once the issue is fixed. - label: @@ -317,7 +317,7 @@ tests: - name: "credentialData" value: "123456" - name: "userIndex" - value: 2 + value: 1 - name: "userStatus" value: null - name: "userType" @@ -386,6 +386,7 @@ tests: value: null - label: "TH sends Set User Command to DUT" + PICS: DRLK.S.F08 && DRLK.S.C1a.Rsp command: "SetUser" timedInteractionTimeoutMs: 10000 arguments: @@ -397,7 +398,7 @@ tests: - name: "userName" value: "xxx" - name: "userUniqueId" - value: 6452 + value: "6452" - name: "userStatus" value: 1 - name: "userType" 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 dc5149bf85842e..4d7869574bffa7 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 @@ -48,14 +48,14 @@ tests: constraints: type: bitmap32 - - label: "TH reads the FeatureMap from DUT" + - label: "TH reads the FeatureMap(G.S.F00) from DUT" PICS: G.S.F00 command: "readAttribute" attribute: "FeatureMap" response: - value: 1 constraints: type: bitmap32 + hasMasksSet: [0x1] - label: "TH reads AttributeList from DUT" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_IDM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_1_1.yaml index bf513be2434f7e..f437d4b8518b07 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_1_1.yaml @@ -67,7 +67,7 @@ tests: [1655717373.047599][10909:10909] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o [1655717373.047665][10909:10909] CHIP:DMG: AccessControl: allowed - On DUT as a client side, verify that TH all-clusters-app sent success response + If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response [1657867897.521090][2728:2733] CHIP:DMG: }, [1657867897.521162][2728:2733] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 @@ -129,8 +129,7 @@ tests: [1655717456.106904][10909:10909] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o [1655717456.106954][10909:10909] CHIP:DMG: AccessControl: allowed - - On DUT as a client side, verify that TH all-clusters-app sent success response + If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response [1657868210.442226][2746:2751] CHIP:DMG: [1657868210.442265][2746:2751] CHIP:DMG: InteractionModelRevision = 1 [1657868210.442306][2746:2751] CHIP:DMG: }, diff --git a/src/app/tests/suites/certification/Test_TC_IDM_1_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_1_2.yaml index ee1bd01744fa37..df8a4c473fb01b 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_1_2.yaml @@ -32,7 +32,7 @@ tests: ./chip-tool onoff on 1 20 - On TH, verify DUT responsds as unsuppported endpoint for the data sent in the above command + On TH(chip-tool), verify DUT responsds as unsuppported endpoint for the data sent in the above command [1655718065.882392][4587:4592] CHIP:DMG: Received Command Response Status for Endpoint=20 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x7f [1655718065.882440][4587:4592] CHIP:TOO: Error: IM Error 0x0000057F: General error: 0x7f (UNSUPPORTED_ENDPOINT) @@ -47,7 +47,7 @@ tests: ./chip-tool any command-by-id 0x0003 0 1 1 2 - On TH, verify DUT responsds as unsuppported cluster for the data sent in the above command + On TH(chip-tool), verify DUT responsds as unsuppported cluster for the data sent in the above command [1655718144.692503][4602:4607] CHIP:DMG: Received Command Response Status for Endpoint=2 Cluster=0x0000_0003 Command=0x0000_0000 Status=0xc3 [1655718144.692570][4602:4607] CHIP:TOO: Error: IM Error 0x000005C3: General error: 0xc3 (UNSUPPORTED_CLUSTER) @@ -62,7 +62,7 @@ tests: ./chip-tool any command-by-id 0x0003 3 1 1 0 - On TH, verify DUT responsds as unsuppported command for the data sent in the above command + On TH(chip-tool), verify DUT responsds as unsuppported command for the data sent in the above command [1654076838.936184][13752:13757] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0003 Command=0x0000_0003 Status=0x81 [1654076838.936215][13752:13757] CHIP:TOO: Error: IM Error 0x00000581: General error: 0x81 (UNSUPPORTED_COMMAND) @@ -77,7 +77,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. - To Setup the TH such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command + To Setup the TH(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except identify cluster command if try to send any other command will get status as unsupported access. ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]" 1 0 @@ -128,7 +128,7 @@ tests: ./chip-tool onoff on 1 1 - On TH, verify DUT responsds as UNSUPPORTED_ACCESS for the data sent in the above command + On TH(chip-tool), verify DUT responsds as UNSUPPORTED_ACCESS for the data sent in the above command [1657869005.834700][2816:2821] CHIP:DMG: }, [1657869005.834790][2816:2821] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x7e [1657869005.834841][2816:2821] CHIP:TOO: Error: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS) @@ -147,7 +147,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. - To Setup the TH such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command + To Setup the TH(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except identify cluster command if try to send any other command will get status as unsupported access. ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]" 1 0 @@ -197,7 +197,7 @@ tests: ./chip-tool generalcommissioning commissioning-complete 1 0 - On TH, verify DUT responsds as UNSUPPORTED_ACCESS for the data sent in the above command + On TH(chip-tool), verify DUT responsds as UNSUPPORTED_ACCESS for the data sent in the above command [1659420197.313287][1960:1965] CHIP:DMG: }, [1659420197.313357][1960:1965] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0004 Status=0x7e [1659420197.313397][1960:1965] CHIP:TOO: Error: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS) @@ -217,7 +217,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. sudo ./chip-tool generalcommissioning arm-fail-safe 1000 1 1 0 - On TH, Verify DUT generates an InvokeResponseIB with a valid CommandDataIB and + On TH(chip-tool), Verify DUT generates an InvokeResponseIB with a valid CommandDataIB and sends it to the TH for the data sent in the above command [1657091692.258118][5248:5253] CHIP:DMG: InvokeResponseMessage = @@ -274,7 +274,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. - To Setup the TH such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command + To Setup the TH(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command Here by sending below mentioned ACL command giving only access for identify cluster(3), So except identify cluster command if try to send any other command will get status as unsupported access. ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]" 1 0 @@ -324,7 +324,7 @@ tests: ./chip-tool onoff on 1 1 --timedInteractionTimeoutMs 100 - On TH, verify DUT responsds as UNSUPPORTED_ACCESS for the data sent in the above command + On TH(chip-tool), verify DUT responsds as UNSUPPORTED_ACCESS for the data sent in the above command [1659422136.353455][2014:2019] CHIP:DMG: [1659422136.353482][2014:2019] CHIP:DMG: InteractionModelRevision = 1 [1659422136.353510][2014:2019] CHIP:DMG: }, @@ -354,7 +354,7 @@ tests: ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 - On TH, verify DUT responsds as NEEDS_TIMED_INTERACTION for the data sent in the above command + On TH(chip-tool), verify DUT responsds as NEEDS_TIMED_INTERACTION for the data sent in the above command [1654077001.606235][13788:13793] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0xc6 [1654077001.606268][13788:13793] CHIP:TOO: Error: IM Error 0x000005C6: General error: 0xc6 (NEEDS_TIMED_INTERACTION) diff --git a/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml index b3797d4f6c7d2f..f3e052db3241b3 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml @@ -584,6 +584,8 @@ tests: PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_FloatingPoint verification: | DUT implementation required to verify read an attribute of data type Float + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml index 398e1590e5bbaf..4feb09f5d728d1 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml @@ -34,7 +34,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. sudo ./chip-tool identify read identify-time 1 1 - Verify on TH , DUT responds the right attribute value for above command + Verify on TH(chip-tool) , DUT responds the right attribute value for above command [1655727338.260966][5267:5272] CHIP:DMG: ReportDataMessage = [1655727338.261012][5267:5272] CHIP:DMG: { @@ -78,7 +78,7 @@ tests: sudo ./chip-tool any read-by-id 0x03 0xFFFFFFFF 1 0 - on TH , Verify that DUT responds the right attribute value for above command + on TH(chip-tool), Verify that DUT responds the right attribute value for above command [1655727546.354466][5286:5291] CHIP:DMG: [1655727546.354512][5286:5291] CHIP:DMG: SuppressResponse = true, @@ -120,7 +120,7 @@ tests: sudo ./chip-tool any read-by-id 0x03 0x00 1 0xFFFF - Verify on TH , DUT responds the right attribute value for above command + Verify on TH(chip-tool) , DUT responds the right attribute value for above command [1655727602.117907][5301:5306] CHIP:EM: Removed CHIP MessageCounter:97487240 from RetransTable on exchange 58891i [1655727602.117985][5301:5306] CHIP:DMG: ReportDataMessage = @@ -184,7 +184,7 @@ tests: sudo ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFD 1 0 - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool), DUT is responds right attribute value for above command [1655727656.941694][5312:5317] CHIP:DMG: SuppressResponse = true, @@ -255,7 +255,7 @@ tests: sudo ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF --timeout 40 - received report data message has all the right attribute values from DUT to TH + received report data message has all the right attribute values from DUT to TH(chip-tool) disabled: true - label: @@ -268,7 +268,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. sudo ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFD 1 0xFFFF Here Verifying cluster revision global attribute from all cluster for all endpoint. - received report data message has all the right attribute values from DUT to TH + received report data message has all the right attribute values from DUT to TH(chip-tool) disabled: true - label: @@ -280,7 +280,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. sudo ./chip-tool any read-by-id 0x03 0xFFFFFFFF 1 0xFFFF - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool) , DUT is responds right attribute value for above command [1653629930.057852][8778:8783] CHIP:DMG: } [1653629930.058739][8778:8783] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 2065044836 @@ -342,7 +342,7 @@ tests: sudo ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF 1 1 - received report data message has all the right attribute values from DUT to TH + received report data message has all the right attribute values from DUT to TH(chip-tool) disabled: true - label: @@ -354,7 +354,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. sudo ./chip-tool onoff read on-off 1 1 - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool) , DUT is responds right attribute value for above command [1653630222.692433][8886:8891] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 312829505 [1653630222.692468][8886:8891] CHIP:TOO: OnOff: FALSE @@ -371,7 +371,7 @@ tests: sudo ./chip-tool modeselect read description 1 1 - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool) , DUT is responds right attribute value for above command [1653630307.924844][8910:8915] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000 DataVersion: 722071058 [1653630307.924909][8910:8915] CHIP:TOO: Description: Coffee @@ -387,7 +387,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. sudo ./chip-tool any read-by-id 0x3 0x1 1 0 - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool), DUT is responds right attribute value for above command [1653630355.834677][8923:8928] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 2065044836 [1653630355.834735][8923:8928] CHIP:TOO: identify type: 2 @@ -404,7 +404,7 @@ tests: sudo ./chip-tool pressuremeasurement read measured-value 1 1 - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool), DUT is responds right attribute value for above command [1653630404.570993][8934:8939] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0403 Attribute 0x0000_0000 DataVersion: 3770689028 [1653630404.571019][8934:8939] CHIP:TOO: MeasuredValue: 0 @@ -418,6 +418,8 @@ tests: PICS: MCORE.IDM.S.Attribute.DataType_FloatingPoint verification: | DUT implementation required to verify read an attribute of data type Float + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -430,7 +432,7 @@ tests: sudo ./chip-tool operationalcredentials read trusted-root-certificates 1 0 - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool) , DUT is responds right attribute value for above command [1655729519.609898][5433:5438] CHIP:DMG: } [1655729519.610252][5433:5438] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 2726656324 @@ -449,7 +451,7 @@ tests: sudo ./chip-tool occupancysensing read occupancy-sensor-type 1 1 - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool) , DUT is responds right attribute value for above command [1653630542.619226][9034:9039] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0406 Attribute 0x0000_0001 DataVersion: 3604656322 [1653630542.619277][9034:9039] CHIP:TOO: occupancy sensor type: 0 @@ -465,7 +467,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. sudo ./chip-tool timeformatlocalization read supported-calendar-types 1 0 - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool) , DUT is responds right attribute value for above command [1653630857.535521][9171:9176] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0002 DataVersion: 139938310 [1653630857.535636][9171:9176] CHIP:TOO: SupportedCalendarTypes: 12 entries @@ -494,7 +496,7 @@ tests: sudo ./chip-tool occupancysensing read occupancy-sensor-type 1 1 - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool) , DUT is responds right attribute value for above command [1653630949.025002][9198:9203] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0406 Attribute 0x0000_0001 DataVersion: 3604656322 [1653630949.025066][9198:9203] CHIP:TOO: occupancy sensor type: 0 [1653630949.025181][9198:9203] CHIP:EM: Sending Standalone Ack for MessageCounter:1638675 on exchange 63250i @@ -531,7 +533,7 @@ tests: sudo ./chip-tool any read-by-id 0x3 0x1 1 8 - Verify on TH , DUT is responds status code UNSUPPORTED_ENDPOINT for above command + Verify on TH(chip-tool) , DUT is responds status code UNSUPPORTED_ENDPOINT for above command [1653631094.367299][9229:9234] CHIP:DMG: SuppressResponse = true, [1653631094.367315][9229:9234] CHIP:DMG: InteractionModelRevision = 1 @@ -548,7 +550,7 @@ tests: sudo ./chip-tool any read-by-id 0x3 0x1 1 2 - Verify on TH , DUT is responds status code UNSUPPORTED_CLUSTER for above command + Verify on TH(chip-tool) , DUT is responds status code UNSUPPORTED_CLUSTER for above command [1653631187.121757][9257:9262] CHIP:DMG: SuppressResponse = true, [1653631187.121774][9257:9262] CHIP:DMG: InteractionModelRevision = 1 @@ -565,7 +567,7 @@ tests: sudo ./chip-tool thermostat read outdoor-temperature 1 1 - Verify on TH , DUT is responds status code UNSUPPORTED_ATTRIBUTE for above command + Verify on TH(chip-tool) , DUT is responds status code UNSUPPORTED_ATTRIBUTE for above command [1653631289.755681][9274:9279] CHIP:DMG: SuppressResponse = true, [1653631289.755689][9274:9279] CHIP:DMG: InteractionModelRevision = 1 @@ -579,6 +581,7 @@ tests: which is not readable. DUT responds with the report data action." verification: | DUT implementation required to verify read an attribute which is not having a read access + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -589,7 +592,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. - To Setup the TH such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command + To Setup the TH(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except identify cluster command if try to send any other command will get status as unsupported access. ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]" 1 0 @@ -660,7 +663,7 @@ tests: verification: | The cluster used in the below command is an example, User can use any supported chip cluster. - Verify on TH , DUT is responds right attribute value for below command for all the 3 times. + Verify on TH(chip-tool) , DUT is responds right attribute value for below command for all the 3 times. sudo ./chip-tool identify read identify-time 1 1 [1653631418.770328][9322:9327] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 @@ -718,7 +721,7 @@ tests: [1653633746.448576][9791:9796] CHIP:TOO: identify time: 0 [1653633746.448656][9791:9796] CHIP:EM: Sending Standalone Ack for MessageCounter:16255130 on exchange 13134i - Verify on TH that DUT should not send a report data action with the attribute value to the TH + Verify on TH(chip-tool) that DUT should not send a report data action with the attribute value to the TH sudo ./chip-tool identify read identify-time 1 1 --data-version 0xd7cb76c6 [1653633771.729259][9806:9811] CHIP:DMG: ReportDataMessage = @@ -740,7 +743,7 @@ tests: verification: | The cluster used in the below command is an example, User can use any supported chip cluster. - Verify on TH , DUT is responds right attribute value for above command + Verify on TH(chip-tool) , DUT is responds right attribute value for above command sudo ./chip-tool identify read identify-time 1 1 @@ -805,7 +808,7 @@ tests: sudo ./chip-tool any read-by-id 0x03 0xFFFFFFFF 1 1 - Verify on TH , DUT is responds right attribute value for below command + Verify on TH(chip-tool), DUT is responds right attribute value for below command [1653633965.092996][9835:9840] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435654 @@ -900,7 +903,7 @@ tests: verification: | The cluster used in the below command is an example, User can use any supported chip cluster. - Verify on TH , DUT is responds right attribute value for below command + Verify on TH(chip-tool) , DUT is responds right attribute value for below command sudo ./chip-tool identify read identify-time 1 1 @@ -972,7 +975,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. - On TH Verify that the DUT sends a report data action with the attribute value from the cluster B to the TH and DUT does not send the attribute value from cluster A + On TH(chip-tool) Verify that the DUT sends a report data action with the attribute value from the cluster B to the TH and DUT does not send the attribute value from cluster A sudo ./chip-tool any read-by-id 0x03 0xFFFFFFFF 1 1 @@ -1034,6 +1037,7 @@ tests: PICS: MCORE.IDM.S.LargeData verification: | DUT implementation required to verify read an attribute which is is larger than 1 MTU(1280 bytes) + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -1046,7 +1050,7 @@ tests: ./chip-tool any read-by-id 0xFFFFFFFF 0x0 1 1 - Verify on TH , DUT is responds right attribute value for below command + Verify on TH(chip-tool) , DUT is responds right attribute value for below command [1656504191.589526][2805:2810] CHIP:EM: Removed CHIP MessageCounter:183619379 from RetransTable on exchange 22711i [1656504191.589590][2805:2810] CHIP:DMG: StatusResponseMessage = @@ -1067,7 +1071,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. ./chip-tool any read-by-id 0xFFFFFFFF 0x0 1 0xFFFF - Verify on TH , DUT is sends the error message above command + Verify on TH(chip-tool) , DUT is sends the error message above command [1656503822.388967][2787:2792] CHIP:DMG: StatusResponseMessage = [1656503822.389027][2787:2792] CHIP:DMG: { [1656503822.389066][2787:2792] CHIP:DMG: Status = 0x80 (INVALID_ACTION), @@ -1087,7 +1091,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. - To Setup the TH such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command + To Setup the TH(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except identify cluster command if try to send any other command will get status as unsupported access. ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]" 1 0 @@ -1200,5 +1204,5 @@ tests: ./chip-tool any read-all 0xFFFFFFFF,0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF,0xFFFF - on TH verify that DUT sends back data of all attributes and events that the TH has access to + on TH(chip-tool) verify that DUT sends back data of all attributes and events that the TH has access to disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml index 2252e4fa8d01bb..e331b6bd425b80 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml @@ -428,6 +428,8 @@ tests: PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_SignedInteger verification: | DUT implementation required to verify write an attribute of data type signed integer. + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -436,6 +438,8 @@ tests: PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_FloatingPoint verification: | DUT implementation required to verify write an attribute of data type float + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -444,6 +448,8 @@ tests: PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_OctetString verification: | DUT implementation required to verify write an attribute of data type Octet String + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -452,6 +458,8 @@ tests: PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Struct verification: | DUT implementation required to verify write an attribute ofdata type Struct + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -460,6 +468,8 @@ tests: PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_List verification: | DUT implementation required to verify write an attribute of data type List + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -651,6 +661,8 @@ tests: DUT implementation required to verify write an attribute which is is larger than 1 MTU(1280 bytes) Here is an example command to verify the write functionality. User must choose an attribute which has large list of attribute data. ./chip-tool basic write node-label node 1 0 + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_IDM_3_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_3_2.yaml index d76e212c4c62ee..d7fe32d542c34d 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_3_2.yaml @@ -31,41 +31,39 @@ tests: verification: | The cluster used in the below command is an example, User can use any supported chip cluster. - - ./chip-tool levelcontrol write on-level 2 1 1 - Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. - + On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. [1653026683.396666][6229:6234] CHIP:DMG: WriteResponseMessage = [1653026683.396685][6229:6234] CHIP:DMG: { - [1653026683.396703][6229:6234] CHIP:DMG: AttributeStatusIBs = - [1653026683.396732][6229:6234] CHIP:DMG: [ - [1653026683.396749][6229:6234] CHIP:DMG: AttributeStatusIB = - [1653026683.396773][6229:6234] CHIP:DMG: { - [1653026683.396790][6229:6234] CHIP:DMG: AttributePathIB = - [1653026683.396813][6229:6234] CHIP:DMG: { - [1653026683.396835][6229:6234] CHIP:DMG: Endpoint = 0x1, - [1653026683.396858][6229:6234] CHIP:DMG: Cluster = 0x8, - [1653026683.396881][6229:6234] CHIP:DMG: Attribute = 0x0000_0011, - [1653026683.396900][6229:6234] CHIP:DMG: } + [1653026683.396703][6229:6234] CHIP:DMG: AttributeStatusIBs = + [1653026683.396732][6229:6234] CHIP:DMG: [ + [1653026683.396749][6229:6234] CHIP:DMG: AttributeStatusIB = + [1653026683.396773][6229:6234] CHIP:DMG: { + [1653026683.396790][6229:6234] CHIP:DMG: AttributePathIB = + [1653026683.396813][6229:6234] CHIP:DMG: { + [1653026683.396835][6229:6234] CHIP:DMG: Endpoint = 0x1, + [1653026683.396858][6229:6234] CHIP:DMG: Cluster = 0x8, + [1653026683.396881][6229:6234] CHIP:DMG: Attribute = 0x0000_0011, + [1653026683.396900][6229:6234] CHIP:DMG: } [1653026683.396929][6229:6234] CHIP:DMG: - [1653026683.396947][6229:6234] CHIP:DMG: StatusIB = - [1653026683.396970][6229:6234] CHIP:DMG: { - [1653026683.396991][6229:6234] CHIP:DMG: status = 0x00 (SUCCESS), - [1653026683.397011][6229:6234] CHIP:DMG: }, + [1653026683.396947][6229:6234] CHIP:DMG: StatusIB = + [1653026683.396970][6229:6234] CHIP:DMG: { + [1653026683.396991][6229:6234] CHIP:DMG: status = 0x00 (SUCCESS), + [1653026683.397011][6229:6234] CHIP:DMG: }, [1653026683.397034][6229:6234] CHIP:DMG: - [1653026683.397052][6229:6234] CHIP:DMG: }, + [1653026683.397052][6229:6234] CHIP:DMG: }, [1653026683.397078][6229:6234] CHIP:DMG: - [1653026683.397093][6229:6234] CHIP:DMG: ], + [1653026683.397093][6229:6234] CHIP:DMG: ], [1653026683.397121][6229:6234] CHIP:DMG: - [1653026683.397138][6229:6234] CHIP:DMG: InteractionModelRevision = 1 + [1653026683.397138][6229:6234] CHIP:DMG: InteractionModelRevision = 1 [1653026683.397155][6229:6234] CHIP:DMG: } ./chip-tool levelcontrol read on-level 1 1 + On TH, verify the attribute value that was modified in above step [1655200943.824948][3523:3528] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3958539601 - [1655200943.825056][3523:3528] CHIP:TOO: on level: 2 + [1655200943.825056][3523:3528] CHIP:TOO: on level: 2 [1655200943.825157][3523:3528] CHIP:EM: Sending Standalone Ack for MessageCounter:244110098 on exchange 12829i disabled: true @@ -86,39 +84,41 @@ tests: sudo ./chip-tool basic write local-config-disabled 1 1 0 - Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. + + On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. + [1655201045.952849][3550:3555] CHIP:DMG: WriteResponseMessage = [1655201045.952886][3550:3555] CHIP:DMG: { - [1655201045.952916][3550:3555] CHIP:DMG: AttributeStatusIBs = - [1655201045.952960][3550:3555] CHIP:DMG: [ - [1655201045.952996][3550:3555] CHIP:DMG: AttributeStatusIB = - [1655201045.953036][3550:3555] CHIP:DMG: { - [1655201045.953076][3550:3555] CHIP:DMG: AttributePathIB = - [1655201045.953122][3550:3555] CHIP:DMG: { - [1655201045.953170][3550:3555] CHIP:DMG: Endpoint = 0x0, - [1655201045.953217][3550:3555] CHIP:DMG: Cluster = 0x28, - [1655201045.953270][3550:3555] CHIP:DMG: Attribute = 0x0000_0010, - [1655201045.953315][3550:3555] CHIP:DMG: } + [1655201045.952916][3550:3555] CHIP:DMG: AttributeStatusIBs = + [1655201045.952960][3550:3555] CHIP:DMG: [ + [1655201045.952996][3550:3555] CHIP:DMG: AttributeStatusIB = + [1655201045.953036][3550:3555] CHIP:DMG: { + [1655201045.953076][3550:3555] CHIP:DMG: AttributePathIB = + [1655201045.953122][3550:3555] CHIP:DMG: { + [1655201045.953170][3550:3555] CHIP:DMG: Endpoint = 0x0, + [1655201045.953217][3550:3555] CHIP:DMG: Cluster = 0x28, + [1655201045.953270][3550:3555] CHIP:DMG: Attribute = 0x0000_0010, + [1655201045.953315][3550:3555] CHIP:DMG: } [1655201045.953365][3550:3555] CHIP:DMG: - [1655201045.953408][3550:3555] CHIP:DMG: StatusIB = - [1655201045.953458][3550:3555] CHIP:DMG: { - [1655201045.953503][3550:3555] CHIP:DMG: status = 0x00 (SUCCESS), - [1655201045.953553][3550:3555] CHIP:DMG: }, + [1655201045.953408][3550:3555] CHIP:DMG: StatusIB = + [1655201045.953458][3550:3555] CHIP:DMG: { + [1655201045.953503][3550:3555] CHIP:DMG: status = 0x00 (SUCCESS), + [1655201045.953553][3550:3555] CHIP:DMG: }, [1655201045.953601][3550:3555] CHIP:DMG: - [1655201045.953663][3550:3555] CHIP:DMG: }, + [1655201045.953663][3550:3555] CHIP:DMG: }, [1655201045.953711][3550:3555] CHIP:DMG: - [1655201045.953745][3550:3555] CHIP:DMG: ], + [1655201045.953745][3550:3555] CHIP:DMG: ], [1655201045.953786][3550:3555] CHIP:DMG: - [1655201045.953821][3550:3555] CHIP:DMG: InteractionModelRevision = 1 + [1655201045.953821][3550:3555] CHIP:DMG: InteractionModelRevision = 1 [1655201045.953857][3550:3555] CHIP:DMG: } [1655201045.953951][3550:3555] CHIP:DMG: WriteClient moving to [AwaitingDe] ./chip-tool basic read local-config-disabled 1 0 - + On TH, verify the attribute value that was modified in above step [1655201064.564646][3556:3561] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 1458477847 - [1655201064.564696][3556:3561] CHIP:TOO: LocalConfigDisabled: TRUE + [1655201064.564696][3556:3561] CHIP:TOO: LocalConfigDisabled: TRUE [1655201064.564812][3556:3561] CHIP:EM: Sending Standalone Ack for MessageCounter:57487809 on exchange 1016i disabled: true @@ -132,38 +132,39 @@ tests: ./chip-tool basic write node-label new 1 0 - Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. + On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and veriffy by sending a ReadRequestMessage to read the value that was modified. [1655806131.663097][7241:7246] CHIP:DMG: WriteClient moving to [ResponseRe] [1655806131.663177][7241:7246] CHIP:DMG: WriteResponseMessage = [1655806131.663215][7241:7246] CHIP:DMG: { - [1655806131.663259][7241:7246] CHIP:DMG: AttributeStatusIBs = - [1655806131.663305][7241:7246] CHIP:DMG: [ - [1655806131.663353][7241:7246] CHIP:DMG: AttributeStatusIB = - [1655806131.663402][7241:7246] CHIP:DMG: { - [1655806131.663453][7241:7246] CHIP:DMG: AttributePathIB = - [1655806131.663511][7241:7246] CHIP:DMG: { - [1655806131.663561][7241:7246] CHIP:DMG: Endpoint = 0x0, - [1655806131.663621][7241:7246] CHIP:DMG: Cluster = 0x28, - [1655806131.663672][7241:7246] CHIP:DMG: Attribute = 0x0000_0005, - [1655806131.663735][7241:7246] CHIP:DMG: } + [1655806131.663259][7241:7246] CHIP:DMG: AttributeStatusIBs = + [1655806131.663305][7241:7246] CHIP:DMG: [ + [1655806131.663353][7241:7246] CHIP:DMG: AttributeStatusIB = + [1655806131.663402][7241:7246] CHIP:DMG: { + [1655806131.663453][7241:7246] CHIP:DMG: AttributePathIB = + [1655806131.663511][7241:7246] CHIP:DMG: { + [1655806131.663561][7241:7246] CHIP:DMG: Endpoint = 0x0, + [1655806131.663621][7241:7246] CHIP:DMG: Cluster = 0x28, + [1655806131.663672][7241:7246] CHIP:DMG: Attribute = 0x0000_0005, + [1655806131.663735][7241:7246] CHIP:DMG: } [1655806131.663791][7241:7246] CHIP:DMG: - [1655806131.663839][7241:7246] CHIP:DMG: StatusIB = - [1655806131.663889][7241:7246] CHIP:DMG: { - [1655806131.663935][7241:7246] CHIP:DMG: status = 0x00 (SUCCESS), - [1655806131.663980][7241:7246] CHIP:DMG: }, + [1655806131.663839][7241:7246] CHIP:DMG: StatusIB = + [1655806131.663889][7241:7246] CHIP:DMG: { + [1655806131.663935][7241:7246] CHIP:DMG: status = 0x00 (SUCCESS), + [1655806131.663980][7241:7246] CHIP:DMG: }, [1655806131.664024][7241:7246] CHIP:DMG: - [1655806131.664063][7241:7246] CHIP:DMG: }, + [1655806131.664063][7241:7246] CHIP:DMG: }, [1655806131.664106][7241:7246] CHIP:DMG: - [1655806131.664141][7241:7246] CHIP:DMG: ], + [1655806131.664141][7241:7246] CHIP:DMG: ], [1655806131.664208][7241:7246] CHIP:DMG: - [1655806131.664243][7241:7246] CHIP:DMG: InteractionModelRevision = 1 + [1655806131.664243][7241:7246] CHIP:DMG: InteractionModelRevision = 1 [1655806131.664278][7241:7246] CHIP:DMG: } [1655806131.664372][7241:7246] CHIP:DMG: WriteClient moving to [AwaitingDe] - ./chip-tool basic read node-label 1 0 + ./chip-tool basic read node-label 1 0 + On TH, verify the attribute value that was modified in above step [1655806189.835517][7250:7255] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 1238808428 - [1655806189.835566][7250:7255] CHIP:TOO: NodeLabel: new + [1655806189.835566][7250:7255] CHIP:TOO: NodeLabel: new [1655806189.835689][7250:7255] CHIP:EM: Sending Standalone Ack for MessageCounter:194887570 on exchange 10216i disabled: true @@ -175,40 +176,39 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. - ./chip-tool any write-by-id 0x0008 0x0010 1 1 1 - - Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. + ./chip-tool any write-by-id 0x0008 0x0010 1 1 1 + On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. [1649152567.635323][16212:16217] CHIP:DMG: WriteResponseMessage = [1649152567.635361][16212:16217] CHIP:DMG: { - [1649152567.635394][16212:16217] CHIP:DMG: AttributeStatusIBs = - [1649152567.635441][16212:16217] CHIP:DMG: [ - [1649152567.635479][16212:16217] CHIP:DMG: AttributeStatusIB = - [1649152567.635524][16212:16217] CHIP:DMG: { - [1649152567.635565][16212:16217] CHIP:DMG: AttributePathIB = - [1649152567.635612][16212:16217] CHIP:DMG: { - [1649152567.635659][16212:16217] CHIP:DMG: Endpoint = 0x1, - [1649152567.635710][16212:16217] CHIP:DMG: Cluster = 0x8, - [1649152567.635761][16212:16217] CHIP:DMG: Attribute = 0x0000_0010, - [1649152567.635812][16212:16217] CHIP:DMG: } + [1649152567.635394][16212:16217] CHIP:DMG: AttributeStatusIBs = + [1649152567.635441][16212:16217] CHIP:DMG: [ + [1649152567.635479][16212:16217] CHIP:DMG: AttributeStatusIB = + [1649152567.635524][16212:16217] CHIP:DMG: { + [1649152567.635565][16212:16217] CHIP:DMG: AttributePathIB = + [1649152567.635612][16212:16217] CHIP:DMG: { + [1649152567.635659][16212:16217] CHIP:DMG: Endpoint = 0x1, + [1649152567.635710][16212:16217] CHIP:DMG: Cluster = 0x8, + [1649152567.635761][16212:16217] CHIP:DMG: Attribute = 0x0000_0010, + [1649152567.635812][16212:16217] CHIP:DMG: } [1649152567.635868][16212:16217] CHIP:DMG: - [1649152567.635911][16212:16217] CHIP:DMG: StatusIB = - [1649152567.635963][16212:16217] CHIP:DMG: { - [1649152567.636009][16212:16217] CHIP:DMG: status = 0x00 (SUCCESS), - [1649152567.636056][16212:16217] CHIP:DMG: }, + [1649152567.635911][16212:16217] CHIP:DMG: StatusIB = + [1649152567.635963][16212:16217] CHIP:DMG: { + [1649152567.636009][16212:16217] CHIP:DMG: status = 0x00 (SUCCESS), + [1649152567.636056][16212:16217] CHIP:DMG: }, [1649152567.636103][16212:16217] CHIP:DMG: - [1649152567.636145][16212:16217] CHIP:DMG: }, + [1649152567.636145][16212:16217] CHIP:DMG: }, [1649152567.636193][16212:16217] CHIP:DMG: - [1649152567.636229][16212:16217] CHIP:DMG: ], + [1649152567.636229][16212:16217] CHIP:DMG: ], [1649152567.636274][16212:16217] CHIP:DMG: - [1649152567.636309][16212:16217] CHIP:DMG: InteractionModelRevision = 1 + [1649152567.636309][16212:16217] CHIP:DMG: InteractionModelRevision = 1 [1649152567.636344][16212:16217] CHIP:DMG: } - ./chip-tool any read-by-id 0x0008 0x0010 1 1 - + ./chip-tool any read-by-id 0x0008 0x0010 1 1 + On TH, verify the attribute value that was modified in above step [1655201286.054743][3608:3613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0010 DataVersion: 3958539602 - [1655201286.054836][3608:3613] CHIP:TOO: on off transition time: 1 + [1655201286.054836][3608:3613] CHIP:TOO: on off transition time: 1 [1655201286.054941][3608:3613] CHIP:EM: Sending Standalone Ack for MessageCounter:21225916 on exchange 58998i disabled: true @@ -218,6 +218,8 @@ tests: PICS: MCORE.IDM.S.Attribute_W.DataType_SignedInteger verification: | DUT implementation required to verify write an attribute of data type signed integer. + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -226,6 +228,8 @@ tests: PICS: MCORE.IDM.S.Attribute_W.DataType_FloatingPoint verification: | DUT implementation required to verify write an attribute of data type float + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -234,6 +238,8 @@ tests: PICS: MCORE.IDM.S.Attribute_W.DataType_OctetString verification: | DUT implementation required to verify write an attribute of data type Octet String + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -242,6 +248,8 @@ tests: PICS: MCORE.IDM.S.Attribute_W.DataType_Struct verification: | DUT implementation required to verify write an attribute ofdata type Struct + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -250,6 +258,8 @@ tests: PICS: MCORE.IDM.S.Attribute_W.DataType_List verification: | DUT implementation required to verify write an attribute of data type List + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -259,41 +269,40 @@ tests: verification: | The cluster used in the below command is an example, User can use any supported chip cluster. - sudo ./chip-tool any write-by-id 0x0204 0 1 1 1 - + sudo ./chip-tool any write-by-id 0x0204 0 1 1 1 - Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. + On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. [1649152707.514290][16226:16231] CHIP:DMG: WriteResponseMessage = [1649152707.514324][16226:16231] CHIP:DMG: { - [1649152707.514354][16226:16231] CHIP:DMG: AttributeStatusIBs = - [1649152707.514396][16226:16231] CHIP:DMG: [ - [1649152707.514429][16226:16231] CHIP:DMG: AttributeStatusIB = - [1649152707.514476][16226:16231] CHIP:DMG: { - [1649152707.514511][16226:16231] CHIP:DMG: AttributePathIB = - [1649152707.514553][16226:16231] CHIP:DMG: { - [1649152707.514600][16226:16231] CHIP:DMG: Endpoint = 0x1, - [1649152707.514646][16226:16231] CHIP:DMG: Cluster = 0x204, - [1649152707.514691][16226:16231] CHIP:DMG: Attribute = 0x0000_0000, - [1649152707.514734][16226:16231] CHIP:DMG: } + [1649152707.514354][16226:16231] CHIP:DMG: AttributeStatusIBs = + [1649152707.514396][16226:16231] CHIP:DMG: [ + [1649152707.514429][16226:16231] CHIP:DMG: AttributeStatusIB = + [1649152707.514476][16226:16231] CHIP:DMG: { + [1649152707.514511][16226:16231] CHIP:DMG: AttributePathIB = + [1649152707.514553][16226:16231] CHIP:DMG: { + [1649152707.514600][16226:16231] CHIP:DMG: Endpoint = 0x1, + [1649152707.514646][16226:16231] CHIP:DMG: Cluster = 0x204, + [1649152707.514691][16226:16231] CHIP:DMG: Attribute = 0x0000_0000, + [1649152707.514734][16226:16231] CHIP:DMG: } [1649152707.514781][16226:16231] CHIP:DMG: - [1649152707.514820][16226:16231] CHIP:DMG: StatusIB = - [1649152707.514867][16226:16231] CHIP:DMG: { - [1649152707.514908][16226:16231] CHIP:DMG: status = 0x00 (SUCCESS), - [1649152707.514995][16226:16231] CHIP:DMG: }, + [1649152707.514820][16226:16231] CHIP:DMG: StatusIB = + [1649152707.514867][16226:16231] CHIP:DMG: { + [1649152707.514908][16226:16231] CHIP:DMG: status = 0x00 (SUCCESS), + [1649152707.514995][16226:16231] CHIP:DMG: }, [1649152707.515038][16226:16231] CHIP:DMG: - [1649152707.515072][16226:16231] CHIP:DMG: }, + [1649152707.515072][16226:16231] CHIP:DMG: }, [1649152707.515113][16226:16231] CHIP:DMG: - [1649152707.515145][16226:16231] CHIP:DMG: ], + [1649152707.515145][16226:16231] CHIP:DMG: ], [1649152707.515186][16226:16231] CHIP:DMG: - [1649152707.515218][16226:16231] CHIP:DMG: InteractionModelRevision = 1 + [1649152707.515218][16226:16231] CHIP:DMG: InteractionModelRevision = 1 [1649152707.515250][16226:16231] CHIP:DMG: } [1649152707.515374][16226:16231] CHIP:DMG: WriteClient moving to [AwaitingDe] - ./chip-tool any read-by-id 0x0008 0x0010 1 1 + ./chip-tool any read-by-id 0x0008 0x0010 1 1 [1655201353.941835][3634:3639] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 263686993 - [1655201353.941926][3634:3639] CHIP:TOO: temperature display mode: 1 + [1655201353.941926][3634:3639] CHIP:TOO: temperature display mode: 1 [1655201353.942030][3634:3639] CHIP:EM: Sending Standalone Ack for MessageCounter:58103180 on exchange 16578i disabled: true @@ -306,38 +315,39 @@ tests: sudo ./chip-tool colorcontrol write-by-id 0x000f 1 1 1 - Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. + On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. [1649152768.817940][16237:16242] CHIP:DMG: WriteResponseMessage = [1649152768.817971][16237:16242] CHIP:DMG: { - [1649152768.817999][16237:16242] CHIP:DMG: AttributeStatusIBs = - [1649152768.818038][16237:16242] CHIP:DMG: [ - [1649152768.818068][16237:16242] CHIP:DMG: AttributeStatusIB = - [1649152768.818111][16237:16242] CHIP:DMG: { - [1649152768.818146][16237:16242] CHIP:DMG: AttributePathIB = - [1649152768.818188][16237:16242] CHIP:DMG: { - [1649152768.818230][16237:16242] CHIP:DMG: Endpoint = 0x1, - [1649152768.818275][16237:16242] CHIP:DMG: Cluster = 0x300, - [1649152768.818317][16237:16242] CHIP:DMG: Attribute = 0x0000_000F, - [1649152768.818358][16237:16242] CHIP:DMG: } + [1649152768.817999][16237:16242] CHIP:DMG: AttributeStatusIBs = + [1649152768.818038][16237:16242] CHIP:DMG: [ + [1649152768.818068][16237:16242] CHIP:DMG: AttributeStatusIB = + [1649152768.818111][16237:16242] CHIP:DMG: { + [1649152768.818146][16237:16242] CHIP:DMG: AttributePathIB = + [1649152768.818188][16237:16242] CHIP:DMG: { + [1649152768.818230][16237:16242] CHIP:DMG: Endpoint = 0x1, + [1649152768.818275][16237:16242] CHIP:DMG: Cluster = 0x300, + [1649152768.818317][16237:16242] CHIP:DMG: Attribute = 0x0000_000F, + [1649152768.818358][16237:16242] CHIP:DMG: } [1649152768.818405][16237:16242] CHIP:DMG: - [1649152768.818443][16237:16242] CHIP:DMG: StatusIB = - [1649152768.818485][16237:16242] CHIP:DMG: { - [1649152768.818521][16237:16242] CHIP:DMG: status = 0x00 (SUCCESS), - [1649152768.818559][16237:16242] CHIP:DMG: }, + [1649152768.818443][16237:16242] CHIP:DMG: StatusIB = + [1649152768.818485][16237:16242] CHIP:DMG: { + [1649152768.818521][16237:16242] CHIP:DMG: status = 0x00 (SUCCESS), + [1649152768.818559][16237:16242] CHIP:DMG: }, [1649152768.818602][16237:16242] CHIP:DMG: - [1649152768.818640][16237:16242] CHIP:DMG: }, + [1649152768.818640][16237:16242] CHIP:DMG: }, [1649152768.818681][16237:16242] CHIP:DMG: - [1649152768.818710][16237:16242] CHIP:DMG: ], + [1649152768.818710][16237:16242] CHIP:DMG: ], [1649152768.818747][16237:16242] CHIP:DMG: - [1649152768.818777][16237:16242] CHIP:DMG: InteractionModelRevision = 1 + [1649152768.818777][16237:16242] CHIP:DMG: InteractionModelRevision = 1 [1649152768.818806][16237:16242] CHIP:DMG: } [1649152768.818890][16237:16242] CHIP:DMG: WriteClient moving to [AwaitingDe] ./chip-tool colorcontrol read-by-id 0x000f 1 1 + On TH, verify the attribute value that was modified in above step [1655201495.606584][3665:3670] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_000F DataVersion: 1452005257 - [1655201495.606671][3665:3670] CHIP:TOO: Options: 1 + [1655201495.606671][3665:3670] CHIP:TOO: Options: 1 [1655201495.606772][3665:3670] CHIP:EM: Sending Standalone Ack for MessageCounter:247256099 on exchange 33946i disabled: true @@ -356,31 +366,31 @@ tests: sudo ./chip-tool levelcontrol write on-level 2 1 20 - Verify DUT is responsds with UNSUPPORTED_ENDPOINT for the data sent in the above command + On TH, Verify that the DUT sends the status code UNSUPPORTED_ENDPOINT for the data sent in the above command 1649153009.582466][16268:16273] CHIP:DMG: WriteResponseMessage = [1649153009.582507][16268:16273] CHIP:DMG: { - [1649153009.582557][16268:16273] CHIP:DMG: AttributeStatusIBs = - [1649153009.582610][16268:16273] CHIP:DMG: [ - [1649153009.582667][16268:16273] CHIP:DMG: AttributeStatusIB = - [1649153009.582723][16268:16273] CHIP:DMG: { - [1649153009.582779][16268:16273] CHIP:DMG: AttributePathIB = - [1649153009.582831][16268:16273] CHIP:DMG: { - [1649153009.582899][16268:16273] CHIP:DMG: Endpoint = 0x14, - [1649153009.582970][16268:16273] CHIP:DMG: Cluster = 0x8, - [1649153009.583031][16268:16273] CHIP:DMG: Attribute = 0x0000_0011, - [1649153009.583087][16268:16273] CHIP:DMG: } + [1649153009.582557][16268:16273] CHIP:DMG: AttributeStatusIBs = + [1649153009.582610][16268:16273] CHIP:DMG: [ + [1649153009.582667][16268:16273] CHIP:DMG: AttributeStatusIB = + [1649153009.582723][16268:16273] CHIP:DMG: { + [1649153009.582779][16268:16273] CHIP:DMG: AttributePathIB = + [1649153009.582831][16268:16273] CHIP:DMG: { + [1649153009.582899][16268:16273] CHIP:DMG: Endpoint = 0x14, + [1649153009.582970][16268:16273] CHIP:DMG: Cluster = 0x8, + [1649153009.583031][16268:16273] CHIP:DMG: Attribute = 0x0000_0011, + [1649153009.583087][16268:16273] CHIP:DMG: } [1649153009.583166][16268:16273] CHIP:DMG: - [1649153009.583221][16268:16273] CHIP:DMG: StatusIB = - [1649153009.583291][16268:16273] CHIP:DMG: { - [1649153009.583362][16268:16273] CHIP:DMG: status = 0x7f (UNSUPPORTED_ENDPOINT), - [1649153009.583415][16268:16273] CHIP:DMG: }, + [1649153009.583221][16268:16273] CHIP:DMG: StatusIB = + [1649153009.583291][16268:16273] CHIP:DMG: { + [1649153009.583362][16268:16273] CHIP:DMG: status = 0x7f (UNSUPPORTED_ENDPOINT), + [1649153009.583415][16268:16273] CHIP:DMG: }, [1649153009.583481][16268:16273] CHIP:DMG: - [1649153009.583527][16268:16273] CHIP:DMG: }, + [1649153009.583527][16268:16273] CHIP:DMG: }, [1649153009.583594][16268:16273] CHIP:DMG: - [1649153009.583634][16268:16273] CHIP:DMG: ], + [1649153009.583634][16268:16273] CHIP:DMG: ], [1649153009.583697][16268:16273] CHIP:DMG: - [1649153009.583751][16268:16273] CHIP:DMG: InteractionModelRevision = 1 + [1649153009.583751][16268:16273] CHIP:DMG: InteractionModelRevision = 1 [1649153009.583790][16268:16273] CHIP:DMG: } [1649153009.583903][16268:16273] CHIP:TOO: Response Failure: IM Error 0x0000057F: General error: 0x7f (UNSUPPORTED_ENDPOINT) @@ -393,33 +403,33 @@ tests: verification: | The cluster used in the below command is an example, User can use any supported chip cluster. - sudo ./chip-tool thermostat write unoccupied-heating-setpoint 1200 1 0 + sudo ./chip-tool thermostat write unoccupied-heating-setpoint 1200 1 0 - Verify DUT is responsds with UNSUPPORTED_CLUSTER for the data sent in the above command + On TH, Verify that the DUT sends the status code UNSUPPORTED_CLUSTER for the data sent in the above command [1650618880.286103][2741:2746] CHIP:DMG: WriteResponseMessage = [1650618880.286161][2741:2746] CHIP:DMG: { - [1650618880.286210][2741:2746] CHIP:DMG: AttributeStatusIBs = - [1650618880.286280][2741:2746] CHIP:DMG: [ - [1650618880.286334][2741:2746] CHIP:DMG: AttributeStatusIB = - [1650618880.286399][2741:2746] CHIP:DMG: { - [1650618880.286456][2741:2746] CHIP:DMG: AttributePathIB = - [1650618880.286540][2741:2746] CHIP:DMG: { - [1650618880.286598][2741:2746] CHIP:DMG: Endpoint = 0x0, - [1650618880.286670][2741:2746] CHIP:DMG: Cluster = 0x201, - [1650618880.286736][2741:2746] CHIP:DMG: Attribute = 0x0000_0014, - [1650618880.286809][2741:2746] CHIP:DMG: } + [1650618880.286210][2741:2746] CHIP:DMG: AttributeStatusIBs = + [1650618880.286280][2741:2746] CHIP:DMG: [ + [1650618880.286334][2741:2746] CHIP:DMG: AttributeStatusIB = + [1650618880.286399][2741:2746] CHIP:DMG: { + [1650618880.286456][2741:2746] CHIP:DMG: AttributePathIB = + [1650618880.286540][2741:2746] CHIP:DMG: { + [1650618880.286598][2741:2746] CHIP:DMG: Endpoint = 0x0, + [1650618880.286670][2741:2746] CHIP:DMG: Cluster = 0x201, + [1650618880.286736][2741:2746] CHIP:DMG: Attribute = 0x0000_0014, + [1650618880.286809][2741:2746] CHIP:DMG: } [1650618880.286892][2741:2746] CHIP:DMG: - [1650618880.286955][2741:2746] CHIP:DMG: StatusIB = - [1650618880.287015][2741:2746] CHIP:DMG: { - [1650618880.287080][2741:2746] CHIP:DMG: status = 0xc3 (UNSUPPORTED_CLUSTER), - [1650618880.287144][2741:2746] CHIP:DMG: }, + [1650618880.286955][2741:2746] CHIP:DMG: StatusIB = + [1650618880.287015][2741:2746] CHIP:DMG: { + [1650618880.287080][2741:2746] CHIP:DMG: status = 0xc3 (UNSUPPORTED_CLUSTER), + [1650618880.287144][2741:2746] CHIP:DMG: }, [1650618880.287208][2741:2746] CHIP:DMG: - [1650618880.287267][2741:2746] CHIP:DMG: }, + [1650618880.287267][2741:2746] CHIP:DMG: }, [1650618880.287328][2741:2746] CHIP:DMG: - [1650618880.287377][2741:2746] CHIP:DMG: ], + [1650618880.287377][2741:2746] CHIP:DMG: ], [1650618880.287440][2741:2746] CHIP:DMG: - [1650618880.287489][2741:2746] CHIP:DMG: InteractionModelRevision = 1 + [1650618880.287489][2741:2746] CHIP:DMG: InteractionModelRevision = 1 [1650618880.287538][2741:2746] CHIP:DMG: } [1650618880.287657][2741:2746] CHIP:TOO: Response Failure: IM Error 0x000005C3: General error: 0xc3 (UNSUPPORTED_CLUSTER) [1650618880.287735][2741:2746] CHIP:DMG: WriteClient moving to [AwaitingDe] @@ -431,33 +441,33 @@ tests: verification: | The cluster used in the below command is an example, User can use any supported chip cluster. - sudo ./chip-tool thermostat write unoccupied-heating-setpoint 1200 1 1 + sudo ./chip-tool thermostat write unoccupied-heating-setpoint 1200 1 1 - Verify DUT is responsds with UNSUPPORTED_ATTRIBUTE for the data sent in the above command + On TH, Verify that the DUT sends the status code UNSUPPORTED_ATTRIBUTE for the data sent in the above command [1650618819.921180][2730:2735] CHIP:DMG: WriteResponseMessage = [1650618819.921212][2730:2735] CHIP:DMG: { - [1650618819.921237][2730:2735] CHIP:DMG: AttributeStatusIBs = - [1650618819.921273][2730:2735] CHIP:DMG: [ - [1650618819.921303][2730:2735] CHIP:DMG: AttributeStatusIB = - [1650618819.921334][2730:2735] CHIP:DMG: { - [1650618819.921364][2730:2735] CHIP:DMG: AttributePathIB = - [1650618819.921400][2730:2735] CHIP:DMG: { - [1650618819.921436][2730:2735] CHIP:DMG: Endpoint = 0x1, - [1650618819.921473][2730:2735] CHIP:DMG: Cluster = 0x201, - [1650618819.921508][2730:2735] CHIP:DMG: Attribute = 0x0000_0014, - [1650618819.921543][2730:2735] CHIP:DMG: } + [1650618819.921237][2730:2735] CHIP:DMG: AttributeStatusIBs = + [1650618819.921273][2730:2735] CHIP:DMG: [ + [1650618819.921303][2730:2735] CHIP:DMG: AttributeStatusIB = + [1650618819.921334][2730:2735] CHIP:DMG: { + [1650618819.921364][2730:2735] CHIP:DMG: AttributePathIB = + [1650618819.921400][2730:2735] CHIP:DMG: { + [1650618819.921436][2730:2735] CHIP:DMG: Endpoint = 0x1, + [1650618819.921473][2730:2735] CHIP:DMG: Cluster = 0x201, + [1650618819.921508][2730:2735] CHIP:DMG: Attribute = 0x0000_0014, + [1650618819.921543][2730:2735] CHIP:DMG: } [1650618819.921586][2730:2735] CHIP:DMG: - [1650618819.921619][2730:2735] CHIP:DMG: StatusIB = - [1650618819.921654][2730:2735] CHIP:DMG: { - [1650618819.921692][2730:2735] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), - [1650618819.921733][2730:2735] CHIP:DMG: }, + [1650618819.921619][2730:2735] CHIP:DMG: StatusIB = + [1650618819.921654][2730:2735] CHIP:DMG: { + [1650618819.921692][2730:2735] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), + [1650618819.921733][2730:2735] CHIP:DMG: }, [1650618819.921773][2730:2735] CHIP:DMG: - [1650618819.921806][2730:2735] CHIP:DMG: }, + [1650618819.921806][2730:2735] CHIP:DMG: }, [1650618819.921843][2730:2735] CHIP:DMG: - [1650618819.921870][2730:2735] CHIP:DMG: ], + [1650618819.921870][2730:2735] CHIP:DMG: ], [1650618819.921905][2730:2735] CHIP:DMG: - [1650618819.921932][2730:2735] CHIP:DMG: InteractionModelRevision = 1 + [1650618819.921932][2730:2735] CHIP:DMG: InteractionModelRevision = 1 [1650618819.921961][2730:2735] CHIP:DMG: } [1650618819.922034][2730:2735] CHIP:TOO: Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) [1650618819.922076][2730:2735] CHIP:DMG: WriteClient moving to [AwaitingDe] @@ -471,31 +481,31 @@ tests: ./chip-tool basic write-by-id 0x7 2 1 0 - Verify DUT is responsds with UNSUPPORTED_WRITE for the data sent in the above command + On TH, Verify that the DUT sends the status code UNSUPPORTED_WRITE for the data sent in the above command [1655201693.989436][3767:3772] CHIP:DMG: WriteResponseMessage = [1655201693.989472][3767:3772] CHIP:DMG: { - [1655201693.989504][3767:3772] CHIP:DMG: AttributeStatusIBs = - [1655201693.989548][3767:3772] CHIP:DMG: [ - [1655201693.989584][3767:3772] CHIP:DMG: AttributeStatusIB = - [1655201693.989673][3767:3772] CHIP:DMG: { - [1655201693.989715][3767:3772] CHIP:DMG: AttributePathIB = - [1655201693.989762][3767:3772] CHIP:DMG: { - [1655201693.989810][3767:3772] CHIP:DMG: Endpoint = 0x0, - [1655201693.989859][3767:3772] CHIP:DMG: Cluster = 0x28, - [1655201693.989912][3767:3772] CHIP:DMG: Attribute = 0x0000_0007, - [1655201693.989962][3767:3772] CHIP:DMG: } + [1655201693.989504][3767:3772] CHIP:DMG: AttributeStatusIBs = + [1655201693.989548][3767:3772] CHIP:DMG: [ + [1655201693.989584][3767:3772] CHIP:DMG: AttributeStatusIB = + [1655201693.989673][3767:3772] CHIP:DMG: { + [1655201693.989715][3767:3772] CHIP:DMG: AttributePathIB = + [1655201693.989762][3767:3772] CHIP:DMG: { + [1655201693.989810][3767:3772] CHIP:DMG: Endpoint = 0x0, + [1655201693.989859][3767:3772] CHIP:DMG: Cluster = 0x28, + [1655201693.989912][3767:3772] CHIP:DMG: Attribute = 0x0000_0007, + [1655201693.989962][3767:3772] CHIP:DMG: } [1655201693.990012][3767:3772] CHIP:DMG: - [1655201693.990058][3767:3772] CHIP:DMG: StatusIB = - [1655201693.990105][3767:3772] CHIP:DMG: { - [1655201693.990149][3767:3772] CHIP:DMG: status = 0x88 (UNSUPPORTED_WRITE), - [1655201693.990196][3767:3772] CHIP:DMG: }, + [1655201693.990058][3767:3772] CHIP:DMG: StatusIB = + [1655201693.990105][3767:3772] CHIP:DMG: { + [1655201693.990149][3767:3772] CHIP:DMG: status = 0x88 (UNSUPPORTED_WRITE), + [1655201693.990196][3767:3772] CHIP:DMG: }, [1655201693.990240][3767:3772] CHIP:DMG: - [1655201693.990277][3767:3772] CHIP:DMG: }, + [1655201693.990277][3767:3772] CHIP:DMG: }, [1655201693.990320][3767:3772] CHIP:DMG: - [1655201693.990355][3767:3772] CHIP:DMG: ], + [1655201693.990355][3767:3772] CHIP:DMG: ], [1655201693.990398][3767:3772] CHIP:DMG: - [1655201693.990433][3767:3772] CHIP:DMG: InteractionModelRevision = 1 + [1655201693.990433][3767:3772] CHIP:DMG: InteractionModelRevision = 1 [1655201693.990467][3767:3772] CHIP:DMG: } [1655201693.990561][3767:3772] CHIP:DMG: WriteClient moving to [AwaitingDe] [1655201693.990608][3767:3772] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) @@ -516,44 +526,44 @@ tests: ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]" 1 0 [1659419722.669629][1915:1920] CHIP:DMG: WriteResponseMessage = [1659419722.669657][1915:1920] CHIP:DMG: { - [1659419722.669687][1915:1920] CHIP:DMG: AttributeStatusIBs = - [1659419722.669727][1915:1920] CHIP:DMG: [ - [1659419722.669758][1915:1920] CHIP:DMG: AttributeStatusIB = - [1659419722.669796][1915:1920] CHIP:DMG: { - [1659419722.669833][1915:1920] CHIP:DMG: AttributePathIB = - [1659419722.669871][1915:1920] CHIP:DMG: { - [1659419722.669912][1915:1920] CHIP:DMG: Endpoint = 0x0, - [1659419722.669953][1915:1920] CHIP:DMG: Cluster = 0x1f, - [1659419722.669993][1915:1920] CHIP:DMG: Attribute = 0x0000_0000, - [1659419722.670034][1915:1920] CHIP:DMG: } + [1659419722.669687][1915:1920] CHIP:DMG: AttributeStatusIBs = + [1659419722.669727][1915:1920] CHIP:DMG: [ + [1659419722.669758][1915:1920] CHIP:DMG: AttributeStatusIB = + [1659419722.669796][1915:1920] CHIP:DMG: { + [1659419722.669833][1915:1920] CHIP:DMG: AttributePathIB = + [1659419722.669871][1915:1920] CHIP:DMG: { + [1659419722.669912][1915:1920] CHIP:DMG: Endpoint = 0x0, + [1659419722.669953][1915:1920] CHIP:DMG: Cluster = 0x1f, + [1659419722.669993][1915:1920] CHIP:DMG: Attribute = 0x0000_0000, + [1659419722.670034][1915:1920] CHIP:DMG: } [1659419722.670077][1915:1920] CHIP:DMG: - [1659419722.670114][1915:1920] CHIP:DMG: StatusIB = - [1659419722.670153][1915:1920] CHIP:DMG: { - [1659419722.670191][1915:1920] CHIP:DMG: status = 0x00 (SUCCESS), - [1659419722.670229][1915:1920] CHIP:DMG: }, + [1659419722.670114][1915:1920] CHIP:DMG: StatusIB = + [1659419722.670153][1915:1920] CHIP:DMG: { + [1659419722.670191][1915:1920] CHIP:DMG: status = 0x00 (SUCCESS), + [1659419722.670229][1915:1920] CHIP:DMG: }, [1659419722.670266][1915:1920] CHIP:DMG: - [1659419722.670300][1915:1920] CHIP:DMG: }, + [1659419722.670300][1915:1920] CHIP:DMG: }, [1659419722.670343][1915:1920] CHIP:DMG: - [1659419722.670373][1915:1920] CHIP:DMG: AttributeStatusIB = - [1659419722.670405][1915:1920] CHIP:DMG: { - [1659419722.670436][1915:1920] CHIP:DMG: AttributePathIB = - [1659419722.670471][1915:1920] CHIP:DMG: { - [1659419722.670510][1915:1920] CHIP:DMG: Endpoint = 0x0, - [1659419722.670550][1915:1920] CHIP:DMG: Cluster = 0x1f, - [1659419722.670590][1915:1920] CHIP:DMG: Attribute = 0x0000_0000, - [1659419722.670661][1915:1920] CHIP:DMG: ListIndex = Null, - [1659419722.670700][1915:1920] CHIP:DMG: } + [1659419722.670373][1915:1920] CHIP:DMG: AttributeStatusIB = + [1659419722.670405][1915:1920] CHIP:DMG: { + [1659419722.670436][1915:1920] CHIP:DMG: AttributePathIB = + [1659419722.670471][1915:1920] CHIP:DMG: { + [1659419722.670510][1915:1920] CHIP:DMG: Endpoint = 0x0, + [1659419722.670550][1915:1920] CHIP:DMG: Cluster = 0x1f, + [1659419722.670590][1915:1920] CHIP:DMG: Attribute = 0x0000_0000, + [1659419722.670661][1915:1920] CHIP:DMG: ListIndex = Null, + [1659419722.670700][1915:1920] CHIP:DMG: } [1659419722.670740][1915:1920] CHIP:DMG: - [1659419722.670776][1915:1920] CHIP:DMG: StatusIB = - [1659419722.670813][1915:1920] CHIP:DMG: { - [1659419722.670851][1915:1920] CHIP:DMG: status = 0x00 (SUCCESS), - [1659419722.670888][1915:1920] CHIP:DMG: }, + [1659419722.670776][1915:1920] CHIP:DMG: StatusIB = + [1659419722.670813][1915:1920] CHIP:DMG: { + [1659419722.670851][1915:1920] CHIP:DMG: status = 0x00 (SUCCESS), + [1659419722.670888][1915:1920] CHIP:DMG: }, [1659419722.670925][1915:1920] CHIP:DMG: - [1659419722.670958][1915:1920] CHIP:DMG: }, + [1659419722.670958][1915:1920] CHIP:DMG: }, [1659419722.670994][1915:1920] CHIP:DMG: - [1659419722.671022][1915:1920] CHIP:DMG: ], + [1659419722.671022][1915:1920] CHIP:DMG: ], [1659419722.671062][1915:1920] CHIP:DMG: - [1659419722.671092][1915:1920] CHIP:DMG: InteractionModelRevision = 1 + [1659419722.671092][1915:1920] CHIP:DMG: InteractionModelRevision = 1 [1659419722.671120][1915:1920] CHIP:DMG: } [1659419722.671244][1915:1920] CHIP:DMG: WriteClient moving to [AwaitingDe] [1659419722.671314][1915:1920] CHIP:EM: Sending Standalone Ack for MessageCounter:153124628 on @@ -561,14 +571,14 @@ tests: ./chip-tool thermostatuserinterfaceconfiguration write temperature-display-mode 2 1 1 - On TH, verify DUT responsds as UNSUPPORTED_ACCESS for the data sent in the above command + On TH, verify DUT responds as UNSUPPORTED_ACCESS for the data sent in the above command [1659422521.638063][2076:2081] CHIP:DMG: } [1659422521.638147][2076:2081] CHIP:DMG: WriteClient moving to [AwaitingDe] [1659422521.638185][2076:2081] CHIP:TOO: Response Failure: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS) [1659422521.638246][2076:2081] CHIP:EM: Sending Standalone Ack for MessageCounter:223304501 on exchange 20701i - With the above command, we are overwriting the default privilege that chip-tool has as an admin. After this test step you need to send below mentioned command to Grant access to all clusters again. + With the above command, we are overwriting the default privilege that chip-tool has as an admin. After this test step you need to send below mentioned command to Grant access to all clusters again. ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233], "targets":null}]" 1 0 disabled: true @@ -579,73 +589,73 @@ tests: verification: | The cluster used in the below command is an example, User can use any supported chip cluster. - sudo ./chip-tool levelcontrol write on-level 2 1 1 + sudo ./chip-tool levelcontrol write on-level 2 1 1 - Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. + Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. [1653028376.099679][6518:6523] CHIP:DMG: WriteResponseMessage = [1653028376.099696][6518:6523] CHIP:DMG: { - [1653028376.099710][6518:6523] CHIP:DMG: AttributeStatusIBs = - [1653028376.099814][6518:6523] CHIP:DMG: [ - [1653028376.099831][6518:6523] CHIP:DMG: AttributeStatusIB = - [1653028376.099849][6518:6523] CHIP:DMG: { - [1653028376.099864][6518:6523] CHIP:DMG: AttributePathIB = - [1653028376.099882][6518:6523] CHIP:DMG: { - [1653028376.099900][6518:6523] CHIP:DMG: Endpoint = 0x1, - [1653028376.099917][6518:6523] CHIP:DMG: Cluster = 0x8, - [1653028376.099935][6518:6523] CHIP:DMG: Attribute = 0x0000_0011, - [1653028376.099952][6518:6523] CHIP:DMG: } + [1653028376.099710][6518:6523] CHIP:DMG: AttributeStatusIBs = + [1653028376.099814][6518:6523] CHIP:DMG: [ + [1653028376.099831][6518:6523] CHIP:DMG: AttributeStatusIB = + [1653028376.099849][6518:6523] CHIP:DMG: { + [1653028376.099864][6518:6523] CHIP:DMG: AttributePathIB = + [1653028376.099882][6518:6523] CHIP:DMG: { + [1653028376.099900][6518:6523] CHIP:DMG: Endpoint = 0x1, + [1653028376.099917][6518:6523] CHIP:DMG: Cluster = 0x8, + [1653028376.099935][6518:6523] CHIP:DMG: Attribute = 0x0000_0011, + [1653028376.099952][6518:6523] CHIP:DMG: } [1653028376.099983][6518:6523] CHIP:DMG: - [1653028376.099999][6518:6523] CHIP:DMG: StatusIB = - [1653028376.100014][6518:6523] CHIP:DMG: { - [1653028376.100031][6518:6523] CHIP:DMG: status = 0x00 (SUCCESS), - [1653028376.100047][6518:6523] CHIP:DMG: }, + [1653028376.099999][6518:6523] CHIP:DMG: StatusIB = + [1653028376.100014][6518:6523] CHIP:DMG: { + [1653028376.100031][6518:6523] CHIP:DMG: status = 0x00 (SUCCESS), + [1653028376.100047][6518:6523] CHIP:DMG: }, [1653028376.100065][6518:6523] CHIP:DMG: - [1653028376.100080][6518:6523] CHIP:DMG: }, + [1653028376.100080][6518:6523] CHIP:DMG: }, [1653028376.100101][6518:6523] CHIP:DMG: - [1653028376.100115][6518:6523] CHIP:DMG: ], + [1653028376.100115][6518:6523] CHIP:DMG: ], [1653028376.100137][6518:6523] CHIP:DMG: - [1653028376.100152][6518:6523] CHIP:DMG: InteractionModelRevision = 1 + [1653028376.100152][6518:6523] CHIP:DMG: InteractionModelRevision = 1 [1653028376.100167][6518:6523] CHIP:DMG: } - ./chip-tool levelcontrol read on-level 1 1 - + ./chip-tool levelcontrol read on-level 1 1 + On TH, verify the attribute value that was modified in above step [1653028474.240088][6540:6545] CHIP:DMG: ReportDataMessage = [1653028474.240100][6540:6545] CHIP:DMG: { - [1653028474.240110][6540:6545] CHIP:DMG: AttributeReportIBs = - [1653028474.240126][6540:6545] CHIP:DMG: [ - [1653028474.240136][6540:6545] CHIP:DMG: AttributeReportIB = - [1653028474.240152][6540:6545] CHIP:DMG: { - [1653028474.240162][6540:6545] CHIP:DMG: AttributeDataIB = - [1653028474.240175][6540:6545] CHIP:DMG: { - [1653028474.240187][6540:6545] CHIP:DMG: DataVersion = 0xc4c9d7ad, - [1653028474.240198][6540:6545] CHIP:DMG: AttributePathIB = - [1653028474.240211][6540:6545] CHIP:DMG: { - [1653028474.240223][6540:6545] CHIP:DMG: Endpoint = 0x1, - [1653028474.240235][6540:6545] CHIP:DMG: Cluster = 0x8, - [1653028474.240249][6540:6545] CHIP:DMG: Attribute = 0x0000_0011, - [1653028474.240260][6540:6545] CHIP:DMG: } + [1653028474.240110][6540:6545] CHIP:DMG: AttributeReportIBs = + [1653028474.240126][6540:6545] CHIP:DMG: [ + [1653028474.240136][6540:6545] CHIP:DMG: AttributeReportIB = + [1653028474.240152][6540:6545] CHIP:DMG: { + [1653028474.240162][6540:6545] CHIP:DMG: AttributeDataIB = + [1653028474.240175][6540:6545] CHIP:DMG: { + [1653028474.240187][6540:6545] CHIP:DMG: DataVersion = 0xc4c9d7ad, + [1653028474.240198][6540:6545] CHIP:DMG: AttributePathIB = + [1653028474.240211][6540:6545] CHIP:DMG: { + [1653028474.240223][6540:6545] CHIP:DMG: Endpoint = 0x1, + [1653028474.240235][6540:6545] CHIP:DMG: Cluster = 0x8, + [1653028474.240249][6540:6545] CHIP:DMG: Attribute = 0x0000_0011, + [1653028474.240260][6540:6545] CHIP:DMG: } [1653028474.240274][6540:6545] CHIP:DMG: - [1653028474.240287][6540:6545] CHIP:DMG: Data = 2, - [1653028474.240298][6540:6545] CHIP:DMG: }, + [1653028474.240287][6540:6545] CHIP:DMG: Data = 2, + [1653028474.240298][6540:6545] CHIP:DMG: }, [1653028474.240312][6540:6545] CHIP:DMG: - [1653028474.240322][6540:6545] CHIP:DMG: }, + [1653028474.240322][6540:6545] CHIP:DMG: }, [1653028474.240337][6540:6545] CHIP:DMG: - [1653028474.240346][6540:6545] CHIP:DMG: ], + [1653028474.240346][6540:6545] CHIP:DMG: ], [1653028474.240361][6540:6545] CHIP:DMG: - [1653028474.240372][6540:6545] CHIP:DMG: SuppressResponse = true, - [1653028474.240383][6540:6545] CHIP:DMG: InteractionModelRevision = 1 + [1653028474.240372][6540:6545] CHIP:DMG: SuppressResponse = true, + [1653028474.240383][6540:6545] CHIP:DMG: InteractionModelRevision = 1 [1653028474.240393][6540:6545] CHIP:DMG: } [1653028474.240473][6540:6545] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3301562285 - [1653028474.240815][6540:6545] CHIP:TOO: on level: 2 + [1653028474.240815][6540:6545] CHIP:TOO: on level: 2 - ./chip-tool levelcontrol write on-level 3 1 1 - ./chip-tool levelcontrol write on-level 1 1 1 + ./chip-tool levelcontrol write on-level 3 1 1 + ./chip-tool levelcontrol write on-level 1 1 1 disabled: true - label: @@ -693,71 +703,71 @@ tests: ./chip-tool levelcontrol read on-level 1 1 - Verify On TH, Verify DUT is responsds with attribute value + On TH, Verify the attribute value which is received from DUT [1653028897.525838][6605:6611] CHIP:DMG: ReportDataMessage = [1653028897.525863][6605:6611] CHIP:DMG: { - [1653028897.525885][6605:6611] CHIP:DMG: AttributeReportIBs = - [1653028897.525919][6605:6611] CHIP:DMG: [ - [1653028897.525940][6605:6611] CHIP:DMG: AttributeReportIB = - [1653028897.525975][6605:6611] CHIP:DMG: { - [1653028897.525997][6605:6611] CHIP:DMG: AttributeDataIB = - [1653028897.526025][6605:6611] CHIP:DMG: { - [1653028897.526051][6605:6611] CHIP:DMG: DataVersion = 0xc4c9d7ae, - [1653028897.526075][6605:6611] CHIP:DMG: AttributePathIB = - [1653028897.526102][6605:6611] CHIP:DMG: { - [1653028897.526128][6605:6611] CHIP:DMG: Endpoint = 0x1, - [1653028897.526153][6605:6611] CHIP:DMG: Cluster = 0x8, - [1653028897.526181][6605:6611] CHIP:DMG: Attribute = 0x0000_0011, - [1653028897.526211][6605:6611] CHIP:DMG: } + [1653028897.525885][6605:6611] CHIP:DMG: AttributeReportIBs = + [1653028897.525919][6605:6611] CHIP:DMG: [ + [1653028897.525940][6605:6611] CHIP:DMG: AttributeReportIB = + [1653028897.525975][6605:6611] CHIP:DMG: { + [1653028897.525997][6605:6611] CHIP:DMG: AttributeDataIB = + [1653028897.526025][6605:6611] CHIP:DMG: { + [1653028897.526051][6605:6611] CHIP:DMG: DataVersion = 0xc4c9d7ae, + [1653028897.526075][6605:6611] CHIP:DMG: AttributePathIB = + [1653028897.526102][6605:6611] CHIP:DMG: { + [1653028897.526128][6605:6611] CHIP:DMG: Endpoint = 0x1, + [1653028897.526153][6605:6611] CHIP:DMG: Cluster = 0x8, + [1653028897.526181][6605:6611] CHIP:DMG: Attribute = 0x0000_0011, + [1653028897.526211][6605:6611] CHIP:DMG: } [1653028897.526239][6605:6611] CHIP:DMG: - [1653028897.526268][6605:6611] CHIP:DMG: Data = 2, - [1653028897.526295][6605:6611] CHIP:DMG: }, + [1653028897.526268][6605:6611] CHIP:DMG: Data = 2, + [1653028897.526295][6605:6611] CHIP:DMG: }, [1653028897.526326][6605:6611] CHIP:DMG: - [1653028897.526347][6605:6611] CHIP:DMG: }, + [1653028897.526347][6605:6611] CHIP:DMG: }, [1653028897.526378][6605:6611] CHIP:DMG: - [1653028897.526397][6605:6611] CHIP:DMG: ], + [1653028897.526397][6605:6611] CHIP:DMG: ], [1653028897.526432][6605:6611] CHIP:DMG: - [1653028897.526459][6605:6611] CHIP:DMG: SuppressResponse = true, - [1653028897.526483][6605:6611] CHIP:DMG: InteractionModelRevision = 1 + [1653028897.526459][6605:6611] CHIP:DMG: SuppressResponse = true, + [1653028897.526483][6605:6611] CHIP:DMG: InteractionModelRevision = 1 [1653028897.526503][6605:6611] CHIP:DMG: } [1653028897.526687][6605:6611] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3301562286 - [1653028897.526763][6605:6611] CHIP:TOO: on level: 2 + [1653028897.526763][6605:6611] CHIP:TOO: on level: 2 - ./chip-tool levelcontrol write on-level 3 1 1 --data-version 0xc4c9d7ae + ./chip-tool levelcontrol write on-level 3 1 1 --data-version 0xc4c9d7ae - Veify On TH, DUT sends a Write Response message with a success + On TH, verify that DUT sends a Write Response message with a success [1653028938.426783][6617:6622] CHIP:DMG: WriteResponseMessage = [1653028938.426797][6617:6622] CHIP:DMG: { - [1653028938.426806][6617:6622] CHIP:DMG: AttributeStatusIBs = - [1653028938.426821][6617:6622] CHIP:DMG: [ - [1653028938.426829][6617:6622] CHIP:DMG: AttributeStatusIB = - [1653028938.426840][6617:6622] CHIP:DMG: { - [1653028938.426849][6617:6622] CHIP:DMG: AttributePathIB = - [1653028938.426860][6617:6622] CHIP:DMG: { - [1653028938.426871][6617:6622] CHIP:DMG: Endpoint = 0x1, - [1653028938.426881][6617:6622] CHIP:DMG: Cluster = 0x8, - [1653028938.426893][6617:6622] CHIP:DMG: Attribute = 0x0000_0011, - [1653028938.426903][6617:6622] CHIP:DMG: } + [1653028938.426806][6617:6622] CHIP:DMG: AttributeStatusIBs = + [1653028938.426821][6617:6622] CHIP:DMG: [ + [1653028938.426829][6617:6622] CHIP:DMG: AttributeStatusIB = + [1653028938.426840][6617:6622] CHIP:DMG: { + [1653028938.426849][6617:6622] CHIP:DMG: AttributePathIB = + [1653028938.426860][6617:6622] CHIP:DMG: { + [1653028938.426871][6617:6622] CHIP:DMG: Endpoint = 0x1, + [1653028938.426881][6617:6622] CHIP:DMG: Cluster = 0x8, + [1653028938.426893][6617:6622] CHIP:DMG: Attribute = 0x0000_0011, + [1653028938.426903][6617:6622] CHIP:DMG: } [1653028938.426917][6617:6622] CHIP:DMG: - [1653028938.426925][6617:6622] CHIP:DMG: StatusIB = - [1653028938.426936][6617:6622] CHIP:DMG: { - [1653028938.426944][6617:6622] CHIP:DMG: status = 0x00 (SUCCESS), - [1653028938.426952][6617:6622] CHIP:DMG: }, + [1653028938.426925][6617:6622] CHIP:DMG: StatusIB = + [1653028938.426936][6617:6622] CHIP:DMG: { + [1653028938.426944][6617:6622] CHIP:DMG: status = 0x00 (SUCCESS), + [1653028938.426952][6617:6622] CHIP:DMG: }, [1653028938.426961][6617:6622] CHIP:DMG: - [1653028938.426968][6617:6622] CHIP:DMG: }, + [1653028938.426968][6617:6622] CHIP:DMG: }, [1653028938.426978][6617:6622] CHIP:DMG: - [1653028938.426996][6617:6622] CHIP:DMG: ], + [1653028938.426996][6617:6622] CHIP:DMG: ], [1653028938.427009][6617:6622] CHIP:DMG: - [1653028938.427017][6617:6622] CHIP:DMG: InteractionModelRevision = 1 + [1653028938.427017][6617:6622] CHIP:DMG: InteractionModelRevision = 1 [1653028938.427024][6617:6622] CHIP:DMG: } ./chip-tool levelcontrol read on-level 1 1 - Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. + on TH verify that TH receives the WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. [1655201977.366318][3837:3842] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3958539604 - [1655201977.366411][3837:3842] CHIP:TOO: on level: 3 + [1655201977.366411][3837:3842] CHIP:TOO: on level: 3 [1655201977.366511][3837:3842] CHIP:EM: Sending Standalone Ack for MessageCounter:237652616 on exchange 15939i disabled: true @@ -776,52 +786,51 @@ tests: ./chip-tool levelcontrol read on-level 1 1 - Verify On TH, Verify DUT is responsds with attribute value + On TH, Verify that DUT is responds with attribute value [1653029048.535610][6634:6639] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3301562287 - [1653029048.535653][6634:6639] CHIP:TOO: on level: 3 + [1653029048.535653][6634:6639] CHIP:TOO: on level: 3 ./chip-tool levelcontrol write on-level 4 1 1 - Veify On TH, DUT sends a Write Response message with a success + On TH, DUT send a Write Response message with status code as success - [1653029055.885156][6643:6648] CHIP:DMG: } + [1653029055.885156][6643:6648] CHIP:DMG: } [1653029055.885169][6643:6648] CHIP:DMG: - [1653029055.885178][6643:6648] CHIP:DMG: StatusIB = - [1653029055.885189][6643:6648] CHIP:DMG: { - [1653029055.885199][6643:6648] CHIP:DMG: status = 0x00 (SUCCESS), - [1653029055.885209][6643:6648] CHIP:DMG: }, + [1653029055.885178][6643:6648] CHIP:DMG: StatusIB = + [1653029055.885189][6643:6648] CHIP:DMG: { + [1653029055.885199][6643:6648] CHIP:DMG: status = 0x00 (SUCCESS), + [1653029055.885209][6643:6648] CHIP:DMG: }, [1653029055.885219][6643:6648] CHIP:DMG: - ./chip-tool levelcontrol write on-level 4 1 1 --data-version 0xc4c9d7af - - Verify on TH, DUT is responsds with DATA_VERSION_MISMATCH for the second Write request. + ./chip-tool levelcontrol write on-level 4 1 1 --data-version 0xc4c9d7af + on TH, verify that DUT responds as DATA_VERSION_MISMATCH for the second Write request. [1653029088.401601][6655:6660] CHIP:DMG: WriteResponseMessage = [1653029088.401614][6655:6660] CHIP:DMG: { - [1653029088.401623][6655:6660] CHIP:DMG: AttributeStatusIBs = - [1653029088.401638][6655:6660] CHIP:DMG: [ - [1653029088.401647][6655:6660] CHIP:DMG: AttributeStatusIB = - [1653029088.401657][6655:6660] CHIP:DMG: { - [1653029088.401668][6655:6660] CHIP:DMG: AttributePathIB = - [1653029088.401682][6655:6660] CHIP:DMG: { - [1653029088.401694][6655:6660] CHIP:DMG: Endpoint = 0x1, - [1653029088.401712][6655:6660] CHIP:DMG: Cluster = 0x8, - [1653029088.401823][6655:6660] CHIP:DMG: Attribute = 0x0000_0011, - [1653029088.401836][6655:6660] CHIP:DMG: } + [1653029088.401623][6655:6660] CHIP:DMG: AttributeStatusIBs = + [1653029088.401638][6655:6660] CHIP:DMG: [ + [1653029088.401647][6655:6660] CHIP:DMG: AttributeStatusIB = + [1653029088.401657][6655:6660] CHIP:DMG: { + [1653029088.401668][6655:6660] CHIP:DMG: AttributePathIB = + [1653029088.401682][6655:6660] CHIP:DMG: { + [1653029088.401694][6655:6660] CHIP:DMG: Endpoint = 0x1, + [1653029088.401712][6655:6660] CHIP:DMG: Cluster = 0x8, + [1653029088.401823][6655:6660] CHIP:DMG: Attribute = 0x0000_0011, + [1653029088.401836][6655:6660] CHIP:DMG: } [1653029088.401855][6655:6660] CHIP:DMG: - [1653029088.401869][6655:6660] CHIP:DMG: StatusIB = - [1653029088.401884][6655:6660] CHIP:DMG: { - [1653029088.401899][6655:6660] CHIP:DMG: status = 0x92 (DATA_VERSION_MISMATCH), - [1653029088.401912][6655:6660] CHIP:DMG: }, + [1653029088.401869][6655:6660] CHIP:DMG: StatusIB = + [1653029088.401884][6655:6660] CHIP:DMG: { + [1653029088.401899][6655:6660] CHIP:DMG: status = 0x92 (DATA_VERSION_MISMATCH), + [1653029088.401912][6655:6660] CHIP:DMG: }, [1653029088.401928][6655:6660] CHIP:DMG: - [1653029088.401940][6655:6660] CHIP:DMG: }, + [1653029088.401940][6655:6660] CHIP:DMG: }, [1653029088.401956][6655:6660] CHIP:DMG: - [1653029088.401967][6655:6660] CHIP:DMG: ], + [1653029088.401967][6655:6660] CHIP:DMG: ], [1653029088.401984][6655:6660] CHIP:DMG: - [1653029088.401997][6655:6660] CHIP:DMG: InteractionModelRevision = 1 + [1653029088.401997][6655:6660] CHIP:DMG: InteractionModelRevision = 1 [1653029088.402009][6655:6660] CHIP:DMG: } [1653029088.402059][6655:6660] CHIP:DMG: WriteClient moving to [AwaitingDe] [1653029088.402079][6655:6660] CHIP:TOO: Response Failure: IM Error 0x00000592: General error: 0x92 (DATA_VERSION_MISMATCH) @@ -833,4 +842,6 @@ tests: and this action is not part of a Timed Write transaction." verification: | DUT implementation required to verify write an attribute which need NEEDS_TIMED_INTERACTION. + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml index 2668ec4649a277..6e65a74fe92f83 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml @@ -482,6 +482,9 @@ tests: PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_Integer verification: | DUT implementation required to verify subscribe an attribute of data type signed integer + + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -492,6 +495,10 @@ tests: PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_FloatingPoint verification: | DUT implementation required to verify subscribe an attribute of data type floating point + + + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -502,6 +509,10 @@ tests: PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_List verification: | DUT implementation required to verify subscribe and list an attribute of data type list + + + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml index a6b78a9c57ad9b..7161818f8f8f83 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml @@ -44,7 +44,7 @@ tests: Here the command to enter interactive mode:-- ./chip-tool interactive start onoff subscribe on-off 100 3900(65 mins) 1 1 - On TH, verify that the report data message is received from DUT and check it contains all the data which mentioned in expected outcome + On TH(chip-tool), verify that the report data message is received from DUT and check it contains all the data which mentioned in expected outcome m RetransTable on exchange 33626i [1657449840.232430][11635:11640] CHIP:DMG: ReportDataMessage = [1657449840.232485][11635:11640] CHIP:DMG: { @@ -100,7 +100,7 @@ tests: Here the command to enter interactive mode:-- ./chip-tool interactive start basic subscribe location 10 2400 1 0 - On TH, verify that the report data message is received from DUT and check it contains all the data which mentioned in expected outcome + On TH(chip-tool), verify that the report data message is received from DUT and check it contains all the data which mentioned in expected outcome m RetransTable on exchange 33628i [1657450022.756280][11635:11640] CHIP:DMG: ReportDataMessage = [1657450022.756349][11635:11640] CHIP:DMG: { @@ -269,7 +269,7 @@ tests: onoff subscribe on-time 100 100 1 1 - On TH verify that the DUT sends a report data with the value of the attribute after the MinIntervalFloor time. + On TH(chip-tool) verify that the DUT sends a report data with the value of the attribute after the MinIntervalFloor time. [1657450934.856825][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733053 from RetransTable on exchange 33631i [1657450934.856955][11635:11640] CHIP:DMG: ReportDataMessage = @@ -314,11 +314,11 @@ tests: onoff subscribe on-time 500 100 1 1 - On TH Verify that the DUT sends an error message + On TH(chip-tool) Verify that the DUT sends an error message [1661754615.089845][103654:103659] CHIP:DMG: StatusResponseMessage = [1661754615.089857][103654:103659] CHIP:DMG: { - [1661754615.089868][103654:103659] CHIP:DMG: Status = 0x80 (INVALID_ACTION), - [1661754615.089879][103654:103659] CHIP:DMG: InteractionModelRevision = 1 + [1661754615.089868][103654:103659] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1661754615.089879][103654:103659] CHIP:DMG: InteractionModelRevision = 1 [1661754615.089889][103654:103659] CHIP:DMG: } [1661754615.089901][103654:103659] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) [1661754615.089927][103654:103659] CHIP:EM: Piggybacking Ack for MessageCounter:223396916 on exchange: 6193i @@ -336,7 +336,7 @@ tests: any subscribe-by-id 0xFFFFFFFF 0xFFFD 10 300 1 0xFFFF - On TH Verify that the Subscription succeeds and the DUT sends back the attribute values for the global attribute + On TH(chip-tool) Verify that the Subscription succeeds and the DUT sends back the attribute values for the global attribute disabled: true - label: @@ -351,7 +351,7 @@ tests: any subscribe-by-id 0xFFFFFFFF 0xFFFD 10 300 1 0 - On TH Verify that the Subscription succeeds and the DUT sends back the attribute values for the global attribute + On TH(chip-tool) Verify that the Subscription succeeds and the DUT sends back the attribute values for the global attribute [1657451191.595630][11635:11640] CHIP:DMG: InteractionModelRevision = 1 [1657451191.595654][11635:11640] CHIP:DMG: } diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_3.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_3.yaml index 83b835c74291dc..0098180fec907f 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_3.yaml @@ -55,7 +55,7 @@ tests: Here the command to enter interactive mode:-- ./chip-tool interactive start onoff subscribe start-up-on-off 30 100 1 1 - on TH, verify that DUT is responds right attribute value for above command + on TH(chip-tool), verify that DUT is responds right attribute value for above command [1657451357.177831][11635:11640] CHIP:DMG: { [1657451357.177894][11635:11640] CHIP:DMG: SubscriptionId = 0xf3aa49ef, @@ -133,7 +133,7 @@ tests: Here the command to enter interactive mode:-- ./chip-tool interactive start onoff subscribe on-off 10 200 1 1 - on TH verify Verify that DUT is responds right attribute value for above command + on TH(chip-tool) verify Verify that DUT is responds right attribute value for above command [1657451491.078934][11635:11640] CHIP:DMG: ReportDataMessage = [1657451491.079004][11635:11640] CHIP:DMG: { @@ -167,7 +167,7 @@ tests: onoff subscribe on-off 10 200 1 1 --data-version 0x1979c38 - On TH, Verify that there is an empty report data message sent from the DUT to the TH + On TH(chip-tool), Verify that there is an empty report data message sent from the DUT to the TH [1657451619.059013][11635:11640] CHIP:DMG: ReportDataMessage = [1657451619.059083][11635:11640] CHIP:DMG: { [1657451619.059145][11635:11640] CHIP:DMG: SubscriptionId = 0x28f3dd7, @@ -201,7 +201,7 @@ tests: basic subscribe local-config-disabled 100 200 1 0 - on TH verify that DUT is responds right attribute value for above command and then send write command to change the attribute value, verify the attribute value is modified or not. + on TH(chip-tool) verify that DUT is responds right attribute value for above command and then send write command to change the attribute value, verify the attribute value is modified or not. [1657451690.259096][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733078 from RetransTable on exchange 33639i [1657451690.259223][11635:11640] CHIP:DMG: ReportDataMessage = [1657451690.259295][11635:11640] CHIP:DMG: { @@ -291,7 +291,7 @@ tests: basic subscribe node-label 10 100 1 0 - on TH verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. + on TH(chip-tool) verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. 1657452002.280167][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733100 from RetransTable on exchange 33648i [1657452002.280291][11635:11640] CHIP:DMG: ReportDataMessage = @@ -378,7 +378,7 @@ tests: any subscribe-by-id 0x0008 0x0010 10 100 1 1 - on TH verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. + on TH(chip-tool) verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. [1657452196.617935][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733107 from RetransTable on exchange 33650i [1657452196.618061][11635:11640] CHIP:DMG: ReportDataMessage = @@ -459,6 +459,9 @@ tests: PICS: MCORE.IDM.S.Attribute.DataType_SignedInteger verification: | Subscribe to an attribute of type signed integer to the Harness + + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -470,6 +473,9 @@ tests: PICS: MCORE.IDM.S.Attribute.DataType_FloatingPoint verification: | Subscribe to an attribute of type floating point to the Harness + + + If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -488,7 +494,7 @@ tests: userlabel subscribe label-list 100 500 1 0 - On TH verify that DUT is responds right attribute value for above command + On TH(chip-tool) verify that DUT is responds right attribute value for above command [1655896309.160632][1885:1890] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0041 Attribute 0x0000_0000 DataVersion: 3773922725 [1655896309.160795][1885:1890] CHIP:TOO: label list: 0 entries [1655896309.160851][1885:1890] CHIP:DMG: MoveToState ReadClient[0xffffa0005710]: Moving to [AwaitingSu] @@ -527,7 +533,7 @@ tests: Here the command to enter interactive mode:-- ./chip-tool interactive start basic subscribe local-config-disabled 10 100 1 0 --keepSubscriptions 0 - on TH verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. + on TH(chip-tool) verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. [1657453109.707943][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733139 from RetransTable on exchange 33658i [1657453109.708065][11635:11640] CHIP:DMG: ReportDataMessage = @@ -641,7 +647,7 @@ tests: levelcontrol subscribe on-level 10 80 1 1 - On TH verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. + On TH(chip-tool) verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. [1657453503.538054][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733149 from RetransTable on exchange 33661i [1657453503.538172][11635:11640] CHIP:DMG: ReportDataMessage = @@ -721,7 +727,7 @@ tests: onoff subscribe on-time 100 1000 1 1 - On TH Verify that the DUT sends a Report Data action and There are no attribute value changes before MaxInterval elapses. + On TH(chip-tool) Verify that the DUT sends a Report Data action and There are no attribute value changes before MaxInterval elapses. [1657453718.436970][11635:11640] CHIP:DMG: ReportDataMessage = [1657453718.437043][11635:11640] CHIP:DMG: { [1657453718.437108][11635:11640] CHIP:DMG: SubscriptionId = 0xce00f651, @@ -773,7 +779,7 @@ tests: >>> onoff subscribe off-wait-time 10 500 1 1 --keepSubscriptions 1 - On TH verify that DUT is responds right attribute value for above command and then send write command to change the attribute value, verify the attribute value is modified or not for both attributes + On TH(chip-tool) verify that DUT is responds right attribute value for above command and then send write command to change the attribute value, verify the attribute value is modified or not for both attributes [1657454078.091825][11635:11640] CHIP:DMG: ReportDataMessage = @@ -871,7 +877,7 @@ tests: [1657454115.801076][11635:11640] CHIP:DMG: Refresh LivenessCheckTime for 525000 milliseconds with SubscriptionId = 0x732d29f8 Peer = 01:0000000000000001 - here is an example command the TH can write an attribute in the onoff cluster in the DUT to change the value that the TH subscribed in the above command. + here is an example command the TH can write an attribute in the onoff cluster in the DUT to change the value that the TH(chip-tool) subscribed in the above command. onoff write on-time 2 1 1 [1657454129.447088][11635:11640] CHIP:DMG: ReportDataMessage = [1657454129.447157][11635:11640] CHIP:DMG: { @@ -999,7 +1005,7 @@ tests: [1657454614.585029][11635:11640] CHIP:TOO: OffWaitTime: 3 [1657454614.585094][11635:11640] CHIP:DMG: MoveToState ReadClient[0xffff940092b0]: Moving to [AwaitingSu] - here is an example command the TH can write an attribute in the onoff cluster in the DUT to change the value that the TH subscribed in the above command. + here is an example command the TH can write an attribute in the onoff cluster in the DUT to change the value that the TH(chip-tool) subscribed in the above command. onoff write on-time 1 1 1 @@ -1027,7 +1033,7 @@ tests: [1657455187.788687][11635:11640] CHIP:DMG: [1657455187.788687][11635:11640] CHIP:DMG: }, - here is an example command the TH can write an attribute in the onoff cluster in the DUT to change the value that the TH subscribed in the above command. + here is an example command the TH can write an attribute in the onoff cluster in the DUT to change the value that the TH(chip-tool) subscribed in the above command. onoff write off-wait-time 1 1 1 On TH verify that, TH received a report data from DUT @@ -1099,7 +1105,7 @@ tests: Here the command to enter interactive mode:-- ./chip-tool interactive start onoff subscribe-by-id 0x4001 200 700 1 0xFFFF - on TH, verify that DUT is responds right attribute value for command and then send write command to change the attribute value, + on TH(chip-tool), verify that DUT is responds right attribute value for command and then send write command to change the attribute value, [1658322253.825601][4866:4871] CHIP:DMG: ReportDataMessage = [1658322253.825662][4866:4871] CHIP:DMG: { [1658322253.825714][4866:4871] CHIP:DMG: SubscriptionId = 0x42baa1, diff --git a/src/app/tests/suites/certification/Test_TC_IDM_5_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_5_1.yaml index a4cde5ef8f5e0f..a0ea2ea2f013f5 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_5_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_5_1.yaml @@ -77,7 +77,7 @@ tests: [1655797318.627467][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - On DUT as a client side, verify that TH all-clusters-app sent success response + If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID [1657886182.184612][3396:3401] CHIP:DMG: StatusResponseMessage = [1657886182.184642][3396:3401] CHIP:DMG: { [1657886182.184667][3396:3401] CHIP:DMG: Status = 0x00 (SUCCESS), @@ -171,9 +171,7 @@ tests: [1657459639.600888][11525:11525] CHIP:DMG: AccessControl: allowed [1657459639.600936][11525:11525] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to 1979c48 - - On DUT as a client side, verify that TH all-clusters-app sent success response - + If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID [1657886272.645704][3404:3409] CHIP:DMG: StatusResponseMessage = [1657886272.645751][3404:3409] CHIP:DMG: { [1657886272.645792][3404:3409] CHIP:DMG: Status = 0x00 (SUCCESS), diff --git a/src/app/tests/suites/certification/Test_TC_IDM_5_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_5_2.yaml index 7af4f90801e449..c2f6ed887889a1 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_5_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_5_2.yaml @@ -33,7 +33,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. ./chip-tool onoff on 1 1 --timedInteractionTimeoutMs 200 - Verify on TH receives the StatusResponseMessage for the data sent in the above command + Verify on TH(chip-tool) receives the StatusResponseMessage for the data sent in the above command [1655798564.112839][7055:7060] CHIP:DMG: StatusResponseMessage = [1655798564.112870][7055:7060] CHIP:DMG: { @@ -53,7 +53,7 @@ tests: ./chip-tool levelcontrol write on-level 1 1 1 --timedInteractionTimeoutMs 500 - Verify on TH receives the WriteResponseMessage for the data sent in the above command + Verify on TH(chip-tool) receives the WriteResponseMessage for the data sent in the above command [1655798786.131890][7065:7070] CHIP:DMG: WriteResponseMessage = [1655798786.131932][7065:7070] CHIP:DMG: { @@ -99,7 +99,7 @@ tests: sudo ./chip-tool onoff on 1 1 --repeat-delay-ms 5000 --timedInteractionTimeoutMs 200 - On TH, Verify we are getting status response and UNSUPPORTED_ACCESS from DUT to TH for above command + On TH(chip-tool), Verify we are getting status response and UNSUPPORTED_ACCESS from DUT to TH for above command [1649686333.696111][3252:3257] CHIP:DMG: StatusResponseMessage = [1649686333.696178][3252:3257] CHIP:DMG: { @@ -135,7 +135,7 @@ tests: ./chip-tool modeselect write on-mode 0 1 1 --repeat-delay-ms 1000 --timedInteractionTimeoutMs 500 - On TH, Verify we are getting status response and UNSUPPORTED_ACCESS from DUT to TH for above command + On TH(chip-tool), Verify we are getting status response and UNSUPPORTED_ACCESS from DUT to TH for above command [1654771611.106067][28715:28720] CHIP:DMG: WriteClient moving to [ResponseRe] [1654771611.106112][28715:28720] CHIP:DMG: StatusResponseMessage = diff --git a/src/app/tests/suites/certification/Test_TC_IDM_6_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_6_1.yaml index f086a2fcb87d61..35f087fa7fd66e 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_6_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_6_1.yaml @@ -35,7 +35,7 @@ tests: sudo ./chip-tool basic read-event start-up 1 0 - On TH verify DUT sends Report Data Message with the data for specific event in Read Request Message. + On TH(chip-tool) verify DUT sends Report Data Message with the data for specific event in Read Request Message. [1653051591.078855][11664:11669] CHIP:DMG: ReportDataMessage = [1653051591.078885][11664:11669] CHIP:DMG: { @@ -86,7 +86,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. ./chip-tool any read-event-by-id 0x0028 0x0FFFFFFFF 1 0 - On TH verify DUT sends Report Data Message with the data for specific event in Read Request Message. + On TH(chip-tool) verify DUT sends Report Data Message with the data for specific event in Read Request Message. [1652420332.235228][6031:6036] CHIP:DMG: ReportDataMessage = [1652420332.235259][6031:6036] CHIP:DMG: { [1652420332.235283][6031:6036] CHIP:DMG: EventReportIBs = @@ -135,7 +135,7 @@ tests: verification: | ./chip-tool any read-event-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0 - On TH verify DUT sends Report Data Message with the data for specific event in Read Request Message. + On TH(chip-tool) verify DUT sends Report Data Message with the data for specific event in Read Request Message. [1651584987.671229][2932:2937] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0000 [1651584987.671263][2932:2937] CHIP:TOO: Event number: 0 [1651584987.671294][2932:2937] CHIP:TOO: Priority: Critical @@ -180,7 +180,7 @@ tests: sudo ./chip-tool basic read-event start-up 1 0xFFFF - On TH, verify DUT sends Report Data Message with the data for specific event in Read Request Message. + On TH(chip-tool), verify DUT sends Report Data Message with the data for specific event in Read Request Message. [1653051642.744722][11676:11681] CHIP:DMG: ReportDataMessage = [1653051642.744736][11676:11681] CHIP:DMG: { @@ -231,7 +231,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. sudo ./chip-tool basic read-event-by-id 0xFFFFFFFF 1 0xFFFF - On TH verify DUT sends Report Data Message with the data for specific event in Read Request Message. + On TH(chip-tool) verify DUT sends Report Data Message with the data for specific event in Read Request Message. [1653051699.893049][11691:11696] CHIP:DMG: ReportDataMessage = [1653051699.893068][11691:11696] CHIP:DMG: { @@ -280,7 +280,7 @@ tests: Wildcard]." verification: | sudo ./chip-tool any read-event-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF - On TH verify DUT sends Report Data Message with the data for specific event in Read Request Message. + On TH(chip-tool) verify DUT sends Report Data Message with the data for specific event in Read Request Message. [1653051769.144914][11706:11711] CHIP:DMG: ReportDataMessage = [1653051769.144939][11706:11711] CHIP:DMG: { [1653051769.144954][11706:11711] CHIP:DMG: EventReportIBs = @@ -407,7 +407,7 @@ tests: "TH sends Read Request Message to DUT with EventRequests set to path which indicates a cluster event that is not supported." verification: | - cannot be executed with V1.0 SDK. + Mark this as not testable /NA. Out of Scope for V1.0 disabled: true - label: @@ -513,7 +513,7 @@ tests: ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [1234], "targets": null}]" 1 0 ./chip-tool any read-event-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF - On TH verify DUT sends Report Data Message with no entry for that event in EventReports list. + On TH(chip-tool) verify DUT sends Report Data Message with no entry for that event in EventReports list. [1653054297.608259][12300:12305] CHIP:DMG: ReportDataMessage = [1653054297.608278][12300:12305] CHIP:DMG: { @@ -535,7 +535,7 @@ tests: sudo ./chip-tool any read-event-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF - On TH verify that the DUT sends Report Data Message with EventReports + On TH(chip-tool) verify that the DUT sends Report Data Message with EventReports [1655986008.400642][4813:4818] CHIP:DMG: } [1655986008.400859][4813:4818] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0000 @@ -607,7 +607,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster. sudo ./chip-tool basic read-event start-up 1 0 --event-min 131073 - On TH verify that the DUT sends Report Data Message with empty EventReports + On TH(chip-tool) verify that the DUT sends Report Data Message with empty EventReports [1650622225.700153][3069:3074] CHIP:DMG: ReportDataMessage = [1650622225.700193][3069:3074] CHIP:DMG: { [1650622225.700227][3069:3074] CHIP:DMG: SuppressResponse = true, @@ -632,7 +632,7 @@ tests: DUT -> TH ReportData, last chunk, SuppressResponse set to true TH -> DUT standalone ack - On TH verify that The last chunked message should not receive any status response from the DUT + On TH(chip-tool) verify that The last chunked message should not receive any status response from the DUT [1656510389.524811][20396:20396] CHIP:DMG: Fetched 16 events [1656510389.524838][20396:20396] CHIP:DMG: Sending report (payload has 973 bytes)... diff --git a/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml index 44d3fdc830fa0e..7b975023679079 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml @@ -46,7 +46,7 @@ tests: basic subscribe-event start-up 20 100 1 0 - On TH verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT + On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT [1657455811.902338][11635:11640] CHIP:EM: Rxd Ack; Removing MessageCounter:190733244 from Retrans Table on exchange 33691i [1657455811.902404][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733244 from RetransTable on exchange 33691i @@ -102,7 +102,7 @@ tests: basic subscribe-event-by-id 0xFFFFFFFF 10 100 1 0 - On TH verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT + On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT [1657455904.721037][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733247 from RetransTable on exchange 33692i @@ -158,7 +158,7 @@ tests: Please run this test in chip tool interactive mode ./chip-tool interactive start any subscribe-event-by-id 0xFFFFFFFF 0xFFFFFFFF 20 100 1 0 - On TH verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT + On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT [1657455981.545783][11635:11640] CHIP:EM: Rxd Ack; Removing MessageCounter:190733250 from Retrans Table on exchange 33693i [1657455981.545845][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733250 from RetransTable on exchange 33693i [1657455981.545995][11635:11640] CHIP:DMG: ReportDataMessage = @@ -265,7 +265,7 @@ tests: Please run this test in chip tool interactive mode ./chip-tool interactive start basic subscribe-event-by-id 0x00 10 700 1 0xFFFF - On TH verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT + On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT [1657456063.474971][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733253 from RetransTable on exchange 33694i [1657456063.475103][11635:11640] CHIP:DMG: ReportDataMessage = [1657456063.475171][11635:11640] CHIP:DMG: { @@ -318,7 +318,7 @@ tests: Please run this test in chip tool interactive mode ./chip-tool interactive start basic subscribe-event-by-id 0xFFFFFFFF 10 100 1 0xFFFF - On TH verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT + On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT [1657456157.932285][11635:11640] CHIP:EM: Rxd Ack; Removing MessageCounter:190733256 from Retrans Table on exchange 33695i [1657456157.932327][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733256 from RetransTable on exchange 33695i [1657456157.932418][11635:11640] CHIP:DMG: ReportDataMessage = @@ -372,7 +372,7 @@ tests: Please run this test in chip tool interactive mode ./chip-tool interactive start any subscribe-event-by-id 0xFFFFFFFF 0xFFFFFFFF 100 1000 1 0xFFFF - On TH verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT + On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT [1657456221.167627][11635:11640] CHIP:DMG: ReportDataMessage = [1657456221.167698][11635:11640] CHIP:DMG: { [1657456221.167760][11635:11640] CHIP:DMG: SubscriptionId = 0xbcc84d35, @@ -592,7 +592,7 @@ tests: basic subscribe-event-by-id 0x000 100 1000 1 0 - On TH verify that the Report Data Message for event only after the minimum interval has expiredwith SubscriptionId which uniquely identifies this subscription events in Subscribe Request Message from DUT. + On TH(chip-tool) verify that the Report Data Message for event only after the minimum interval has expiredwith SubscriptionId which uniquely identifies this subscription events in Subscribe Request Message from DUT. [1657456305.446793][11635:11640] CHIP:EM: Rxd Ack; Removing MessageCounter:190733262 from Retrans Table on exchange 33697i [1657456305.446853][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733262 from RetransTable on exchange 33697i [1657456305.446978][11635:11640] CHIP:DMG: ReportDataMessage = @@ -647,7 +647,7 @@ tests: basic subscribe-event start-up 30 100 1 0 --is-urgent true - On TH verify that the Report Data Message for all subscribed events, + On TH(chip-tool) verify that the Report Data Message for all subscribed events, [1657456352.516479][11635:11640] CHIP:DMG: ReportDataMessage = [1657456352.516569][11635:11640] CHIP:DMG: { [1657456352.516631][11635:11640] CHIP:DMG: SubscriptionId = 0x88b484dc, @@ -698,7 +698,7 @@ tests: basic subscribe-event start-up 20 100 1 0 - On TH verify that the Report Data Message from DUT to TH + On TH(chip-tool) verify that the Report Data Message from DUT to TH [1656586853.121700][3433:3438] CHIP:EM: Removed CHIP MessageCounter:63910370 from RetransTable on exchange 37869i [1656586853.121777][3433:3438] CHIP:DMG: ReportDataMessage = @@ -751,7 +751,7 @@ tests: basic subscribe-event-by-id 0x000 10 500 1 0 - On TH verify that the Report Data Message any event changes for the second subscribe request sent by the TH with SubscriptionId which uniquely identifies this subscription events in Subscribe Request Message from DUT. + On TH(chip-tool) verify that the Report Data Message any event changes for the second subscribe request sent by the TH with SubscriptionId which uniquely identifies this subscription events in Subscribe Request Message from DUT. [1657456542.476859][11635:11640] CHIP:DMG: ReportDataMessage = [1657456542.476888][11635:11640] CHIP:DMG: { @@ -846,7 +846,7 @@ tests: basic subscribe-event-by-id 0x000 20 400 1 0 - On TH verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher, Maximuminterval and miinimuminterval in seconds for events in Subscribe Request Message from DUT + On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher, Maximuminterval and miinimuminterval in seconds for events in Subscribe Request Message from DUT [1655979596.078821][4557:4562] CHIP:DMG: SubscribeResponseMessage = [1655979596.078861][4557:4562] CHIP:DMG: { @@ -881,14 +881,14 @@ tests: Please run this test in chip tool interactive mode ./chip-tool interactive start - To Setup the TH such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command + To Setup the TH(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command Here by sending below mentioned ACL command giving only access for identify cluster(3), So except identify cluster command if try to send any other command will get status as unsupported access. accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets":[{ "cluster": 3, "endpoint": 1, "deviceType": null }]}]" 1 0 basic subscribe-event-by-id 0x000 100 1000 1 0 - In TH log verify DUT responds with UNSUPPORTED_ACCESS for the data sent in the above command + on TH(chip-tool) verify DUT responds with UNSUPPORTED_ACCESS for the data sent in the above command [1653479886.551289][22629:22634] CHIP:DMG: ReportDataMessage = @@ -965,7 +965,7 @@ tests: accesscontrol subscribe-event access-control-entry-changed 5 10 1 0 - On TH, verify that the Report Data Message with EventReports for event numbers higher than the EventMin field and + On TH(chip-tool), verify that the Report Data Message with EventReports for event numbers higher than the EventMin field and Verify that the subsequent ReportData actions as part of the subscription include the latest EventNo associated with each node generating new events @@ -1177,7 +1177,7 @@ tests: basic subscribe-event-by-id 0x000 100 1000 1 0 --event-min 1 - On TH verify that the Report Data Message with empty EventReports from DUT + On TH(chip-tool) verify that the Report Data Message with empty EventReports from DUT [1655980488.281744][4665:4671] CHIP:EM: Removed CHIP MessageCounter:255017723 from RetransTable on exchange 3120i [1655980488.281823][4665:4671] CHIP:DMG: ReportDataMessage = [1655980488.281891][4665:4671] CHIP:DMG: { @@ -1197,7 +1197,7 @@ tests: Please run this test in chip tool interactive mode ./chip-tool interactive start accesscontrol subscribe-event access-control-entry-changed 20 500 1 0 - On TH verify that each event number + On TH(chip-tool) verify that each event number [1658405014.975407][4236:4241] CHIP:DMG: } [1658405014.975582][4236:4241] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 [1658405014.975608][4236:4241] CHIP:TOO: Event number: 2 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 913ad1cc5aaa00..e763745f1a8d63 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 @@ -50,15 +50,32 @@ tests: constraints: type: bitmap32 - - label: "Read the global attribute: FeatureMap" - PICS: KEYPADINPUT.S.NV || KEYPADINPUT.S.LK || KEYPADINPUT.S.NK + - label: "Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not" + PICS: KEYPADINPUT.S.NV + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not" + PICS: KEYPADINPUT.S.LK + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] + + - label: "Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not" + PICS: KEYPADINPUT.S.NK command: "readAttribute" attribute: "FeatureMap" response: constraints: type: bitmap32 - minValue: 1 - maxValue: 7 + hasMasksSet: [0x4] - label: "Read the global attribute: AttributeList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_LUNIT_3_1.yaml b/src/app/tests/suites/certification/Test_TC_LUNIT_3_1.yaml index 65cf0234b844f8..80256a67903b71 100644 --- a/src/app/tests/suites/certification/Test_TC_LUNIT_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LUNIT_3_1.yaml @@ -43,7 +43,7 @@ tests: type: enum8 - label: "TH writes 0 (Fahrenheit) to TemperatureUnit attribute" - PICS: LUNIT.C.A0000.Fahrenheit + PICS: LUNIT.S.A0000 && LUNIT.TempUnit.Fahrenheit cluster: "Unit Localization" command: "writeAttribute" attribute: "TemperatureUnit" @@ -51,14 +51,14 @@ tests: value: 0 - label: "TH reads TemperatureUnit attribute" - PICS: LUNIT.C.A0000 + PICS: LUNIT.S.A0000 && LUNIT.TempUnit.Fahrenheit command: "readAttribute" attribute: "TemperatureUnit" response: value: 0 - label: "TH writes 1 (Celsius) to TemperatureUnit attribute" - PICS: LUNIT.C.A0000.Celsius + PICS: LUNIT.S.A0000 && LUNIT.TempUnit.Celsius cluster: "Unit Localization" command: "writeAttribute" attribute: "TemperatureUnit" @@ -66,14 +66,14 @@ tests: value: 1 - label: "TH reads TemperatureUnit attribute" - PICS: LUNIT.C.A0000 + PICS: LUNIT.S.A0000 && LUNIT.TempUnit.Celsius command: "readAttribute" attribute: "TemperatureUnit" response: value: 1 - label: "TH writes 2 (Kelvin) to TemperatureUnit attribute" - PICS: LUNIT.C.A0000.Kelvin + PICS: LUNIT.S.A0000 && LUNIT.TempUnit.Kelvin cluster: "Unit Localization" command: "writeAttribute" attribute: "TemperatureUnit" @@ -81,14 +81,14 @@ tests: value: 2 - label: "TH reads TemperatureUnit attribute" - PICS: LUNIT.C.A0000 + PICS: LUNIT.S.A0000 && LUNIT.TempUnit.Kelvin command: "readAttribute" attribute: "TemperatureUnit" response: value: 2 - label: "TH writes 5 to TemperatureUnit attribute" - PICS: LUNIT.C.A0000 + PICS: LUNIT.S.A0000 cluster: "Unit Localization" command: "writeAttribute" attribute: "TemperatureUnit" 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 1b3f3a04c45b3b..3e025cb13a09ed 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 @@ -40,23 +40,40 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: LVL.S.F00 || LVL.S.F01 || LVL.S.F02 + PICS: " !LVL.S.F00 && !LVL.S.F01 && !LVL.S.F02 " command: "readAttribute" attribute: "FeatureMap" response: + value: 0 constraints: type: bitmap32 - minValue: 1 - maxValue: 7 - - label: "Read the global attribute: FeatureMap" - PICS: " !LVL.S.F00 && !LVL.S.F01 && !LVL.S.F02 " + - label: "Given LVL.S.F00(OO) ensure featuremap has the correct bit set" + PICS: LVL.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "Given LVL.S.F01(LT) ensure featuremap has the correct bit set" + PICS: LVL.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] + + - label: "Given LVL.S.F02(FQ) ensure featuremap has the correct bit set" + PICS: LVL.S.F02 command: "readAttribute" attribute: "FeatureMap" response: - value: 0 constraints: type: bitmap32 + hasMasksSet: [0x4] - label: "Read the global attribute: AttributeList" command: "readAttribute" 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 a155ab61cc3493..908fa66a1be126 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 @@ -50,15 +50,25 @@ tests: constraints: type: bitmap32 - - label: "Read the global attribute: FeatureMap" - PICS: MEDIAPLAYBACK.S.AS || MEDIAPLAYBACK.S.VS + - label: + "Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set" + PICS: MEDIAPLAYBACK.S.AS + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: + "Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set" + PICS: MEDIAPLAYBACK.S.VS command: "readAttribute" attribute: "FeatureMap" response: constraints: type: bitmap32 - minValue: 1 - maxValue: 3 + hasMasksSet: [0x2] - label: "Read the global attribute: AttributeList" 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 b94c8d6d67bded..aed0e955fd2567 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 @@ -42,20 +42,20 @@ tests: - label: "Read the global attribute: FeatureMap" command: "readAttribute" attribute: "FeatureMap" - PICS: OO.S.F00 + PICS: " !OO.S.F00 " response: value: 1 constraints: type: bitmap32 - - label: "Read the global attribute: FeatureMap" + - label: "Given OO.S.F00(LT) ensure featuremap has the correct bit set" command: "readAttribute" attribute: "FeatureMap" - PICS: " !OO.S.F00 " + PICS: OO.S.F00 response: - value: 0 constraints: type: bitmap32 + hasMasksSet: [0x1] - label: "Read the global attribute: AttributeList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml index d6af25ba58631c..313c82f44ebab9 100644 --- a/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml @@ -226,33 +226,38 @@ tests: - ./chip-tool onoff write start-up-on-off 60 1 1 + ./chip-tool onoff write start-up-on-off 2 1 1 verify the WriteRequestMessage of " start-up-on-off " on the TH (all-cluster-app) log: - [1650536431.411044][3678:3678] CHIP:DMG: WriteRequestMessage = - [1650536431.411090][3678:3678] CHIP:DMG: { - [1650536431.411132][3678:3678] CHIP:DMG: suppressResponse = false, - [1650536431.411180][3678:3678] CHIP:DMG: timedRequest = false, - [1650536431.411224][3678:3678] CHIP:DMG: AttributeDataIBs = - [1650536431.411278][3678:3678] CHIP:DMG: [4 - [1650536431.411323][3678:3678] CHIP:DMG: AttributeDataIB = - [1650536431.411386][3678:3678] CHIP:DMG: { - [1650536431.411434][3678:3678] CHIP:DMG: AttributePathIB = - [1650536431.411490][3678:3678] CHIP:DMG: { - [1650536431.411551][3678:3678] CHIP:DMG: Endpoint = 0x1, - [1650536431.411617][3678:3678] CHIP:DMG: Cluster = 0x6, - [1650536431.411683][3678:3678] CHIP:DMG: Attribute = 0x0000_4003, - [1650536431.411741][3678:3678] CHIP:DMG: } - [1650536431.411799][3678:3678] CHIP:DMG: - [1650536431.411863][3678:3678] CHIP:DMG: Data = 60, - [1650536431.411919][3678:3678] CHIP:DMG: }, - [1650536431.411972][3678:3678] CHIP:DMG: - [1650536431.412015][3678:3678] CHIP:DMG: ], - [1650536431.412068][3678:3678] CHIP:DMG: - [1650536431.412113][3678:3678] CHIP:DMG: moreChunkedMessages = false, - [1650536431.412165][3678:3678] CHIP:DMG: InteractionModelRevision = 1 - [1650536431.412214][3678:3678] CHIP:DMG: }, + [1661838915.672667][6867:6867] CHIP:DMG: WriteRequestMessage = + [1661838915.672676][6867:6867] CHIP:DMG: { + [1661838915.672684][6867:6867] CHIP:DMG: suppressResponse = false, + [1661838915.672692][6867:6867] CHIP:DMG: timedRequest = false, + [1661838915.672699][6867:6867] CHIP:DMG: AttributeDataIBs = + [1661838915.672711][6867:6867] CHIP:DMG: [ + [1661838915.672718][6867:6867] CHIP:DMG: AttributeDataIB = + [1661838915.672727][6867:6867] CHIP:DMG: { + [1661838915.672734][6867:6867] CHIP:DMG: AttributePathIB = + [1661838915.672744][6867:6867] CHIP:DMG: { + [1661838915.672753][6867:6867] CHIP:DMG: Endpoint = 0x1, + [1661838915.672761][6867:6867] CHIP:DMG: Cluster = 0x6, + [1661838915.672770][6867:6867] CHIP:DMG: Attribute = 0x0000_4003, + [1661838915.672778][6867:6867] CHIP:DMG: } + [1661838915.672788][6867:6867] CHIP:DMG: + [1661838915.672797][6867:6867] CHIP:DMG: Data = 2, + [1661838915.672805][6867:6867] CHIP:DMG: }, + [1661838915.672815][6867:6867] CHIP:DMG: + [1661838915.672825][6867:6867] CHIP:DMG: ], + [1661838915.672831][6867:6867] CHIP:DMG: + [1661838915.672834][6867:6867] CHIP:DMG: moreChunkedMessages = false, + [1661838915.672836][6867:6867] CHIP:DMG: InteractionModelRevision = 1 + [1661838915.672838][6867:6867] CHIP:DMG: }, + [1661838915.672852][6867:6867] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=m + [1661838915.672858][6867:6867] CHIP:DMG: AccessControl: allowed + [1661838915.672892][6867:6867] CHIP:DL: writing settings to file (/tmp/chip_kvs-mDTHyV) + [1661838915.672981][6867:6867] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1661838915.673010][6867:6867] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to daeb2f6d disabled: true - label: 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 891f809dcb87ec..1469e777eb197a 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 @@ -40,22 +40,22 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: PRS.S.F00 + PICS: " !PRS.S.F00 " command: "readAttribute" attribute: "FeatureMap" response: - value: 1 + value: 0 constraints: type: bitmap32 - - label: "Read the global attribute: FeatureMap" - PICS: " !PRS.S.F00 " + - label: "Given PRS.S.F00(EXT) ensure featuremap has the correct bit set" command: "readAttribute" attribute: "FeatureMap" + PICS: PRS.S.F00 response: - value: 0 constraints: type: bitmap32 + hasMasksSet: [0x1] - label: "Read the global mandatory attribute: AttributeList" command: "readAttribute" 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 0f419310c547c4..144b370114db90 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 @@ -40,13 +40,49 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" + PICS: " !PS.S.F00 && !PS.S.F01 && !PS.S.F02 && !PS.S.F03 " command: "readAttribute" attribute: "FeatureMap" response: + value: 0 constraints: type: bitmap32 - minValue: 0 - maxValue: 15 + + - label: "Given PS.S.F00(WIRED) ensure featuremap has the correct bit set" + PICS: PS.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "Given PS.S.F01(BAT) ensure featuremap has the correct bit set" + PICS: PS.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] + + - label: "Given PS.S.F02(RECHG) ensure featuremap has the correct bit set" + PICS: PS.S.F02 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2, 0x4] + + - label: "Given PS.S.F03(REPLC) ensure featuremap has the correct bit set" + PICS: PS.S.F03 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2, 0x8] - label: "Read the global attribute: AttributeList" command: "readAttribute" diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_8.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_8.yaml index afafe498b18e16..076710a8b9d060 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_8.yaml @@ -47,6 +47,7 @@ tests: - label: "DUT sends a QueryImage command to TH1/OTA-P. TH1/OTA-P does not respond with QueryImageResponse." + PICS: MCORE.OTA.Retry verification: | ./chip-tool otasoftwareupdaterequestor write default-ota-providers "[{"fabricIndex": 1, "providerNodeID": 3735928559, "endpoint": 0}]" 0x0000001234567890 0 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 066cca0924ef3f..838dd800a7ee60 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 @@ -31,11 +31,19 @@ tests: - name: "nodeId" value: nodeId + - label: "Read the global attribute: ClusterRevision" + command: "readAttribute" + attribute: "ClusterRevision" + response: + value: 1 + constraints: + type: int16u + - label: "Read FeatureMap attribute and Check values of flags in this FeatureMap" PICS: - "!SWTCH.S.F00 && SWTCH.S.F01 && !SWTCH.S.F02 && !SWTCH.S.F03 && + "!SWTCH.S.F00 && !SWTCH.S.F01 && !SWTCH.S.F02 && !SWTCH.S.F03 && !SWTCH.S.F04" command: "readAttribute" attribute: "FeatureMap" @@ -44,25 +52,55 @@ tests: constraints: type: bitmap32 - - label: - "Read FeatureMap attribute and Check values of flags in this - FeatureMap" - PICS: - (SWTCH.S.F00 || SWTCH.S.F01 || SWTCH.S.F02 || SWTCH.S.F03 || - SWTCH.S.F04) + - label: "Given SWTCH.S.F00(LS) ensure featuremap has the correct bit set" + PICS: SWTCH.S.F00 command: "readAttribute" attribute: "FeatureMap" response: constraints: type: bitmap32 - minValue: 1 - maxValue: 31 + hasMasksSet: [0x01] + hasMasksClear: [0x02, 0x04, 0x08, 0x10] - - label: "read the global attribute: ClusterRevision" + - label: "Given SWTCH.S.F01(MS) ensure featuremap has the correct bit set" + PICS: SWTCH.S.F01 command: "readAttribute" - attribute: "ClusterRevision" + attribute: "FeatureMap" response: - value: 1 + constraints: + type: bitmap32 + hasMasksSet: [0x2] + hasMasksClear: [0x1] + + - label: "Given SWTCH.S.F02(MSR) ensure featuremap has the correct bit set" + PICS: SWTCH.S.F02 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2, 0x4] + hasMasksClear: [0x1] + + - label: "Given SWTCH.S.F03(MSL) ensure featuremap has the correct bit set" + PICS: SWTCH.S.F03 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2, 0x4, 0x8] + hasMasksClear: [0x1] + + - label: "Given SWTCH.S.F04(MSM) ensure featuremap has the correct bit set" + PICS: SWTCH.S.F04 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2, 0x4, 0x10] + hasMasksClear: [0x1] - label: "Read the global attribute: AttributeList" PICS: SWTCH.S.F04 diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml index a930c424fe8135..9dc41af585e626 100644 --- a/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml @@ -49,14 +49,14 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"SwitchLatched","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"SwitchLatched","NewPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start 2. switch subscribe-event switch-latched 1 100 1 1 - Verify inTH Log: + Verify inTH(chip-tool) Log: [1659527630.476706][4774:4779] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659527630.476742][4774:4779] CHIP:TOO: Event number: 4 @@ -73,7 +73,7 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"SwitchLatched","NewPosition":0}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"SwitchLatched","NewPosition":0}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659599702.921797][7312:7312] CHIP:IN: SecureSession[0xaaaacdb77710]: MarkAsDefunct Type:2 LSID:24961 [1659599703.232994][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":0}" @@ -98,7 +98,7 @@ tests: verification: | On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"SwitchLatched","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"SwitchLatched","NewPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659600080.279936][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":1}" [1659600080.280318][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409c @@ -126,7 +126,7 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"SwitchLatched","NewPosition":2}" > /tmp/chip_all_clusters_fifo (PID of DUT) + echo "{"Name":"SwitchLatched","NewPosition":2}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659600438.058928][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":2}" [1659600438.059436][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409d @@ -138,7 +138,8 @@ tests: ./chip-tool switch read current-position 1 1 - Verify inTH Log: + Verify current position value inTH(chip-tool) Log: + [1659600502.023560][4306:4311] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 391463069 [1659600502.023631][4306:4311] CHIP:TOO: current position: 2 disabled: true @@ -154,7 +155,7 @@ tests: In Raspi platform to change the switch to third position use the below sample command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal. - echo "{"Name":"SwitchLatched","NewPosition":3" > /tmp/chip_all_clusters_fifo (PID of DUT) + echo "{"Name":"SwitchLatched","NewPosition":3" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659600438.058928][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":3}" [1659600438.059436][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409d @@ -166,7 +167,8 @@ tests: ./chip-tool switch read current-position 1 1 - Verify inTH Log: + Verify current position value inTH(chip-tool) Log: + [1659600502.023560][4306:4311] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 391463069 [1659600502.023631][4306:4311] CHIP:TOO: current position: 3 disabled: true @@ -176,7 +178,7 @@ tests: verification: | On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"SwitchLatched","NewPosition":0}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"SwitchLatched","NewPosition":0}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659599702.921797][7312:7312] CHIP:IN: SecureSession[0xaaaacdb77710]: MarkAsDefunct Type:2 LSID:24961 [1659599703.232994][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":0}" @@ -190,7 +192,7 @@ tests: verification: | ./chip-tool switch read current-position 1 1 - Verify inTH Log: + Verify current position value inTH(chip-tool) Log: [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661 [1646209289.746228][2617:2622] CHIP:TOO: current position: 0 @@ -201,7 +203,7 @@ tests: verification: | On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659612230.311864][7312:7321] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659612230.312345][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 175540a4 @@ -212,8 +214,9 @@ tests: Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-Press 1 100 1 1 - Verify inTH Log: + 2. switch subscribe-event initial-press 1 100 1 1 + + Verify inTH (chip-tool)Log: [1659612272.121119][4957:4962] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659612272.121143][4957:4962] CHIP:TOO: Event number: 131085 @@ -235,7 +238,7 @@ tests: verification: | ./chip-tool switch read current-position 1 1 - Verify inTH Log: + Verify current position value inTH(chip-tool) Log: [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661 [1646209289.746228][2617:2622] CHIP:TOO: current position: 0 @@ -246,7 +249,7 @@ tests: verification: | On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659612460.072098][7312:7321] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" @@ -271,7 +274,7 @@ tests: verification: | On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659685803.709724][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659685803.710214][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7719 @@ -284,7 +287,8 @@ tests: verification: | ./chip-tool switch read current-position 1 1 - Verify inTH Log: + Verify current position value inTH(chip-tool) Log: + [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661 [1646209289.746228][2617:2622] CHIP:TOO: current position: 0 disabled: true @@ -294,7 +298,7 @@ tests: verification: | On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659686596.526276][2530:2538] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659686596.526734][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e771a @@ -303,7 +307,7 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659686852.011134][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659686852.011424][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e771b @@ -323,7 +327,7 @@ tests: Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-Press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 [1659686631.947247][3045:3050] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659686631.947272][3045:3050] CHIP:TOO: Event number: 23 @@ -357,7 +361,7 @@ tests: verification: | On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo_2530 + echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659686596.526276][2530:2538] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659686596.526734][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e771a @@ -367,7 +371,7 @@ tests: Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-Press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 [1659692069.006090][3668:3674] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659692069.006114][3668:3674] CHIP:TOO: Event number: 26 @@ -383,7 +387,7 @@ tests: verification: | On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659686852.011134][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659686852.011424][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e771b @@ -411,7 +415,7 @@ tests: verification: | On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659693098.031462][2530:2538] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659693098.031812][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7724 @@ -420,7 +424,7 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"LongPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"LongPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) 1659693130.924755][2530:2538] CHIP:-: Received payload: "{"Name":"LongPress","NewPosition":1}" [1659693130.925030][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7725 @@ -429,7 +433,7 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659693174.708920][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659693174.709388][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7726 @@ -438,7 +442,7 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"LongRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"LongRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659693203.272969][2530:2538] CHIP:-: Received payload: "{"Name":"LongPress","NewPosition":1}" [1659693203.273235][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7727 @@ -458,7 +462,7 @@ tests: Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-Press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 [1659692507.869323][3696:3701] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659692507.869342][3696:3701] CHIP:TOO: Event number: 28 @@ -493,7 +497,7 @@ tests: Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-Press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 [1659692507.869323][3696:3701] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659692507.869342][3696:3701] CHIP:TOO: Event number: 28 @@ -506,7 +510,7 @@ tests: Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event long-Press 1 100 1 1 + 2. switch subscribe-event long-press 1 100 1 1 [1659692638.993482][3706:3712] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0002 [1659692638.993504][3706:3712] CHIP:TOO: Event number: 30 @@ -541,7 +545,7 @@ tests: verification: | On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659693098.031462][2530:2538] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659693098.031812][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7724 @@ -550,7 +554,7 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659694387.719620][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659694387.720095][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7729 @@ -559,7 +563,7 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":1}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659694592.347850][2530:2538] CHIP:-: Received payload: "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":1}" [1659694592.348389][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e772b @@ -567,7 +571,7 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":2}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":2}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659695302.038797][2530:2538] CHIP:-: Received payload: "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":2}" [1659695302.039933][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7730 @@ -590,7 +594,7 @@ tests: Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-Press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 [1659694345.040034][3787:3792] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659694345.040059][3787:3792] CHIP:TOO: Event number: 37 @@ -836,7 +840,7 @@ tests: In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal. - echo "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":3}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":3}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- @@ -872,7 +876,11 @@ tests: On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo "{"Name":"MultiPressOngoing","previousPosition":1,"CurrentNumberOfPressesCounted":3}" > /tmp/chip_all_clusters_fifo- (PID of DUT) + echo "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":3}" > /tmp/chip_all_clusters_fifo_ (PID of DUT) + + [1659694592.347850][2530:2538] CHIP:-: Received payload: "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":3}" + [1659694592.348389][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e772b + [1659694592.348481][2530:2530] CHIP:-: The new position when the momentary switch has been pressed in a multi-press sequence:1 Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 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 31d769b3f5f9be..649a147f1ea291 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 @@ -50,17 +50,59 @@ tests: constraints: type: bitmap32 - - label: "Read the global attribute: FeatureMap" - PICS: - TSTAT.S.F00 || TSTAT.S.F01 || TSTAT.S.F02 || TSTAT.S.F03 || - TSTAT.S.F04 || TSTAT.S.F05 + - label: "Given TSTAT.S.F00(HEAT ensure featuremap has the correct bit set" + PICS: TSTAT.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "Given TSTAT.S.F01(COOL) ensure featuremap has the correct bit set" + PICS: TSTAT.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] + + - label: "Given TSTAT.S.F02(OCC) ensure featuremap has the correct bit set" + PICS: TSTAT.S.F02 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x4] + + - label: "Given TSTAT.S.F03(SCH) ensure featuremap has the correct bit set" + PICS: TSTAT.S.F03 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x8] + + - label: "Given TSTAT.S.F04(SB) ensure featuremap has the correct bit set" + PICS: TSTAT.S.F04 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x10] + + - label: "Given TSTAT.S.F05(AUTO) ensure featuremap has the correct bit set" + PICS: TSTAT.S.F05 command: "readAttribute" attribute: "FeatureMap" response: constraints: type: bitmap32 - minValue: 1 - maxValue: 63 + hasMasksSet: [0x20] - label: "Read the global attribute: AttributeList" command: "readAttribute" 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 436c4ddeb1baf9..bf080c6971aad8 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 @@ -45,14 +45,60 @@ tests: maxValue: 200 - label: "TH reads from the DUT the (0xFFFC) FeatureMap attribute" - PICS: WNCV.S.Afffc + PICS: + " WNCV.S.Afffc && !WNCV.S.F00 && !WNCV.S.F01 && !WNCV.S.F02 && + !WNCV.S.F03 && !WNCV.S.F04 " command: "readAttribute" attribute: "FeatureMap" response: + value: 0 constraints: type: bitmap32 - minValue: 0 - maxValue: 32768 + + - label: "Given WNCV.S.F00(LF) ensure featuremap has the correct bit set" + PICS: WNCV.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "Given WNCV.S.F01(TL) ensure featuremap has the correct bit set" + PICS: WNCV.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] + + - label: "Given WNCV.S.F02(PA_LF) ensure featuremap has the correct bit set" + PICS: WNCV.S.F02 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x4] + + - label: "Given WNCV.S.F03(ABS) ensure featuremap has the correct bit set" + PICS: WNCV.S.F03 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x8] + + - label: "Given WNCV.S.F04(PA_TL) ensure featuremap has the correct bit set" + PICS: WNCV.S.F04 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x10] - label: "TH reads from the DUT the (0xFFFB) AttributeList attribute" PICS: WNCV.S.Afffb diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_2_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_2_1.yaml index 5ce1232a843df2..e9c0e9c448f4ce 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_2_1.yaml @@ -55,7 +55,7 @@ tests: constraints: type: bitmap8 minValue: 0 - maxValue: 63 + maxValue: 127 ### Attribute[ 10]: OperationalStatus ========================== - label: "1c: read the RO mandatory attribute default: OperationalStatus" @@ -66,7 +66,7 @@ tests: constraints: type: bitmap8 minValue: 0 - maxValue: 63 + maxValue: 127 ### Attribute[ 13]: EndProductType ============================== - label: "1d: read the RO mandatory attribute default: EndProductType" diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml index 07e71bd76d28b2..fcbf3d8ce06677 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_3_1.yaml @@ -13,8 +13,8 @@ # limitations under the License. name: - Window Covering [TC-WNCV-3.1] UpOrOpen Command & Report Verification with - server as DUT + Window Covering [TC-WNCV-3.1] UpOrOpen command & OperationalStatus attribute + Verification DUT_Server PICS: - WNCV.S @@ -164,17 +164,57 @@ tests: ### Depends on the FeatureMap # The value of bit 0..1 must be 01b & if (LF) value of bit 2..3 must be 01b else 00b & if (TL) value of bit 4..5 must be 01b else 00b # Only 3 possibilities are possible here : 05h = 5, 11h = 17 or 15h = 21 then check a range for simplicity [5 - 21] + - label: "3a: TH reads OperationalStatus attribute's bit 0..1" + PICS: WNCV.S.A000a + command: "readAttribute" + attribute: "OperationalStatus" + response: + constraints: + type: bitmap8 + hasMasksSet: [0x1] + hasMasksClear: [0x2] + - label: - "3a1: Verify DUT reports OperationalStatus attribute to TH after a - UpOrOpen" - command: "waitForReport" + "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" + PICS: WNCV.S.A000a && WNCV.S.F00 + command: "readAttribute" + attribute: "OperationalStatus" + response: + constraints: + type: bitmap8 + hasMasksSet: [0x4] + hasMasksClear: [0x8] + + - label: + "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" + PICS: WNCV.S.A000a && !WNCV.S.F00 + command: "readAttribute" + attribute: "OperationalStatus" + response: + constraints: + type: bitmap8 + hasMasksClear: [0x4, 0x8] + + - label: + "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" + PICS: WNCV.S.A000a && WNCV.S.F01 + command: "readAttribute" attribute: "OperationalStatus" - PICS: WNCV.S.A000a response: constraints: type: bitmap8 - minValue: 5 - maxValue: 21 + hasMasksSet: [0x10] + hasMasksClear: [0x20] + + - label: + "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" + PICS: WNCV.S.A000a && !WNCV.S.F01 + command: "readAttribute" + attribute: "OperationalStatus" + response: + constraints: + type: bitmap8 + hasMasksClear: [0x10, 0x20] ### Depending on the DUT specs we might prefer a arguments here - label: "3a2: DUT updates its attributes" @@ -183,7 +223,7 @@ tests: arguments: values: - name: "ms" - value: 2000 + value: 3000 ### Mandatory Depends on the FeatureMap - label: @@ -191,7 +231,7 @@ tests: from DUT" command: "readAttribute" attribute: "CurrentPositionLiftPercent100ths" - PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e + PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent100ths @@ -204,7 +244,7 @@ tests: attribute from DUT" command: "readAttribute" attribute: "CurrentPositionLiftPercentage" - PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008 + PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008 && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent @@ -217,7 +257,7 @@ tests: from DUT" command: "readAttribute" attribute: "CurrentPositionTiltPercent100ths" - PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f + PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent100ths @@ -230,7 +270,7 @@ tests: attribute from DUT" command: "readAttribute" attribute: "CurrentPositionTiltPercentage" - PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009 + PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009 && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent @@ -280,7 +320,7 @@ tests: from DUT" command: "readAttribute" attribute: "TargetPositionLiftPercent100ths" - PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b + PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent100ths @@ -293,7 +333,7 @@ tests: from DUT" command: "readAttribute" attribute: "TargetPositionTiltPercent100ths" - PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c + PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent100ths diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml index 15a0a663780c2b..ba6cc61b38459c 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_3_2.yaml @@ -13,8 +13,8 @@ # limitations under the License. name: - Window Covering [TC-WNCV-3.2] DownOrClose Command & Report Verification with - server as DUT + Window Covering [TC-WNCV-3.2] DownOrClose command & OperationalStatus + attribute Verification [DUT_Server] PICS: - WNCV.S @@ -164,17 +164,57 @@ tests: ### Depends on the FeatureMap # The value of bit 0..1 must be 10b & if (LF) value of bit 2..3 must be 10b else 00b & if (TL) value of bit 4..5 must be 10b else 00b # Only 3 possibilities are possible here : 0Ah = 10, 22h = 34 or 2Ah = 42 then check a range for simplicity [10 - 42] + - label: "3a: TH reads OperationalStatus attribute's bit 0..1" + PICS: WNCV.S.A000a + command: "readAttribute" + attribute: "OperationalStatus" + response: + constraints: + type: bitmap8 + hasMasksSet: [0x2] + hasMasksClear: [0x1] + - label: - "3a: Verify DUT reports OperationalStatus attribute to TH after a - DownOrClose" - command: "waitForReport" + "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" + PICS: WNCV.S.A000a && WNCV.S.F00 + command: "readAttribute" + attribute: "OperationalStatus" + response: + constraints: + type: bitmap8 + hasMasksSet: [0x8] + hasMasksClear: [0x4] + + - label: + "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))" + PICS: WNCV.S.A000a && !WNCV.S.F00 + command: "readAttribute" + attribute: "OperationalStatus" + response: + constraints: + type: bitmap8 + hasMasksClear: [0x4, 0x8] + + - label: + "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" + PICS: WNCV.S.A000a && WNCV.S.F01 + command: "readAttribute" attribute: "OperationalStatus" - PICS: WNCV.S.A000a response: constraints: type: bitmap8 - minValue: 10 - maxValue: 42 + hasMasksSet: [0x20] + hasMasksClear: [0x10] + + - label: + "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))" + PICS: WNCV.S.A000a && !WNCV.S.F01 + command: "readAttribute" + attribute: "OperationalStatus" + response: + constraints: + type: bitmap8 + hasMasksClear: [0x10, 0x20] ### Depending on the DUT specs we might prefer a arguments here - label: "3a2: DUT updates its attributes" @@ -183,15 +223,16 @@ tests: arguments: values: - name: "ms" - value: 2000 + value: 3000 ### Mandatory Depends on the FeatureMap + ### Issue https://github.com/project-chip/connectedhomeip/issues/22265 - label: "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT" command: "readAttribute" attribute: "CurrentPositionLiftPercent100ths" - PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e + PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent100ths @@ -204,7 +245,7 @@ tests: attribute from DUT" command: "readAttribute" attribute: "CurrentPositionLiftPercentage" - PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008 + PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008 && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent @@ -217,7 +258,7 @@ tests: from DUT" command: "readAttribute" attribute: "CurrentPositionTiltPercent100ths" - PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f + PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent100ths @@ -230,7 +271,7 @@ tests: attribute from DUT" command: "readAttribute" attribute: "CurrentPositionTiltPercentage" - PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009 + PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009 && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent @@ -280,7 +321,7 @@ tests: from DUT" command: "readAttribute" attribute: "TargetPositionLiftPercent100ths" - PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b + PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent100ths @@ -293,7 +334,7 @@ tests: from DUT" command: "readAttribute" attribute: "TargetPositionTiltPercent100ths" - PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c + PICS: WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c && PICS_SKIP_SAMPLE_APP response: constraints: type: Percent100ths diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_3_3.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_3_3.yaml index 7f5d60725e4448..ab6ec305fe5a8b 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_3_3.yaml @@ -12,7 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: Window Covering [TC-WNCV-3.3] StopMotion Verification with server as DUT +name: + Window Covering [TC-WNCV-3.3] StopMotion command & OperationalStatus + attribute Verification [DUT_Server] PICS: - WNCV.S @@ -64,6 +66,22 @@ tests: - name: "ms" value: 2000 + - label: "1e: TH reads OperationalStatus attribute from DUT" + command: "readAttribute" + attribute: "OperationalStatus" + PICS: WNCV.S.A000a + response: + constraints: + notValue: 0 + + - label: "1d: TH Waits for 2 seconds movement(s) on the device" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 2000 + ######## StopMotion Command ####### ### Step 2x -> Check StopMotion fast effects ### Before subscribe to reports @@ -95,9 +113,8 @@ tests: ### Must Be ZERO # The value of bit 0..1 must be 00b & if (LF) value of bit 2..3 must be 00b & if (TL) value of bit 4..5 must be 00b - label: - "2c: Verify DUT reports OperationalStatus attribute to TH after a - StopMotion" - command: "waitForReport" + "2c: TH reads OperationalStatus attribute from DUT after a StopMotion" + command: "readAttribute" attribute: "OperationalStatus" PICS: WNCV.S.A000a response: @@ -172,6 +189,8 @@ tests: 4c: it Must be equal with CurrentPositionTiltPercent100ths from DUT" command: "readAttribute" attribute: "TargetPositionTiltPercent100ths" - PICS: WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000c && WNCV.S.A000f + PICS: + WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000c && WNCV.S.A000f && + PICS_SKIP_SAMPLE_APP response: value: attrCurrentPositionTilt diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml index 7e077c22b70943..2abc47a33f6544 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml @@ -31,7 +31,7 @@ tests: - label: "Check UpOrOpen command" verification: | - verification step to be updated. + disabled: true - label: "DUT sends UpOrOpen command to TH" @@ -65,7 +65,7 @@ tests: - label: "Check DownOrClose command" verification: | - verification step to be updated. + disabled: true - label: "DUT sends DownOrClose command to TH" @@ -104,7 +104,7 @@ tests: - label: "Check StopMotion command" verification: | - verification step to be updated. + disabled: true - label: "DUT sends a StopMotion command to TH" @@ -113,37 +113,35 @@ tests: ./chip-tool windowcovering stop-motion 1 1 - Verify the " DUT responds with status as SUCCESS" on TH(all-clusters-app): - - [1657103367.961698][4676:4681] CHIP:DMG: InvokeResponseMessage = - [1657103367.961722][4676:4681] CHIP:DMG: { - [1657103367.961747][4676:4681] CHIP:DMG: suppressResponse = false, - [1657103367.961771][4676:4681] CHIP:DMG: InvokeResponseIBs = - [1657103367.961802][4676:4681] CHIP:DMG: [ - [1657103367.961826][4676:4681] CHIP:DMG: InvokeResponseIB = - [1657103367.961861][4676:4681] CHIP:DMG: { - [1657103367.961886][4676:4681] CHIP:DMG: CommandStatusIB = - [1657103367.961917][4676:4681] CHIP:DMG: { - [1657103367.961947][4676:4681] CHIP:DMG: CommandPathIB = - [1657103367.961980][4676:4681] CHIP:DMG: { - [1657103367.962014][4676:4681] CHIP:DMG: EndpointId = 0x1, - [1657103367.962048][4676:4681] CHIP:DMG: ClusterId = 0x102, - [1657103367.962081][4676:4681] CHIP:DMG: CommandId = 0x2, - [1657103367.962116][4676:4681] CHIP:DMG: }, - [1657103367.962154][4676:4681] CHIP:DMG: - [1657103367.962184][4676:4681] CHIP:DMG: StatusIB = - [1657103367.962216][4676:4681] CHIP:DMG: { - [1657103367.962249][4676:4681] CHIP:DMG: status = 0x00 (SUCCESS), - [1657103367.962282][4676:4681] CHIP:DMG: }, - [1657103367.962314][4676:4681] CHIP:DMG: - [1657103367.962343][4676:4681] CHIP:DMG: }, - [1657103367.962409][4676:4681] CHIP:DMG: - [1657103367.962437][4676:4681] CHIP:DMG: }, - [1657103367.962467][4676:4681] CHIP:DMG: - [1657103367.962491][4676:4681] CHIP:DMG: ], - [1657103367.962520][4676:4681] CHIP:DMG: - [1657103367.962544][4676:4681] CHIP:DMG: InteractionModelRevision = 1 - [1657103367.962567][4676:4681] CHIP:DMG: }, - [1657103367.962624][4676:4681] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0102 Command=0x0000_0002 Status=0x0 - [1657103367.962664][4676:4681] CHIP:DMG: ICR moving to [AwaitingDe] + Verify the " DUT responds with request response" on TH(all-clusters-app): + + [1661859427.618059][2477:2477] CHIP:DMG: InvokeRequestMessage = + [1661859427.618086][2477:2477] CHIP:DMG: { + [1661859427.618112][2477:2477] CHIP:DMG: suppressResponse = false, + [1661859427.618140][2477:2477] CHIP:DMG: timedRequest = false, + [1661859427.618165][2477:2477] CHIP:DMG: InvokeRequests = + [1661859427.618196][2477:2477] CHIP:DMG: [ + [1661859427.618221][2477:2477] CHIP:DMG: CommandDataIB = + [1661859427.618252][2477:2477] CHIP:DMG: { + [1661859427.618279][2477:2477] CHIP:DMG: CommandPathIB = + [1661859427.618312][2477:2477] CHIP:DMG: { + [1661859427.618347][2477:2477] CHIP:DMG: EndpointId = 0x1, + [1661859427.618383][2477:2477] CHIP:DMG: ClusterId = 0x102, + [1661859427.618420][2477:2477] CHIP:DMG: CommandId = 0x2, + [1661859427.618452][2477:2477] CHIP:DMG: }, + [1661859427.618487][2477:2477] CHIP:DMG: + [1661859427.618516][2477:2477] CHIP:DMG: CommandFields = + [1661859427.618551][2477:2477] CHIP:DMG: { + [1661859427.618583][2477:2477] CHIP:DMG: }, + [1661859427.618613][2477:2477] CHIP:DMG: }, + [1661859427.618645][2477:2477] CHIP:DMG: + [1661859427.618670][2477:2477] CHIP:DMG: ], + [1661859427.618700][2477:2477] CHIP:DMG: + [1661859427.618724][2477:2477] CHIP:DMG: InteractionModelRevision = 1 + [1661859427.618747][2477:2477] CHIP:DMG: }, + [1661859427.618814][2477:2477] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0102 e=1 p=o + [1661859427.618853][2477:2477] CHIP:DMG: AccessControl: allowed + [1661859427.618882][2477:2477] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0102 Command=0x0000_0002 + [1661859427.618914][2477:2477] CHIP:ZCL: StopMotion command received + [1661859427.618961][2477:2477] CHIP:DMG: Endpoint 1, Cluster 0x0000_0102 update version to f31db disabled: true diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index f0a95190c65c76..20d0abc051ce71 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -62,7 +62,7 @@ WNCV.S.F00=1 WNCV.S.F02=1 WNCV.S.F01=1 WNCV.S.F04=1 -WNCV.S.F03=1 +WNCV.S.F03=0 WNCV.S.M.Calibration=1 WNCV.S.M.Maintenance=1 WNCV.S.M.Reversal=1 @@ -183,7 +183,7 @@ CC.S.C41.Rsp=1 CC.S.C42.Rsp=1 CC.S.C43.Rsp=1 CC.S.C44.Rsp=1 -CC.S.F00=1 +CC.S.F00=0 CC.S.F01=1 CC.S.F02=1 CC.S.F03=1 @@ -267,7 +267,7 @@ APPLAUNCHER.S.A0000=1 APPLAUNCHER.S.A0001=1 MEDIAINPUT.S.A0000=1 MEDIAINPUT.S.A0001=1 -CHANNEL.S.CL=1 +CHANNEL.S.CL=0 CHANNEL.C.C0000=1 CHANNEL.C.C0002=1 CHANNEL.C.C0003=1 @@ -282,7 +282,7 @@ APBSC.S=1 APBSC.S.A0000=1 APBSC.S.A0001=1 APBSC.S.A0003=1 -CONTENTLAUNCHER.S.CS=1 +CONTENTLAUNCHER.S.CS=0 CONTENTLAUNCHER.S.UP=1 CONTENTLAUNCHER.S.A0000=1 CONTENTLAUNCHER.S.A0001=1 @@ -292,7 +292,7 @@ KEYPADINPUT.S.NK=1 KEYPADINPUT.S.NV=1 KEYPADINPUT.S.C00.Rsp=1 KEYPADINPUT.C.C00.Tx=1 -MEDIAINPUT.S.NU=0 +MEDIAINPUT.S.NU=1 LOWPOWER.S=1 LOWPOWER.C=1 @@ -369,7 +369,7 @@ AUDIOOUTPUT.S.C01.Rsp=1 AUDIOOUTPUT.C=1 AUDIOOUTPUT.C.C00.Tx=1 AUDIOOUTPUT.C.C01.Tx=1 -AUDIOOUTPUT.S.NU=1 +AUDIOOUTPUT.S.NU=0 TGTNAV.S.A0000=1 TGTNAV.S.A0001=1 @@ -602,7 +602,7 @@ LTIME.C.A0000.12HR=1 LTIME.C.A0000.24HR=1 #Unit Localization Cluster -LUNIT.S.F00=0 +LUNIT.S.F00=1 LUNIT.S.A0000=1 LUNIT.S.Afff8=1 LUNIT.S.Afff9=1 @@ -610,9 +610,9 @@ LUNIT.S.Afffa=1 LUNIT.S.Afffb=1 LUNIT.S.Afffc=1 LUNIT.S.Afffd=1 -LUNIT.S.A0000.Fahrenheit=1 -LUNIT.S.A0000.Celsius=1 -LUNIT.S.A0000.Kelvin=1 +LUNIT.TempUnit.Fahrenheit=1 +LUNIT.TempUnit.Celsius=1 +LUNIT.TempUnit.Kelvin=1 LUNIT.C.A0000=1 LUNIT.C.Afff8=1 LUNIT.C.Afff9=1 @@ -657,6 +657,7 @@ MCORE.OTA.HTTPS=1 MCORE.OTA.RequestorConsent=1 MCORE.OTA.Resume=1 MCORE.OTA.VendorSpecific=1 +MCORE.OTA.Retry=1 MCORE.ACL.Administrator=1 OTAS.S.M.DelayedActionTime=1 OTAP.S.M.UserConsentNeeded=1 @@ -796,7 +797,7 @@ PS.S.E00=1 PS.S.E01=1 PS.S.E02=1 PS.S.F00=0 -PS.S.F01=0 +PS.S.F01=1 PS.S.F02=0 PS.S.F03=0 PS.M.ManualWiredFault=1 @@ -884,7 +885,7 @@ DGETH.S.A0006=1 DGETH.S.A0007=1 DGETH.S.A0008=1 #Features -DGETH.S.F00=1 +DGETH.S.F00=0 DGETH.S.F01=1 #Wi-Fi Network Diagnostics Cluster diff --git a/src/app/tests/suites/ciTests.json b/src/app/tests/suites/ciTests.json index 248d2a2dcf1b37..b6162beeede3bc 100644 --- a/src/app/tests/suites/ciTests.json +++ b/src/app/tests/suites/ciTests.json @@ -68,7 +68,7 @@ ], "LocalizationConfiguration": ["Test_TC_LCFG_1_1"], "TimeFormatLocalization": ["Test_TC_LTIME_1_2"], - "UnitLocalization": ["Test_TC_LUNIT_1_1"], + "UnitLocalization": ["Test_TC_LUNIT_1_2"], "UserLabel": [ "Test_TC_ULABEL_1_1", "Test_TC_ULABEL_2_1", diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json index e5bd01545c7b61..24c6eb007c3e45 100644 --- a/src/app/tests/suites/manualTests.json +++ b/src/app/tests/suites/manualTests.json @@ -306,7 +306,7 @@ "Test_TC_LTIME_3_1" ], "UnitLocalization": [ - "Test_TC_LUNIT_1_2", + "Test_TC_LUNIT_1_1", "Test_TC_LUNIT_2_1", "Test_TC_LUNIT_3_1" ], diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 8173ec7299adbd..74a1682286d97f 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -92,7 +92,7 @@ class TestList : public Command printf("Test_TC_LVL_5_1\n"); printf("Test_TC_LVL_6_1\n"); printf("Test_TC_LCFG_1_1\n"); - printf("Test_TC_LUNIT_1_1\n"); + printf("Test_TC_LUNIT_1_2\n"); printf("Test_TC_LTIME_1_2\n"); printf("Test_TC_LOWPOWER_1_1\n"); printf("Test_TC_KEYPADINPUT_1_2\n"); @@ -552,7 +552,7 @@ class ManualTestList : public Command printf("Test_TC_LTIME_1_1\n"); printf("Test_TC_LTIME_2_1\n"); printf("Test_TC_LTIME_3_1\n"); - printf("Test_TC_LUNIT_1_2\n"); + printf("Test_TC_LUNIT_1_1\n"); printf("Test_TC_LUNIT_2_1\n"); printf("Test_TC_LUNIT_3_1\n"); printf("Test_TC_FLABEL_3_1\n"); @@ -2802,7 +2802,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", 43, credsIssuerConfig) + Test_TC_CC_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CC_1_1", 47, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -2863,11 +2863,46 @@ class Test_TC_CC_1_1Suite : public TestCommand uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 31UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 8UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 16UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2884,7 +2919,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 5: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2893,7 +2928,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 6: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2902,7 +2937,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 7: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2911,7 +2946,7 @@ class Test_TC_CC_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; @@ -2920,7 +2955,7 @@ class Test_TC_CC_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; @@ -2929,7 +2964,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 10: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2938,7 +2973,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 11: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2947,7 +2982,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 12: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2956,7 +2991,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 13: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2965,7 +3000,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16384UL)); } break; - case 14: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2974,7 +3009,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16386UL)); } break; - case 15: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2983,7 +3018,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16387UL)); } break; - case 16: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -2992,7 +3027,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16388UL)); } break; - case 17: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3001,7 +3036,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16389UL)); } break; - case 18: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3010,7 +3045,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16390UL)); } break; - case 19: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3019,7 +3054,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16395UL)); } break; - case 20: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3028,7 +3063,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16396UL)); } break; - case 21: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3037,7 +3072,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16397UL)); } break; - case 22: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3046,7 +3081,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16400UL)); } break; - case 23: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3055,7 +3090,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 24: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3064,7 +3099,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 25: + case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3073,7 +3108,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 26: + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3082,7 +3117,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 27: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3091,7 +3126,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 28: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3100,7 +3135,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 29: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3109,7 +3144,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 30: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3118,7 +3153,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 31: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3127,7 +3162,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 32: + case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3136,7 +3171,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); } break; - case 33: + case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3145,7 +3180,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); } break; - case 34: + case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3154,7 +3189,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 64UL)); } break; - case 35: + case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3163,7 +3198,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65UL)); } break; - case 36: + case 40: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3172,7 +3207,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 66UL)); } break; - case 37: + case 41: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3181,7 +3216,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 67UL)); } break; - case 38: + case 42: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3190,7 +3225,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 68UL)); } break; - case 39: + case 43: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3199,7 +3234,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 71UL)); } break; - case 40: + case 44: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3208,7 +3243,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 75UL)); } break; - case 41: + case 45: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3217,7 +3252,7 @@ class Test_TC_CC_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 76UL)); } break; - case 42: + case 46: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -3264,241 +3299,264 @@ class Test_TC_CC_1_1Suite : public TestCommand chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("( CC.S.F00 || CC.S.F01 || CC.S.F02 || CC.S.F03 || CC.S.F04)"), - return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given CC.S.F00(HS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CC.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the global attribute: AttributeList"); + LogStep(4, "Given CC.S.F01(EHue) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CC.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Given CC.S.F02(CL) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CC.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Given CC.S.F03(XY) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CC.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Given CC.S.F04(CT) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CC.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Read the global attribute: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 5: { - LogStep(5, "Read the optional attribute(CurrentHue) in AttributeList"); + case 9: { + LogStep(9, "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 6: { - LogStep(6, "Read the optional attribute(CurrentSaturation) in AttributeList"); + case 10: { + LogStep(10, "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 7: { - LogStep(7, "Read the optional attribute(RemainingTime) in AttributeList"); + case 11: { + LogStep(11, "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 8: { - LogStep(8, "Read the optional attribute(CurrentX) in AttributeList"); + case 12: { + LogStep(12, "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 9: { - LogStep(9, "Read the optional attribute(CurrentY) in AttributeList"); + case 13: { + LogStep(13, "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 10: { - LogStep(10, "Read the optional attribute(DriftCompensation) in AttributeList"); + case 14: { + LogStep(14, "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 11: { - LogStep(11, "Read the optional attribute(CompensationText) in AttributeList"); + case 15: { + LogStep(15, "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 12: { - LogStep(12, "Read the optional attribute(ColorTemperatureMireds) in AttributeList"); + case 16: { + LogStep(16, "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 13: { - LogStep(13, "Read the optional attribute(EnhancedCurrentHue) in AttributeList"); + case 17: { + LogStep(17, "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 14: { - LogStep(14, "Read the optional attribute(ColorLoopActive) in AttributeList"); + case 18: { + LogStep(18, "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 15: { - LogStep(15, "Read the optional attribute(ColorLoopDirection) in AttributeList"); + case 19: { + LogStep(19, "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 16: { - LogStep(16, "Read the optional attribute(ColorLoopTime) in AttributeList"); + case 20: { + LogStep(20, "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 17: { - LogStep(17, "Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList"); + case 21: { + LogStep(21, "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 18: { - LogStep(18, "Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList"); + case 22: { + LogStep(22, "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 19: { - LogStep(19, "Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList"); + case 23: { + LogStep(23, "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 20: { - LogStep(20, "Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList"); + case 24: { + LogStep(24, "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 21: { - LogStep(21, "Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList"); + case 25: { + LogStep(25, "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 22: { - LogStep(22, "Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList"); + case 26: { + LogStep(26, "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 23: { - LogStep(23, "Read the optional command(MoveToHue) in AcceptedCommandList"); + case 27: { + LogStep(27, "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 24: { - LogStep(24, "Read the optional command(MoveHue) in AcceptedCommandList"); + case 28: { + LogStep(28, "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 25: { - LogStep(25, "Read the optional command(StepHue) in AcceptedCommandList"); + case 29: { + LogStep(29, "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 26: { - LogStep(26, "Read the optional command(MoveToSaturation) in AcceptedCommandList"); + case 30: { + LogStep(30, "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 27: { - LogStep(27, "Read the optional command(MoveSaturation) in AcceptedCommandList"); + case 31: { + LogStep(31, "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 28: { - LogStep(28, "Read the optional command(StepSaturation) in AcceptedCommandList"); + case 32: { + LogStep(32, "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 29: { - LogStep(29, "Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList"); + case 33: { + LogStep(33, "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 30: { - LogStep(30, "Read the optional command(MoveToColor) in AcceptedCommandList"); + case 34: { + LogStep(34, "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 31: { - LogStep(31, "Read the optional command(MoveColor) in AcceptedCommandList"); + case 35: { + LogStep(35, "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 32: { - LogStep(32, "Read the optional command(StepColor) in AcceptedCommandList"); + case 36: { + LogStep(36, "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 33: { - LogStep(33, "Read the optional command(MoveToColorTemperature) in AcceptedCommandList"); + case 37: { + LogStep(37, "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 34: { - LogStep(34, "Read the optional command(EnhancedMoveToHue) in AcceptedCommandList"); + case 38: { + LogStep(38, "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 35: { - LogStep(35, "Read the optional command(EnhancedMoveHue) in AcceptedCommandList"); + case 39: { + LogStep(39, "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 36: { - LogStep(36, "Read the optional command(EnhancedStepHue) in AcceptedCommandList"); + case 40: { + LogStep(40, "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 37: { - LogStep(37, "Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList"); + case 41: { + LogStep(41, "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 38: { - LogStep(38, "Read the optional command(ColorLoopSet) in AcceptedCommandList"); + case 42: { + LogStep(42, "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 39: { - LogStep(39, "Read the optional command(StopMoveStep) in AcceptedCommandList"); + case 43: { + LogStep(43, "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 40: { - LogStep(40, "Read the optional command(MoveColorTemperature) in AcceptedCommandList"); + case 44: { + LogStep(44, "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 41: { - LogStep(41, "Read the optional command(StepColorTemperature) in AcceptedCommandList"); + case 45: { + LogStep(45, "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 42: { - LogStep(42, "Read the global attribute: GeneratedCommandList"); + case 46: { + LogStep(46, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -4605,6 +4663,7 @@ class Test_TC_CC_3_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -4614,6 +4673,7 @@ class Test_TC_CC_3_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -4886,8 +4946,8 @@ class Test_TC_CC_3_2Suite : public TestCommand case 28: { LogStep(28, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 29: { LogStep(29, "Turn off light that we turned on"); @@ -5055,6 +5115,7 @@ class Test_TC_CC_3_3Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -5064,6 +5125,7 @@ class Test_TC_CC_3_3Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -5284,8 +5346,8 @@ class Test_TC_CC_3_3Suite : public TestCommand case 22: { LogStep(22, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 23: { LogStep(23, "Turn off light that we turned on"); @@ -5420,6 +5482,7 @@ class Test_TC_CC_4_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -5429,6 +5492,7 @@ class Test_TC_CC_4_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -5580,8 +5644,8 @@ class Test_TC_CC_4_1Suite : public TestCommand case 15: { LogStep(15, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 16: { LogStep(16, "Turn off light that we turned on"); @@ -5800,6 +5864,7 @@ class Test_TC_CC_4_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -5809,6 +5874,7 @@ class Test_TC_CC_4_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -6102,8 +6168,8 @@ class Test_TC_CC_4_2Suite : public TestCommand case 31: { LogStep(31, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 32: { LogStep(32, "Turn off light that we turned on"); @@ -6301,6 +6367,7 @@ class Test_TC_CC_4_3Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -6310,6 +6377,7 @@ class Test_TC_CC_4_3Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -6582,8 +6650,8 @@ class Test_TC_CC_4_3Suite : public TestCommand case 28: { LogStep(28, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 29: { LogStep(29, "Turn off light that we turned on"); @@ -6746,6 +6814,7 @@ class Test_TC_CC_4_4Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -6755,6 +6824,7 @@ class Test_TC_CC_4_4Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -6813,7 +6883,7 @@ class Test_TC_CC_4_4Suite : public TestCommand case 3: { LogStep( 3, "TH sends MoveToHueAndSaturation command to DUT with Hue=200, Saturation=50 and TransitionTime=0 (immediately)"); - VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveToHueAndSaturation::Type value; value.hue = 200U; @@ -6835,19 +6905,19 @@ class Test_TC_CC_4_4Suite : public TestCommand } case 5: { LogStep(5, "TH reads CurrentHue attribute from DUT."); - VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A0000 && CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000 && CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, chip::NullOptional); } case 6: { LogStep(6, "TH reads CurrentSaturation attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } case 7: { LogStep(7, "TH sends MoveToHueAndSaturation command to DUT with Hue=160, Saturation=80 and TransitionTime=200 (20s)"); - VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.C06.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::ColorControl::Commands::MoveToHueAndSaturation::Type value; value.hue = 160U; @@ -6875,7 +6945,7 @@ class Test_TC_CC_4_4Suite : public TestCommand } case 10: { LogStep(10, "TH reads CurrentSaturation attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } @@ -6894,7 +6964,7 @@ class Test_TC_CC_4_4Suite : public TestCommand } case 13: { LogStep(13, "TH reads CurrentSaturation attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } @@ -6913,7 +6983,7 @@ class Test_TC_CC_4_4Suite : public TestCommand } case 16: { LogStep(16, "TH reads CurrentSaturation attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.F01 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, true, chip::NullOptional); } @@ -6926,8 +6996,8 @@ class Test_TC_CC_4_4Suite : public TestCommand case 18: { LogStep(18, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 19: { LogStep(19, "Turn off light that we turned on"); @@ -7307,6 +7377,7 @@ class Test_TC_CC_5_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 1U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -7316,6 +7387,7 @@ class Test_TC_CC_5_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 1U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -7833,8 +7905,8 @@ class Test_TC_CC_5_1Suite : public TestCommand case 58: { LogStep(58, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } } return CHIP_NO_ERROR; @@ -7994,6 +8066,7 @@ class Test_TC_CC_5_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 1U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -8003,6 +8076,7 @@ class Test_TC_CC_5_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 1U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -8184,8 +8258,8 @@ class Test_TC_CC_5_2Suite : public TestCommand case 19: { LogStep(19, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 20: { LogStep(20, "Turn off light that we turned on"); @@ -8271,8 +8345,8 @@ class Test_TC_CC_5_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 19500U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 26500U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 13000U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 33000U)); } break; case 8: @@ -8280,8 +8354,8 @@ class Test_TC_CC_5_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 14500U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 19500U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 14000U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 20000U)); } break; case 9: @@ -8293,8 +8367,8 @@ class Test_TC_CC_5_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 13000U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 15000U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 11050U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 14950U)); } break; case 11: @@ -8302,8 +8376,8 @@ class Test_TC_CC_5_3Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 14000U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 16000U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 11900U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 16100U)); } break; case 12: @@ -8331,6 +8405,7 @@ class Test_TC_CC_5_3Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 1U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -8340,6 +8415,7 @@ class Test_TC_CC_5_3Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 1U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -8498,8 +8574,8 @@ class Test_TC_CC_5_3Suite : public TestCommand case 16: { LogStep(16, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 17: { LogStep(17, "Turn off light that we turned on"); @@ -8667,6 +8743,7 @@ class Test_TC_CC_6_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 2U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -8676,6 +8753,7 @@ class Test_TC_CC_6_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 2U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -8848,8 +8926,8 @@ class Test_TC_CC_6_1Suite : public TestCommand case 18: { LogStep(18, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 19: { LogStep(19, "Turn Off light that we turned on"); @@ -9090,6 +9168,7 @@ class Test_TC_CC_6_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 2U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -9099,6 +9178,7 @@ class Test_TC_CC_6_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 2U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -9380,8 +9460,8 @@ class Test_TC_CC_6_2Suite : public TestCommand case 29: { LogStep(29, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 30: { LogStep(30, "Turn off light that we turned on"); @@ -9588,6 +9668,7 @@ class Test_TC_CC_6_3Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 2U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -9597,6 +9678,7 @@ class Test_TC_CC_6_3Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 2U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -9818,8 +9900,8 @@ class Test_TC_CC_6_3Suite : public TestCommand case 23: { LogStep(23, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F04 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 24: { LogStep(24, "Turn Off light that we turned on"); @@ -10021,6 +10103,7 @@ class Test_TC_CC_7_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -10030,6 +10113,7 @@ class Test_TC_CC_7_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 3U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -10302,8 +10386,8 @@ class Test_TC_CC_7_2Suite : public TestCommand case 28: { LogStep(28, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 29: { LogStep(29, "Turn Off light that we turned on"); @@ -10497,6 +10581,7 @@ class Test_TC_CC_7_3Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -10506,6 +10591,7 @@ class Test_TC_CC_7_3Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 3U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -10755,8 +10841,8 @@ class Test_TC_CC_7_3Suite : public TestCommand case 26: { LogStep(26, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 27: { LogStep(27, "Turn Off light that we turned on"); @@ -10920,6 +11006,7 @@ class Test_TC_CC_7_4Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -10929,6 +11016,7 @@ class Test_TC_CC_7_4Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 3U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -11103,8 +11191,8 @@ class Test_TC_CC_7_4Suite : public TestCommand case 18: { LogStep(18, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 19: { LogStep(19, "Turn Off light that we turned on"); @@ -13723,7 +13811,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", 7, credsIssuerConfig) + Test_TC_DGETH_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGETH_1_1", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -13774,12 +13862,29 @@ class Test_TC_DGETH_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 3UL)); } break; case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13792,7 +13897,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 4: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13801,7 +13906,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 5: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13813,7 +13918,7 @@ class Test_TC_DGETH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 6: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -13854,28 +13959,41 @@ class Test_TC_DGETH_1_1Suite : public TestCommand } case 2: { LogStep(2, "TH reads the FeatureMap from DUT"); + VerifyOrDo(!ShouldSkip(" !DGETH.S.F00 && !DGETH.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "TH reads AttributeList from DUT"); + LogStep(3, "Given DGETH.S.F00 ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DGETH.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, - EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); + EthernetNetworkDiagnostics::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "TH reads AcceptedCommandList from DUT"); + LogStep(4, "Given DGETH.S.F01 ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DGETH.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::FeatureMap::Id, true, chip::NullOptional); + } + case 5: { + LogStep(5, "TH reads AttributeList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "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 5: { - LogStep(5, "TH reads AcceptedCommandList from DUT"); + case 7: { + LogStep(7, "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 6: { - LogStep(6, "TH reads GeneratedCommandList from DUT"); + case 8: { + LogStep(8, "TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), EthernetNetworkDiagnostics::Id, EthernetNetworkDiagnostics::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -17261,7 +17379,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", 16, credsIssuerConfig) + Test_TC_LVL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LVL_1_1", 18, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -17312,9 +17430,8 @@ class Test_TC_LVL_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 7UL)); } break; case 3: @@ -17322,11 +17439,29 @@ class Test_TC_LVL_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("featureMap", value, 0UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + } + break; + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17342,7 +17477,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 5: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17352,7 +17487,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16384UL)); } break; - case 6: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17363,7 +17498,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 7: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17372,7 +17507,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 8: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17381,7 +17516,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 9: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17390,7 +17525,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; - case 10: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17399,7 +17534,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; - case 11: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17408,7 +17543,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); } break; - case 12: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17417,7 +17552,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); } break; - case 13: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17433,7 +17568,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 14: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17442,7 +17577,7 @@ class Test_TC_LVL_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 15: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -17483,82 +17618,94 @@ class Test_TC_LVL_1_1Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("LVL.S.F00 || LVL.S.F01 || LVL.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" !LVL.S.F00 && !LVL.S.F01 && !LVL.S.F02 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !LVL.S.F00 && !LVL.S.F01 && !LVL.S.F02 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given LVL.S.F00(OO) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("LVL.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the global attribute: AttributeList"); + LogStep(4, "Given LVL.S.F01(LT) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("LVL.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Given LVL.S.F02(FQ) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("LVL.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Read the global attribute: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 5: { - LogStep(5, "Read the optional attribute(StartUpCurrentLevel and RemainingTime) in AttributeList"); + case 7: { + LogStep(7, "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 6: { - LogStep(6, "Read the optional attribute(CurrentFrequency, MinFrequency and MinFrequency) in AttributeList"); + case 8: { + LogStep(8, "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 7: { - LogStep(7, "Read the optional attribute(MinLevel) in AttributeList"); + case 9: { + LogStep(9, "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 8: { - LogStep(8, "Read the optional attribute(MaxLevel) in AttributeList"); + case 10: { + LogStep(10, "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 9: { - LogStep(9, "Read the optional attribute(OnOffTransitionTime) in AttributeList"); + case 11: { + LogStep(11, "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 10: { - LogStep(10, "Read the optional attribute(OnTransitionTime) in AttributeList"); + case 12: { + LogStep(12, "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 11: { - LogStep(11, "Read the optional attribute(OffTransitionTime) in AttributeList"); + case 13: { + LogStep(13, "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 12: { - LogStep(12, "Read the optional attribute(DefaultMoveRate) in AttributeList"); + case 14: { + LogStep(14, "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 13: { - LogStep(13, "Read the global attribute: AcceptedCommandList"); + case 15: { + LogStep(15, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "Read the Feature-dependent(LVL.S.F02) attribute in AcceptedCommandList"); + case 16: { + LogStep(16, "Read the Feature-dependent(LVL.S.F02) attribute 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 15: { - LogStep(15, "Read the global attribute: GeneratedCommandList"); + case 17: { + LogStep(17, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), LevelControl::Id, LevelControl::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -20327,10 +20474,10 @@ class Test_TC_LCFG_1_1Suite : public TestCommand } }; -class Test_TC_LUNIT_1_1Suite : public TestCommand +class Test_TC_LUNIT_1_2Suite : public TestCommand { public: - Test_TC_LUNIT_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LUNIT_1_1", 0, credsIssuerConfig) + Test_TC_LUNIT_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LUNIT_1_2", 8, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -20338,7 +20485,7 @@ class Test_TC_LUNIT_1_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_LUNIT_1_1Suite() {} + ~Test_TC_LUNIT_1_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -20363,6 +20510,83 @@ class Test_TC_LUNIT_1_1Suite : public TestCommand 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)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("clusterRevision", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 1UL)); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + } + 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; + 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; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("acceptedCommandList", 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; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("generatedCommandList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -20378,6 +20602,55 @@ class Test_TC_LUNIT_1_1Suite : public TestCommand using namespace chip::app::Clusters; switch (testIndex) { + case 0: { + LogStep(0, "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, "TH reads the ClusterRevision from DUT"); + VerifyOrDo(!ShouldSkip("LUNIT.S.Afffd"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, + UnitLocalization::Attributes::ClusterRevision::Id, true, chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads the FeatureMap from DUT"); + VerifyOrDo(!ShouldSkip("LUNIT.S.Afffc && !LUNIT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::FeatureMap::Id, + true, chip::NullOptional); + } + case 3: { + LogStep(3, "TH reads the FeatureMap from DUT"); + VerifyOrDo(!ShouldSkip("LUNIT.S.Afffc && LUNIT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::FeatureMap::Id, + true, chip::NullOptional); + } + case 4: { + LogStep(4, "TH reads AttributeList from DUT"); + VerifyOrDo(!ShouldSkip("LUNIT.S.Afffb"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, + UnitLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 5: { + LogStep(5, "TH reads Feature dependent(LUNIT.S.F00) attribute in AttributeList"); + VerifyOrDo(!ShouldSkip("LUNIT.S.Afffb && LUNIT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, + UnitLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "TH reads AcceptedCommandList from DUT"); + VerifyOrDo(!ShouldSkip("LUNIT.S.Afff9"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, + UnitLocalization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads GeneratedCommandList from DUT"); + VerifyOrDo(!ShouldSkip("LUNIT.S.Afff8"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, + UnitLocalization::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); + } } return CHIP_NO_ERROR; } @@ -20730,7 +21003,7 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand { public: Test_TC_KEYPADINPUT_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_KEYPADINPUT_1_2", 7, credsIssuerConfig) + TestCommand("Test_TC_KEYPADINPUT_1_2", 9, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -20791,11 +21064,28 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 7UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + } + break; + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -20808,7 +21098,7 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 5: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -20817,7 +21107,7 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 6: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -20861,24 +21151,35 @@ class Test_TC_KEYPADINPUT_1_2Suite : public TestCommand chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.NV || KEYPADINPUT.S.LK || KEYPADINPUT.S.NK"), - return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not"); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.NV"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::AttributeList::Id, true, + LogStep(4, "Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not"); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.LK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Read the global attribute: AcceptedCommandList"); + LogStep(5, "Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not"); + VerifyOrDo(!ShouldSkip("KEYPADINPUT.S.NK"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Read the global attribute: AttributeList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Read the global attribute: GeneratedCommandList"); + case 8: { + LogStep(8, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), KeypadInput::Id, KeypadInput::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -21423,7 +21724,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand { public: Test_TC_CHANNEL_1_6Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CHANNEL_1_6", 12, credsIssuerConfig) + TestCommand("Test_TC_CHANNEL_1_6", 13, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -21484,11 +21785,19 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 3UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21501,7 +21810,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 5: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21510,7 +21819,7 @@ class Test_TC_CHANNEL_1_6Suite : 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; @@ -21519,7 +21828,7 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 7: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21528,7 +21837,7 @@ class Test_TC_CHANNEL_1_6Suite : 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; @@ -21537,7 +21846,7 @@ class Test_TC_CHANNEL_1_6Suite : 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; @@ -21546,7 +21855,7 @@ class Test_TC_CHANNEL_1_6Suite : 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; @@ -21555,7 +21864,7 @@ class Test_TC_CHANNEL_1_6Suite : 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; @@ -21598,54 +21907,60 @@ class Test_TC_CHANNEL_1_6Suite : public TestCommand chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.CL || CHANNEL.S.LI"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given CHANNEL.S.CL) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.CL"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AttributeList::Id, true, + LogStep(4, "Given CHANNEL.S.LI) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CHANNEL.S.LI"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Read the optional attribute(ChannelList): AttributeList"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "Read the global attribute: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::AttributeList::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Reading optional attribute(Lineup) in AttributeList"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(6, "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 7: { - LogStep(7, "Read the optional attribute(CurrentChannel): AttributeList"); - VerifyOrDo(!ShouldSkip("CHANNEL.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "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 8: { - LogStep(8, "Read the optional command(ChangeChannel) in AcceptedCommandList"); + LogStep(8, "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 9: { + LogStep(9, "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 9: { - LogStep(9, "Read the optional command(ChangeChannelByNumber) in AcceptedCommandList"); + case 10: { + LogStep(10, "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 10: { - LogStep(10, "Read the optional command(SkipChannel) in AcceptedCommandList"); + case 11: { + LogStep(11, "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 11: { - LogStep(11, "Read the global attribute: GeneratedCommandList"); + case 12: { + LogStep(12, "Read the global attribute: GeneratedCommandList"); VerifyOrDo(!ShouldSkip("CHANNEL.S.CL || CHANNEL.S.LI"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Channel::Id, Channel::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); @@ -21659,7 +21974,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand { public: Test_TC_MEDIAPLAYBACK_1_7Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_MEDIAPLAYBACK_1_7", 21, credsIssuerConfig) + TestCommand("Test_TC_MEDIAPLAYBACK_1_7", 22, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -21720,11 +22035,19 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 3UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21738,7 +22061,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 5: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21747,7 +22070,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 6: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21756,7 +22079,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 7: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21765,7 +22088,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : 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; @@ -21774,7 +22097,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21783,7 +22106,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21792,7 +22115,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : 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; @@ -21803,7 +22126,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 12: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21812,7 +22135,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 13: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21821,7 +22144,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); } break; - case 14: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21830,7 +22153,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 15: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21839,7 +22162,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); } break; - case 16: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21848,7 +22171,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 17: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21857,7 +22180,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 18: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21866,7 +22189,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); } break; - case 19: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21875,7 +22198,7 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); } break; - case 20: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -21918,107 +22241,113 @@ class Test_TC_MEDIAPLAYBACK_1_7Suite : public TestCommand chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.AS || MEDIAPLAYBACK.S.VS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.AS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the global attribute: AttributeList"); + LogStep(4, "Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.VS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Read the global attribute: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 5: { - LogStep(5, "Read the optional attribute(StartTime) in AttributeList"); + case 6: { + LogStep(6, "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 6: { - LogStep(6, "Read the optional attribute(Duration) in AttributeList"); + case 7: { + LogStep(7, "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 7: { - LogStep(7, "Read the optional attribute(SampledPosition) in AttributeList"); + case 8: { + LogStep(8, "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 8: { - LogStep(8, "Read the optional attribute(PlaybackSpeed) in AttributeList"); + case 9: { + LogStep(9, "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 9: { - LogStep(9, "Read the optional attribute(SeekRangeEnd) in AttributeList"); + case 10: { + LogStep(10, "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 10: { - LogStep(10, "Read the optional attribute(SeekRangeStart) in AttributeList"); + case 11: { + LogStep(11, "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 11: { - LogStep(11, "Read the global attribute: AcceptedCommandList"); + case 12: { + LogStep(12, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "Read the optional command(StartOver) in AcceptedCommandList"); + case 13: { + LogStep(13, "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 13: { - LogStep(13, "Read the optional command(Previous) in AcceptedCommandList"); + case 14: { + LogStep(14, "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 14: { - LogStep(14, "Read the optional command(Next) in AcceptedCommandList"); + case 15: { + LogStep(15, "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 15: { - LogStep(15, "Read the optional command(Rewind) in AcceptedCommandList"); + case 16: { + LogStep(16, "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 16: { - LogStep(16, "Read the optional command(FastForward) in AcceptedCommandList"); + case 17: { + LogStep(17, "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 17: { - LogStep(17, "Read the optional command(SkipForward) in AcceptedCommandList"); + case 18: { + LogStep(18, "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 18: { - LogStep(18, "Read the optional command(SkipBackward) in AcceptedCommandList"); + case 19: { + LogStep(19, "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 19: { - LogStep(19, "Read the optional command(Seek) in AcceptedCommandList"); + case 20: { + LogStep(20, "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 20: { - LogStep(20, "Read the global attribute: GeneratedCommandList"); + case 21: { + LogStep(21, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -22181,13 +22510,13 @@ class Test_TC_AUDIOOUTPUT_1_8Suite : public TestCommand } case 5: { LogStep(5, "Read the global attribute: GeneratedCommandList"); - VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.NU"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("AUDIOOUTPUT.S.NU"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } case 6: { LogStep(6, "Read the global attribute: GeneratedCommandList"); - VerifyOrDo(!ShouldSkip(" !MEDIAINPUT.S.NU "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" !AUDIOOUTPUT.S.NU "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), AudioOutput::Id, AudioOutput::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -22610,7 +22939,7 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand { public: Test_TC_CONTENTLAUNCHER_1_11Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CONTENTLAUNCHER_1_11", 10, credsIssuerConfig) + TestCommand("Test_TC_CONTENTLAUNCHER_1_11", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -22671,11 +23000,19 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 3UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -22688,7 +23025,7 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 5: + case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -22697,7 +23034,7 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : 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; @@ -22706,7 +23043,7 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 7: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -22715,7 +23052,7 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : 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; @@ -22724,7 +23061,7 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -22768,42 +23105,48 @@ class Test_TC_CONTENTLAUNCHER_1_11Suite : public TestCommand true, chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.CS || CONTENTLAUNCHER.S.UP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.CS"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the global attribute: AttributeList"); + LogStep(4, "Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.UP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::FeatureMap::Id, + true, chip::NullOptional); + } + case 5: { + LogStep(5, "Read the global attribute: AttributeList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 5: { - LogStep(5, "Read the optional attribute(AcceptHeader): AttributeList"); + case 6: { + LogStep(6, "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 6: { - LogStep(6, "Read the optional attribute(SupportedStreamingProtocols): AttributeList"); + case 7: { + LogStep(7, "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 7: { - LogStep(7, "Read the optional command(LaunchContent) in AcceptedCommandList attribute"); + case 8: { + LogStep(8, "Read the optional command(LaunchContent) in AcceptedCommandList attribute"); VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.C.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Read the optional command(LaunchURL) in AcceptedCommandList attribute"); + case 9: { + LogStep(9, "Read the optional command(LaunchURL) in AcceptedCommandList attribute"); VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.C.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Read the global attribute: GeneratedCommandList"); + case 10: { + LogStep(10, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -27398,8 +27741,8 @@ class Test_TC_OO_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("featureMap", value, 0UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: @@ -27491,13 +27834,13 @@ class Test_TC_OO_1_1Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("OO.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" !OO.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !OO.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given OO.S.F00(LT) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("OO.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OnOff::Id, OnOff::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -28465,7 +28808,7 @@ class Test_TC_OO_2_4Suite : public TestCommand class Test_TC_PS_1_1Suite : public TestCommand { public: - Test_TC_PS_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PS_1_1", 10, credsIssuerConfig) + Test_TC_PS_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PS_1_1", 14, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -28516,12 +28859,49 @@ class Test_TC_PS_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 15UL)); } break; case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 8UL)); + } + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28537,7 +28917,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 4: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28546,7 +28926,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 5: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28557,7 +28937,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 16UL)); } break; - case 6: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28567,7 +28947,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 28UL)); } break; - case 7: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28577,7 +28957,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 25UL)); } break; - case 8: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28589,7 +28969,7 @@ class Test_TC_PS_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 9: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -28630,45 +29010,71 @@ class Test_TC_PS_1_1Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); + VerifyOrDo(!ShouldSkip(" !PS.S.F00 && !PS.S.F01 && !PS.S.F02 && !PS.S.F03 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AttributeList::Id, true, + LogStep(3, "Given PS.S.F00(WIRED) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("PS.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the Feature dependent(PS.S.F00-WIRED) attribute in AttributeList"); + LogStep(4, "Given PS.S.F01(BAT) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("PS.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Given PS.S.F02(RECHG) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("PS.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Given PS.S.F03(REPLC) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("PS.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Read the global attribute: AttributeList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "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 5: { - LogStep(5, "Read the Feature dependent(PS.S.F01-BAT) attribute in AttributeList"); + case 9: { + LogStep(9, "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 6: { - LogStep(6, "Read the Feature dependent(PS.S.F02-RECHG) attribute in AttributeList"); + case 10: { + LogStep(10, "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 7: { - LogStep(7, "Read the Feature dependent(PS.S.F03-REPLC) attribute in AttributeList"); + case 11: { + LogStep(11, "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 8: { - LogStep(8, "Read the global attribute: AcceptedCommandList"); + case 12: { + LogStep(12, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "Read the global attribute: GeneratedCommandList"); + case 13: { + LogStep(13, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -29277,7 +29683,7 @@ class Test_TC_PRS_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("featureMap", value, 1UL)); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); } break; @@ -29286,8 +29692,8 @@ class Test_TC_PRS_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("featureMap", value, 0UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: @@ -29413,13 +29819,13 @@ class Test_TC_PRS_1_1Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("PRS.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" !PRS.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, PressureMeasurement::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip(" !PRS.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given PRS.S.F00(EXT) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("PRS.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PressureMeasurement::Id, PressureMeasurement::Attributes::FeatureMap::Id, true, chip::NullOptional); } @@ -31843,7 +32249,7 @@ class Test_TC_RH_2_1Suite : public TestCommand class Test_TC_SWTCH_1_1Suite : public TestCommand { public: - Test_TC_SWTCH_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SWTCH_1_1", 8, credsIssuerConfig) + Test_TC_SWTCH_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SWTCH_1_1", 12, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -31883,10 +32289,10 @@ class Test_TC_SWTCH_1_1Suite : public TestCommand case 1: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - uint32_t value; + uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("featureMap", value, 0UL)); - VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckValue("clusterRevision", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); } break; case 2: @@ -31894,20 +32300,69 @@ class Test_TC_SWTCH_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 31UL)); } break; case 3: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - uint16_t value; + uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("clusterRevision", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 2UL)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 4UL)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 8UL)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 16UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 1UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 1UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 8UL)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 1UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 16UL)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 1UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31923,7 +32378,7 @@ class Test_TC_SWTCH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 5: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31938,7 +32393,7 @@ class Test_TC_SWTCH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 6: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31946,7 +32401,7 @@ class Test_TC_SWTCH_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintType("value", "list", "list")); } break; - case 7: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -31981,43 +32436,66 @@ class Test_TC_SWTCH_1_1Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "Read FeatureMap attribute and Check values of flags in this FeatureMap"); - 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::FeatureMap::Id, true, + LogStep(1, "Read the global attribute: ClusterRevision"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::ClusterRevision::Id, true, chip::NullOptional); } case 2: { LogStep(2, "Read FeatureMap attribute and Check values of flags in this FeatureMap"); - VerifyOrDo(!ShouldSkip("(SWTCH.S.F00 || SWTCH.S.F01 || SWTCH.S.F02 || SWTCH.S.F03 || SWTCH.S.F04)"), + 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::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "read the global attribute: ClusterRevision"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::ClusterRevision::Id, true, + LogStep(3, "Given SWTCH.S.F00(LS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("SWTCH.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the global attribute: AttributeList"); + LogStep(4, "Given SWTCH.S.F01(MS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("SWTCH.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Given SWTCH.S.F02(MSR) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("SWTCH.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Given SWTCH.S.F03(MSL) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("SWTCH.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Given SWTCH.S.F04(MSM) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("SWTCH.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Read the global attribute: AttributeList"); VerifyOrDo(!ShouldSkip("SWTCH.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 5: { - LogStep(5, "Read the global attribute: AttributeList"); + case 9: { + LogStep(9, "Read the global attribute: AttributeList"); VerifyOrDo(!ShouldSkip("!SWTCH.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Read the global attribute: AcceptedCommandList"); + case 10: { + LogStep(10, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Read the global attribute: GeneratedCommandList"); + case 11: { + LogStep(11, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Switch::Id, Switch::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -32441,7 +32919,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", 17, credsIssuerConfig) + Test_TC_TSTAT_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_1_1", 22, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -32502,11 +32980,55 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 63UL)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 8UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 16UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 32UL)); + } + break; + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32522,7 +33044,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 5: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32531,7 +33053,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); } break; - case 6: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32540,7 +33062,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); } break; - case 7: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32549,7 +33071,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 8: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32558,7 +33080,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 20UL)); } break; - case 9: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32567,7 +33089,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); } break; - case 10: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32578,7 +33100,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 25UL)); } break; - case 11: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32589,7 +33111,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 34UL)); } break; - case 12: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32600,7 +33122,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 54UL)); } break; - case 13: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32611,7 +33133,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 57UL)); } break; - case 14: + case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32620,7 +33142,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 15: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32632,7 +33154,7 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); } break; - case 16: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -32675,84 +33197,113 @@ class Test_TC_TSTAT_1_1Suite : public TestCommand chip::NullOptional); } case 3: { - LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("TSTAT.S.F00 || TSTAT.S.F01 || TSTAT.S.F02 || TSTAT.S.F03 || TSTAT.S.F04 || TSTAT.S.F05"), - return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(3, "Given TSTAT.S.F00(HEAT ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "Read the global attribute: AttributeList"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, + LogStep(4, "Given TSTAT.S.F01(COOL) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Read the Feature dependent(TSTAT.S.F00(HEAT)) attribute in AttributeList"); + LogStep(5, "Given TSTAT.S.F02(OCC) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Given TSTAT.S.F03(SCH) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Given TSTAT.S.F04(SB) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Given TSTAT.S.F05(AUTO) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("TSTAT.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 9: { + LogStep(9, "Read the global attribute: AttributeList"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 10: { + LogStep(10, "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 6: { - LogStep(6, "Read the Feature dependent(TSTAT.S.F01(COOL)) attribute in AttributeList"); + case 11: { + LogStep(11, "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 7: { - LogStep(7, "Read the Feature dependent(TSTAT.S.F02(OCC)) attribute in AttributeList"); + case 12: { + LogStep(12, "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 8: { - LogStep(8, "Read the Feature dependent(TSTAT.S.F00(HEAT) & TSTAT.S.F02(OCC)) attribute in AttributeList"); + case 13: { + LogStep(13, "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 9: { - LogStep(9, "Read the Feature dependent(TSTAT.S.F01(COOL) & TSTAT.S.F02(OCC)) attribute in AttributeList"); + case 14: { + LogStep(14, "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 10: { - LogStep(10, "Read the Feature dependent(TSTAT.S.F05(AUTO)) attribute in AttributeList"); + case 15: { + LogStep(15, "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 11: { - LogStep(11, "Read the Feature dependent(TSTAT.S.F03(SCH)) attribute in AttributeList"); + case 16: { + LogStep(16, "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 12: { - LogStep(12, "Read the Feature dependent(TSTAT.S.F04(SB)) attribute in AttributeList"); + case 17: { + LogStep(17, "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 13: { - LogStep(13, "Read the Feature dependent(TSTAT.S.F04(SB) & TSTAT.S.F02(OCC)) attribute in AttributeList"); + case 18: { + LogStep(18, "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 14: { - LogStep(14, "Read the global attribute: AcceptedCommandList"); + case 19: { + LogStep(19, "Read the global attribute: AcceptedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList"); + case 20: { + LogStep(20, "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 16: { - LogStep(16, "Read the global attribute: GeneratedCommandList"); + case 21: { + LogStep(21, "Read the global attribute: GeneratedCommandList"); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Thermostat::Id, Thermostat::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -35857,7 +36408,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand { public: Test_TC_DGTHREAD_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_1_1", 6, credsIssuerConfig) + TestCommand("Test_TC_DGTHREAD_1_1", 10, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -35908,12 +36459,47 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 31UL)); } break; case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 8UL)); + } + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -35943,7 +36529,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 4: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -35952,7 +36538,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; - case 5: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -35993,21 +36579,47 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand } case 2: { LogStep(2, "TH reads the FeatureMap from DUT"); + VerifyOrDo(!ShouldSkip(" !DGTHREAD.S.F00 && !DGTHREAD.S.F00 && !DGTHREAD.S.F00 && !DGTHREAD.S.F00 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "TH reads AttributeList from DUT"); + LogStep(3, "Given DGTHREAD.S.F00(PKTCNT) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DGETH.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); + ThreadNetworkDiagnostics::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 4: { - LogStep(4, "TH reads AcceptedCommandList from DUT"); + LogStep(4, "Given DGTHREAD.S.F01(ERRCNT) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DGETH.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, - ThreadNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + ThreadNetworkDiagnostics::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "TH reads GeneratedCommandList from DUT"); + LogStep(5, "Given DGTHREAD.S.F02(MLECNT) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DGETH.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::FeatureMap::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "Given DGTHREAD.S.F03(MACCNT) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("DGETH.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::FeatureMap::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads AttributeList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 8: { + LogStep(8, "TH reads AcceptedCommandList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 9: { + LogStep(9, "TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -38681,7 +39293,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", 14, credsIssuerConfig) + Test_TC_WNCV_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_1_1", 19, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -38734,12 +39346,56 @@ class Test_TC_WNCV_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 32768UL)); } break; case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 8UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 16UL)); + } + break; + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38757,7 +39413,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); } break; - case 4: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38766,7 +39422,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 26UL)); } break; - case 5: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38776,7 +39432,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); } break; - case 6: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38786,7 +39442,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 14UL)); } break; - case 7: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38796,7 +39452,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 19UL)); } break; - case 8: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38806,7 +39462,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); } break; - case 9: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38817,7 +39473,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); } break; - case 10: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38826,7 +39482,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); } break; - case 11: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38835,7 +39491,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); } break; - case 12: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38844,7 +39500,7 @@ class Test_TC_WNCV_1_1Suite : public TestCommand VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); } break; - case 13: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -38886,74 +39542,105 @@ class Test_TC_WNCV_1_1Suite : public TestCommand } case 2: { LogStep(2, "TH reads from the DUT the (0xFFFC) FeatureMap attribute"); - VerifyOrDo(!ShouldSkip("WNCV.S.Afffc"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip(" WNCV.S.Afffc && !WNCV.S.F00 && !WNCV.S.F01 && !WNCV.S.F02 && !WNCV.S.F03 && !WNCV.S.F04 "), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "TH reads from the DUT the (0xFFFB) AttributeList attribute"); + LogStep(3, "Given WNCV.S.F00(LF) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id, + true, chip::NullOptional); + } + case 4: { + LogStep(4, "Given WNCV.S.F01(TL) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id, + true, chip::NullOptional); + } + case 5: { + LogStep(5, "Given WNCV.S.F02(PA_LF) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("WNCV.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id, + true, chip::NullOptional); + } + case 6: { + LogStep(6, "Given WNCV.S.F03(ABS) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("WNCV.S.F03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "Given WNCV.S.F04(PA_TL) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("WNCV.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id, + true, chip::NullOptional); + } + case 8: { + LogStep(8, "TH reads from the DUT the (0xFFFB) AttributeList attribute"); VerifyOrDo(!ShouldSkip("WNCV.S.Afffb"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 4: { - LogStep(4, "TH reads optional attribute(SafetyStatus) in AttributeList"); + case 9: { + LogStep(9, "TH reads optional attribute(SafetyStatus) in AttributeList"); VerifyOrDo(!ShouldSkip("WNCV.S.Afffb && WNCV.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 5: { - LogStep(5, "Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 & WNCV.S.F03) attribute in AttributeList"); + case 10: { + LogStep(10, "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 && WNCV.S.Afffb"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 6: { - LogStep(6, "Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 ) attribute in AttributeList"); + case 11: { + LogStep(11, "Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 ) attribute in AttributeList"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.Afffb"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 & WNCV.S.F03) attribute in AttributeList"); + case 12: { + LogStep(12, "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 && WNCV.S.Afffb"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 8: { - LogStep(8, "Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 ) attribute in AttributeList"); + case 13: { + LogStep(13, "Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 ) attribute in AttributeList"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.Afffb"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AttributeList::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "TH reads from the DUT the (0xFFF9) AcceptedCommandList attribute"); + case 14: { + LogStep(14, "TH reads from the DUT the (0xFFF9) AcceptedCommandList attribute"); VerifyOrDo(!ShouldSkip("WNCV.S.Afff9"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "TH reads Feature dependent(WNCV.S.F00 & WNCV.S.F02) command in AcceptedCommandList"); + case 15: { + LogStep(15, "TH reads Feature dependent(WNCV.S.F00 & WNCV.S.F02) command in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("WNCV.S.Afff9 && 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 11: { - LogStep(11, "TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F03) command in AcceptedCommandList"); + case 16: { + LogStep(16, "TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F03) command in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("WNCV.S.Afff9 && 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 12: { - LogStep(12, "TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F04) command in AcceptedCommandList"); + case 17: { + LogStep(17, "TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F04) command in AcceptedCommandList"); VerifyOrDo(!ShouldSkip("WNCV.S.Afff9 && 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 13: { - LogStep(13, "TH reads from the DUT the (0xFFF8) GeneratedCommandList attribute"); + case 18: { + LogStep(18, "TH reads from the DUT the (0xFFF8) GeneratedCommandList attribute"); VerifyOrDo(!ShouldSkip("WNCV.S.Afff8"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); @@ -39020,7 +39707,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 63U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 127U)); } break; case 3: @@ -39030,7 +39717,7 @@ class Test_TC_WNCV_2_1Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 63U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 127U)); } break; case 4: @@ -39946,7 +40633,7 @@ class Test_TC_WNCV_2_5Suite : public TestCommand class Test_TC_WNCV_3_1Suite : public TestCommand { public: - Test_TC_WNCV_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_1", 25, credsIssuerConfig) + Test_TC_WNCV_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_1", 29, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -40073,16 +40760,55 @@ class Test_TC_WNCV_3_1Suite : public TestCommand chip::BitMask value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 5U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 21U)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1U)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 2U)); } - shouldContinue = true; break; case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 4U)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 8U)); + } break; case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 4U)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 8U)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 16U)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 32U)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 16U)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 32U)); + } + 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::Nullable value; @@ -40092,7 +40818,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9999U)); } break; - case 16: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40102,7 +40828,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 99U)); } break; - case 17: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40112,7 +40838,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9999U)); } break; - case 18: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40122,14 +40848,14 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 99U)); } break; - case 19: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 20: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 21: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::BitMask value; @@ -40137,11 +40863,11 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckValue("operationalStatus", value, 0U)); } break; - case 22: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 23: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40151,7 +40877,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 9999U)); } break; - case 24: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40267,43 +40993,72 @@ class Test_TC_WNCV_3_1Suite : public TestCommand return WaitForMs(kIdentityAlpha, value); } case 13: { - LogStep(13, "3a1: Verify DUT reports OperationalStatus attribute to TH after a UpOrOpen"); + LogStep(13, "3a: TH reads OperationalStatus attribute's bit 0..1"); VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitForReport(); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "3a2: DUT updates its attributes"); + LogStep(14, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); + } + case 15: { + LogStep(15, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); + } + case 16: { + LogStep(16, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); + } + case 17: { + LogStep(17, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); + } + case 18: { + LogStep(18, "3a2: DUT updates its attributes"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 2000UL; + value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 15: { - LogStep(15, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 19: { + LogStep(19, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 20: { + LogStep(20, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008 && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 21: { + LogStep(21, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 22: { + LogStep(22, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009 && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, "4a: TH sends a StopMotion command to DUT"); + case 23: { + LogStep(23, "4a: TH sends a StopMotion command to DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; @@ -40312,35 +41067,37 @@ class Test_TC_WNCV_3_1Suite : public TestCommand ); } - case 20: { - LogStep(20, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); + case 24: { + LogStep(24, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 21: { - LogStep(21, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); + case 25: { + LogStep(25, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "5a: TH waits for x seconds attributes update on the device"); + case 26: { + LogStep(26, "5a: TH waits for x seconds attributes update on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 23: { - LogStep(23, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 27: { + LogStep(27, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 28: { + LogStep(28, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } @@ -40352,7 +41109,7 @@ class Test_TC_WNCV_3_1Suite : public TestCommand class Test_TC_WNCV_3_2Suite : public TestCommand { public: - Test_TC_WNCV_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_2", 25, credsIssuerConfig) + Test_TC_WNCV_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_2", 29, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -40479,16 +41236,55 @@ class Test_TC_WNCV_3_2Suite : public TestCommand chip::BitMask value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 10U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 42U)); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2U)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 1U)); } - shouldContinue = true; break; case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 8U)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 4U)); + } break; case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 4U)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 8U)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 32U)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 16U)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 16U)); + VerifyOrReturn(CheckConstraintHasMasksClear("value", value, 32U)); + } + 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::Nullable value; @@ -40498,7 +41294,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 16: + case 20: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40508,7 +41304,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100U)); } break; - case 17: + case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40518,7 +41314,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 18: + case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40528,14 +41324,14 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 100U)); } break; - case 19: + case 23: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 20: + case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 21: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::BitMask value; @@ -40543,11 +41339,11 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckValue("operationalStatus", value, 0U)); } break; - case 22: + case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 23: + case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40557,7 +41353,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand VerifyOrReturn(CheckConstraintMaxValue("value", value, 10000U)); } break; - case 24: + case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40673,43 +41469,72 @@ class Test_TC_WNCV_3_2Suite : public TestCommand return WaitForMs(kIdentityAlpha, value); } case 13: { - LogStep(13, "3a: Verify DUT reports OperationalStatus attribute to TH after a DownOrClose"); + LogStep(13, "3a: TH reads OperationalStatus attribute's bit 0..1"); VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitForReport(); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "3a2: DUT updates its attributes"); + LogStep(14, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); + } + case 15: { + LogStep(15, "3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))"); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); + } + case 16: { + LogStep(16, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); + } + case 17: { + LogStep(17, "3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))"); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a && !WNCV.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); + } + case 18: { + LogStep(18, "3a2: DUT updates its attributes"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 2000UL; + value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 15: { - LogStep(15, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 19: { + LogStep(19, "3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 16: { - LogStep(16, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 20: { + LogStep(20, "3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008 && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercentage::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 21: { + LogStep(21, "3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } - case 18: { - LogStep(18, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 22: { + LogStep(22, "3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009 && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercentage::Id, true, chip::NullOptional); } - case 19: { - LogStep(19, "4a: TH sends a StopMotion command to DUT"); + case 23: { + LogStep(23, "4a: TH sends a StopMotion command to DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; @@ -40718,35 +41543,37 @@ class Test_TC_WNCV_3_2Suite : public TestCommand ); } - case 20: { - LogStep(20, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); + case 24: { + LogStep(24, "4b: TH waits for 3 seconds the end of inertial movement(s) on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 21: { - LogStep(21, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); + case 25: { + LogStep(25, "4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion"); VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, "5a: TH waits for x seconds attributes update on the device"); + case 26: { + LogStep(26, "5a: TH waits for x seconds attributes update on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 1000UL; return WaitForMs(kIdentityAlpha, value); } - case 23: { - LogStep(23, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 27: { + LogStep(27, "5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 24: { - LogStep(24, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 28: { + LogStep(28, "5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); } @@ -40758,7 +41585,7 @@ class Test_TC_WNCV_3_2Suite : public TestCommand class Test_TC_WNCV_3_3Suite : public TestCommand { public: - Test_TC_WNCV_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_3", 15, credsIssuerConfig) + Test_TC_WNCV_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_3_3", 17, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -40817,30 +41644,41 @@ class Test_TC_WNCV_3_3Suite : public TestCommand { chip::BitMask value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + VerifyOrReturn(CheckConstraintNotValue("value", value, 0U)); } break; case 6: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + chip::BitMask value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + } break; case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + 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::BitMask value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckValue("operationalStatus", value, 0U)); } - shouldContinue = true; break; - case 9: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 10: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::BitMask value; @@ -40848,7 +41686,7 @@ class Test_TC_WNCV_3_3Suite : public TestCommand VerifyOrReturn(CheckValue("operationalStatus", value, 0U)); } break; - case 11: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40858,7 +41696,7 @@ class Test_TC_WNCV_3_3Suite : public TestCommand attrCurrentPositionLift = value; } break; - case 12: + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40875,7 +41713,7 @@ class Test_TC_WNCV_3_3Suite : public TestCommand } } break; - case 13: + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40885,7 +41723,7 @@ class Test_TC_WNCV_3_3Suite : public TestCommand attrCurrentPositionTilt = value; } break; - case 14: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -40959,13 +41797,26 @@ class Test_TC_WNCV_3_3Suite : public TestCommand return WaitForMs(kIdentityAlpha, value); } case 5: { - LogStep(5, "2: Subscribe to DUT reports on OperationalStatus attribute"); + LogStep(5, "1e: TH reads OperationalStatus attribute from DUT"); + VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "1d: TH Waits for 2 seconds movement(s) on the device"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 2000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 7: { + LogStep(7, "2: Subscribe to DUT reports on OperationalStatus attribute"); return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, 4, 5, true, chip::NullOptional, chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); } - case 6: { - LogStep(6, "2a: TH sends a StopMotion command to DUT"); + case 8: { + LogStep(8, "2a: TH sends a StopMotion command to DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::WindowCovering::Commands::StopMotion::Type value; @@ -40974,39 +41825,40 @@ class Test_TC_WNCV_3_3Suite : public TestCommand ); } - case 7: { - LogStep(7, "2b: TH waits for 3 seconds the end of inertial movement(s) on the device"); + case 9: { + LogStep(9, "2b: TH waits for 3 seconds the end of inertial movement(s) on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs(kIdentityAlpha, value); } - case 8: { - LogStep(8, "2c: Verify DUT reports OperationalStatus attribute to TH after a StopMotion"); + case 10: { + LogStep(10, "2c: TH reads OperationalStatus attribute from DUT after a StopMotion"); VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitForReport(); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, + WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "2d: TH waits for 100ms - 3s attributes update on the device"); + case 11: { + LogStep(11, "2d: TH waits for 100ms - 3s attributes update on the device"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 2000UL; return WaitForMs(kIdentityAlpha, value); } - case 10: { - LogStep(10, "2e: TH reads OperationalStatus attribute from DUT"); + case 12: { + LogStep(12, "2e: TH reads OperationalStatus attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::OperationalStatus::Id, true, chip::NullOptional); } - case 11: { - LogStep(11, "3a: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); + case 13: { + LogStep(13, "3a: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, + case 14: { + LogStep(14, "3b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute 3c: it Must be equal with " "CurrentPositionLiftPercent100ths from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b && WNCV.S.A000e"), @@ -41014,17 +41866,17 @@ class Test_TC_WNCV_3_3Suite : public TestCommand return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "4a: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); + case 15: { + LogStep(15, "4a: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT"); VerifyOrDo(!ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, + case 16: { + LogStep(16, "4b: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute 4c: it Must be equal with " "CurrentPositionTiltPercent100ths from DUT"); - VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000c && WNCV.S.A000f"), + VerifyOrDo(!ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000c && WNCV.S.A000f && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WindowCovering::Id, WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id, true, chip::NullOptional); @@ -68705,7 +69557,7 @@ class Test_TC_DRLK_1_1Suite : public TestCommand class Test_TC_DRLK_2_2Suite : public TestCommand { public: - Test_TC_DRLK_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_2", 26, credsIssuerConfig) + Test_TC_DRLK_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_2", 29, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -68846,23 +69698,27 @@ class Test_TC_DRLK_2_2Suite : public TestCommand } break; case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; 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)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("userCodeTemporaryDisableTime", value, 10U)); + } break; case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - } break; case 22: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -68872,10 +69728,23 @@ class Test_TC_DRLK_2_2Suite : public TestCommand break; case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } break; case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -69080,19 +69949,42 @@ class Test_TC_DRLK_2_2Suite : public TestCommand chip::NullOptional); } case 17: { - LogStep(17, "TH sends the unlock Door command to the DUT with invalid PINCode"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(17, + "TH sends an Unlock Door Command from the DUT with invalid PINCode. Repeat this step " + "PIXIT.DRLK.WrongCodeEntryLimit times and Verify that DUT sends failure response to the TH"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DRLK.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; - value.pinCode.Emplace(); - value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("1234568garbage: not in length on purpose"), 7); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, - chip::Optional(1000), chip::NullOptional - - ); + 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, "TH sends the unlock Door command to the DUT with valid PINCode"); + LogStep(18, "TH sends an Unlock Door Command from User1 to the DUT with the valid PINCode and verify the DUT response"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DRLK.S.A0030"), 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, "TH reads the UserCodeTemporaryDisableTime attribute from the DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, + DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, true, chip::NullOptional); + } + case 20: { + LogStep(20, "Wait 15000ms"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 15000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 21: { + LogStep(21, "TH sends the unlock Door command to the DUT with valid PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69103,8 +69995,8 @@ class Test_TC_DRLK_2_2Suite : public TestCommand ); } - case 19: { - LogStep(19, + case 22: { + LogStep(22, "TH writes WrongCodeEntryLimit attribute value as between 1 and 255 on the DUT and Verify that the DUT sends " "Success response"); VerifyOrDo(!ShouldSkip("DRLK.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -69114,8 +70006,8 @@ class Test_TC_DRLK_2_2Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::WrongCodeEntryLimit::Id, value, chip::NullOptional, chip::NullOptional); } - case 20: { - LogStep(20, + case 23: { + LogStep(23, "TH writes WrongCodeEntryLimit attribute value as between 1 and 255 on the DUT and verify DUT responds with " "UNSUPPORTED_WRITE"); VerifyOrDo(!ShouldSkip("!DRLK.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -69125,14 +70017,14 @@ class Test_TC_DRLK_2_2Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::WrongCodeEntryLimit::Id, value, chip::NullOptional, chip::NullOptional); } - case 21: { - LogStep(21, "TH reads the UserCodeTemporaryDisableTime attribute from the DUT"); + case 24: { + LogStep(24, "TH reads the UserCodeTemporaryDisableTime attribute from the DUT"); VerifyOrDo(!ShouldSkip("DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, true, chip::NullOptional); } - case 22: { - LogStep(22, + case 25: { + LogStep(25, "TH writes UserCodeTemporaryDisableTime attribute value as between 1 and 255 on the DUT and Verify that the " "DUT sends Success response"); VerifyOrDo(!ShouldSkip("DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -69143,8 +70035,8 @@ class Test_TC_DRLK_2_2Suite : public TestCommand DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, value, chip::NullOptional, chip::NullOptional); } - case 23: { - LogStep(23, + case 26: { + LogStep(26, "TH writes UserCodeTemporaryDisableTime attribute value as between 1 and 255 on the DUT and verify DUT " "responds with UNSUPPORTED_WRITE"); VerifyOrDo(!ShouldSkip("!DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -69155,8 +70047,8 @@ class Test_TC_DRLK_2_2Suite : public TestCommand DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, value, chip::NullOptional, chip::NullOptional); } - case 24: { - LogStep(24, "Clean the created user"); + case 27: { + LogStep(27, "Clean the created user"); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = 1U; @@ -69165,8 +70057,8 @@ class Test_TC_DRLK_2_2Suite : public TestCommand ); } - case 25: { - LogStep(25, "Cleanup the created credential"); + case 28: { + LogStep(28, "Cleanup the created credential"); VerifyOrDo(!ShouldSkip("DRLK.S.C26.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearCredential::Type value; @@ -69188,7 +70080,7 @@ class Test_TC_DRLK_2_2Suite : public TestCommand class Test_TC_DRLK_2_3Suite : public TestCommand { public: - Test_TC_DRLK_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_3", 37, credsIssuerConfig) + Test_TC_DRLK_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_3", 36, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -69279,12 +70171,9 @@ class Test_TC_DRLK_2_3Suite : public TestCommand 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), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; - case 8: + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -69292,6 +70181,9 @@ class Test_TC_DRLK_2_3Suite : public TestCommand VerifyOrReturn(CheckValue("requirePINforRemoteOperation", value, false)); } 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; @@ -69299,12 +70191,9 @@ class Test_TC_DRLK_2_3Suite : public TestCommand 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), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; - case 13: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { bool value; @@ -69312,26 +70201,29 @@ class Test_TC_DRLK_2_3Suite : public TestCommand VerifyOrReturn(CheckValue("requirePINforRemoteOperation", value, true)); } break; - case 14: + case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); break; case 16: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); break; case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); @@ -69343,9 +70235,6 @@ class Test_TC_DRLK_2_3Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); break; case 24: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); - break; - case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -69353,22 +70242,22 @@ class Test_TC_DRLK_2_3Suite : public TestCommand VerifyOrReturn(CheckValue("userCodeTemporaryDisableTime", value, 15U)); } break; - case 26: + case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); 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; case 28: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 30: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); - break; - case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint32_t value; @@ -69376,7 +70265,7 @@ class Test_TC_DRLK_2_3Suite : public TestCommand VerifyOrReturn(CheckValue("autoRelockTime", value, 10UL)); } break; - case 32: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint32_t value; @@ -69384,18 +70273,18 @@ class Test_TC_DRLK_2_3Suite : public TestCommand VerifyOrReturn(CheckValue("autoRelockTime", value, 60UL)); } break; - case 33: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 34: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 35: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 36: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; default: @@ -69484,19 +70373,7 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } case 5: { - LogStep(5, "Precondition: Door is in locked state"); - VerifyOrDo(!ShouldSkip("DRLK.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DoorLock::Commands::LockDoor::Type value; - value.pinCode.Emplace(); - value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(1000), chip::NullOptional - - ); - } - case 6: { - LogStep(6, "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT"); + LogStep(5, "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT"); VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; bool value; @@ -69505,8 +70382,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand DoorLock::Attributes::RequirePINforRemoteOperation::Id, value, chip::NullOptional, chip::NullOptional); } - case 7: { - LogStep(7, + case 6: { + LogStep(6, "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT and Verify DUT responds with " "UNSUPPORTED_WRITE"); VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && ! DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -69517,14 +70394,14 @@ class Test_TC_DRLK_2_3Suite : public TestCommand DoorLock::Attributes::RequirePINforRemoteOperation::Id, value, chip::NullOptional, chip::NullOptional); } - case 8: { - LogStep(8, "TH reads the RequirePINforRemoteOperation attribute from the DUT"); + case 7: { + LogStep(7, "TH reads the RequirePINforRemoteOperation attribute from the DUT"); VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::RequirePINforRemoteOperation::Id, true, chip::NullOptional); } - case 9: { - LogStep(9, "TH sends the unlock Door command to the DUT without PINCode"); + case 8: { + LogStep(8, "TH sends the unlock Door command to the DUT without PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69533,8 +70410,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 10: { - LogStep(10, "TH sends the unlock Door command to the DUT with valid PINCode"); + case 9: { + LogStep(9, "TH sends the unlock Door command to the DUT with valid PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69545,8 +70422,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 11: { - LogStep(11, "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT"); + case 10: { + LogStep(10, "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT"); VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; bool value; @@ -69555,8 +70432,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand DoorLock::Attributes::RequirePINforRemoteOperation::Id, value, chip::NullOptional, chip::NullOptional); } - case 12: { - LogStep(12, + case 11: { + LogStep(11, "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT and Verify DUT responds with " "UNSUPPORTED_WRITE"); VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && ! DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -69567,14 +70444,14 @@ class Test_TC_DRLK_2_3Suite : public TestCommand DoorLock::Attributes::RequirePINforRemoteOperation::Id, value, chip::NullOptional, chip::NullOptional); } - case 13: { - LogStep(13, "TH reads the RequirePINforRemoteOperation attribute from the DUT"); + case 12: { + LogStep(12, "TH reads the RequirePINforRemoteOperation attribute from the DUT"); VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::RequirePINforRemoteOperation::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "TH sends the unlock Door command to the DUT with valid PINCode"); + case 13: { + LogStep(13, "TH sends the unlock Door command to the DUT with valid PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69585,8 +70462,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 15: { - LogStep(15, "TH sends the unlock Door command to the DUT with invalid PINCode"); + case 14: { + LogStep(14, "TH sends the unlock Door command to the DUT with invalid PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69597,8 +70474,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 16: { - LogStep(16, "TH sends the unlock Door command to the DUT without PINCode"); + case 15: { + LogStep(15, "TH sends the unlock Door command to the DUT without PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69607,8 +70484,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 17: { - LogStep(17, + case 16: { + LogStep(16, "TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and Verify that the DUT sends Success response"); VerifyOrDo(!ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -69617,8 +70494,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::WrongCodeEntryLimit::Id, value, chip::NullOptional, chip::NullOptional); } - case 18: { - LogStep(18, + case 17: { + LogStep(17, "TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and verify DUT responds with UNSUPPORTED_WRITE"); VerifyOrDo(!ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && ! DRLK.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -69627,8 +70504,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::WrongCodeEntryLimit::Id, value, chip::NullOptional, chip::NullOptional); } - case 19: { - LogStep(19, + case 18: { + LogStep(18, "TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify that the DUT sends " "Success response"); VerifyOrDo(!ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -69639,8 +70516,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, value, chip::NullOptional, chip::NullOptional); } - case 20: { - LogStep(20, + case 19: { + LogStep(19, "TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify that the DUT sends " "Success response"); VerifyOrDo(!ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && ! DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -69651,8 +70528,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, value, chip::NullOptional, chip::NullOptional); } - case 21: { - LogStep(21, "TH sends the unlock Door command to the DUT with invalid PINCode"); + case 20: { + LogStep(20, "TH sends the unlock Door command to the DUT with invalid PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69663,8 +70540,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 22: { - LogStep(22, "TH sends the unlock Door command to the DUT with invalid PINCode"); + case 21: { + LogStep(21, "TH sends the unlock Door command to the DUT with invalid PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69675,8 +70552,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 23: { - LogStep(23, "TH sends the unlock Door command to the DUT with invalid PINCode"); + case 22: { + LogStep(22, "TH sends the unlock Door command to the DUT with invalid PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69687,8 +70564,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 24: { - LogStep(24, "TH sends the unlock Door command to the DUT with invalid PINCode"); + case 23: { + LogStep(23, "TH sends the unlock Door command to the DUT with invalid PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69699,14 +70576,14 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 25: { - LogStep(25, "TH reads the UserCodeTemporaryDisableTime attribute from the DUT and check attribute is triggered"); + case 24: { + LogStep(24, "TH reads the UserCodeTemporaryDisableTime attribute from the DUT and check attribute is triggered"); VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, true, chip::NullOptional); } - case 26: { - LogStep(26, "TH sends the unlock Door command to the DUT with valid PINCode"); + case 25: { + LogStep(25, "TH sends the unlock Door command to the DUT with valid PINCode"); VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; @@ -69717,8 +70594,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 27: { - LogStep(27, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); + case 26: { + LogStep(26, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint32_t value; @@ -69726,8 +70603,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, chip::NullOptional, chip::NullOptional); } - case 28: { - LogStep(28, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); + case 27: { + LogStep(27, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint32_t value; @@ -69735,8 +70612,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, chip::NullOptional, chip::NullOptional); } - case 29: { - LogStep(29, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); + case 28: { + LogStep(28, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); VerifyOrDo(!ShouldSkip("!DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint32_t value; @@ -69744,8 +70621,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, chip::NullOptional, chip::NullOptional); } - case 30: { - LogStep(30, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); + case 29: { + LogStep(29, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); VerifyOrDo(!ShouldSkip("!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint32_t value; @@ -69753,20 +70630,20 @@ class Test_TC_DRLK_2_3Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, chip::NullOptional, chip::NullOptional); } - case 31: { - LogStep(31, "TH reads the AutoRelockTime attribute from the DUT"); + case 30: { + LogStep(30, "TH reads the AutoRelockTime attribute from the DUT"); VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, chip::NullOptional); } - case 32: { - LogStep(32, "TH reads the AutoRelockTime attribute from the DUT"); + case 31: { + LogStep(31, "TH reads the AutoRelockTime attribute from the DUT"); VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, chip::NullOptional); } - case 33: { - LogStep(33, + case 32: { + LogStep(32, "TH sends the unlock Door command to the DUT with valid PINCode and Verify that DUT sends SUCCESS response to " "the TH"); VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -69777,8 +70654,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 34: { - LogStep(34, "TH reads LockState attribute after AutoRelockTime Expires and Verify that the DUT is locked."); + case 33: { + LogStep(33, "TH reads LockState attribute after AutoRelockTime Expires and Verify that the DUT is locked."); VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DRLK.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -69787,8 +70664,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 35: { - LogStep(35, "Cleanup the created user"); + case 34: { + LogStep(34, "Cleanup the created user"); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = 1U; @@ -69797,8 +70674,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 36: { - LogStep(36, "Clean the created credential"); + case 35: { + LogStep(35, "Clean the created credential"); VerifyOrDo(!ShouldSkip("DRLK.S.C26.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearCredential::Type value; @@ -69820,7 +70697,7 @@ class Test_TC_DRLK_2_3Suite : public TestCommand class Test_TC_DRLK_2_4Suite : public TestCommand { public: - Test_TC_DRLK_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_4", 19, credsIssuerConfig) + Test_TC_DRLK_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_4", 12, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -69830,7 +70707,10 @@ class Test_TC_DRLK_2_4Suite : public TestCommand ~Test_TC_DRLK_2_4Suite() {} - chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } private: chip::Optional mNodeId; @@ -69911,48 +70791,16 @@ class Test_TC_DRLK_2_4Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); - break; - 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)); - { - uint32_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("autoRelockTime", value, 10UL)); - } - break; - case 13: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint32_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("autoRelockTime", value, 60UL)); - } - break; - case 14: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 16: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; @@ -69961,10 +70809,10 @@ class Test_TC_DRLK_2_4Suite : public TestCommand VerifyOrReturn(CheckValue("lockState.Value()", value.Value(), 1U)); } break; - case 17: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 18: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; default: @@ -70053,69 +70901,26 @@ class Test_TC_DRLK_2_4Suite : public TestCommand ); } case 5: { - LogStep(5, "Precondition: Door is in locked state"); - VerifyOrDo(!ShouldSkip("DRLK.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DoorLock::Commands::LockDoor::Type value; - value.pinCode.Emplace(); - value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(1000), chip::NullOptional - - ); - } - case 6: { - LogStep(6, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - uint32_t value; - value = 10UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, - chip::NullOptional, chip::NullOptional); - } - case 7: { - LogStep(7, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(5, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint32_t value; value = 60UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, chip::NullOptional, chip::NullOptional); } - case 8: { - LogStep(8, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); - VerifyOrDo(!ShouldSkip("!DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - uint32_t value; - value = 10UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, - chip::NullOptional, chip::NullOptional); - } - case 9: { - LogStep(9, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); - VerifyOrDo(!ShouldSkip("!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 6: { + LogStep(6, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); + VerifyOrDo(!ShouldSkip(" !DRLK.S.A0023 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint32_t value; value = 60UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, chip::NullOptional, chip::NullOptional); } - case 10: { - LogStep(10, "TH sends the unlock with Timeout command to the DUT "); - VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DoorLock::Commands::UnlockWithTimeout::Type value; - value.timeout = 10U; - value.pinCode.Emplace(); - value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockWithTimeout::Id, value, - chip::Optional(1000), chip::NullOptional - - ); - } - case 11: { - LogStep(11, "TH sends the unlock with Timeout command to the DUT "); - VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 7: { + LogStep(7, "TH sends the Unlock with Timeout argument value as 60 seconds"); + VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnlockWithTimeout::Type value; value.timeout = 60U; @@ -70126,42 +70931,22 @@ class Test_TC_DRLK_2_4Suite : public TestCommand ); } - case 12: { - LogStep(12, "TH reads AutoRelockTime attribute from DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, - chip::NullOptional); - } - case 13: { - LogStep(13, "TH reads AutoRelockTime attribute from DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, - chip::NullOptional); - } - case 14: { - LogStep(14, "Wait 10000ms"); - VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 15: { - LogStep(15, "Wait 70000ms"); - VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 8: { + LogStep(8, "Wait 60s"); + VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 70000UL; + value.ms = 60000UL; return WaitForMs(kIdentityAlpha, value); } - case 16: { - LogStep(16, "TH reads LockState attribute"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + case 9: { + LogStep(9, "TH reads LockState attribute"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0000 && DRLK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id, true, chip::NullOptional); } - case 17: { - LogStep(17, "Cleanup the created user"); + case 10: { + LogStep(10, "Cleanup the created user"); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = 1U; @@ -70170,8 +70955,8 @@ class Test_TC_DRLK_2_4Suite : public TestCommand ); } - case 18: { - LogStep(18, "Clean the created credential"); + case 11: { + LogStep(11, "Clean the created credential"); VerifyOrDo(!ShouldSkip("DRLK.S.C26.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearCredential::Type value; @@ -71087,7 +71872,7 @@ class Test_TC_DRLK_2_9Suite : public TestCommand VerifyOrReturn(CheckValue("status", value.status, 2U)); VerifyOrReturn(CheckValueNull("userIndex", value.userIndex)); VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", value.nextCredentialIndex)); - VerifyOrReturn(CheckValue("nextCredentialIndex.Value()", value.nextCredentialIndex.Value(), 4U)); + VerifyOrReturn(CheckValue("nextCredentialIndex.Value()", value.nextCredentialIndex.Value(), 2U)); } break; case 11: @@ -71229,7 +72014,7 @@ class Test_TC_DRLK_2_9Suite : public TestCommand } case 3: { LogStep(3, "TH reads NumberOfTotalUsersSupported attribute and saves for future use."); - VerifyOrDo(!ShouldSkip("DRLK.C.F08 && DRLK.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::NumberOfTotalUsersSupported::Id, true, chip::NullOptional); } @@ -71281,8 +72066,7 @@ class Test_TC_DRLK_2_9Suite : public TestCommand value.credential.credentialIndex = 2U; value.credentialData = chip::ByteSpan(chip::Uint8::from_const_char("4321garbage: not in length on purpose"), 4); - value.userIndex.SetNonNull(); - value.userIndex.Value() = 2U; + value.userIndex.SetNull(); value.userStatus.SetNonNull(); value.userStatus.Value() = static_cast(5); value.userType.SetNonNull(); @@ -71304,8 +72088,7 @@ class Test_TC_DRLK_2_9Suite : public TestCommand value.credential.credentialIndex = 2U; value.credentialData = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); - value.userIndex.SetNonNull(); - value.userIndex.Value() = 2U; + value.userIndex.SetNull(); value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, @@ -71326,7 +72109,7 @@ class Test_TC_DRLK_2_9Suite : public TestCommand value.credentialData = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); value.userIndex.SetNonNull(); - value.userIndex.Value() = 2U; + value.userIndex.Value() = 1U; value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, @@ -71356,11 +72139,11 @@ class Test_TC_DRLK_2_9Suite : public TestCommand value.operationType = static_cast(0); value.credential.credentialType = static_cast(1); - value.credential.credentialIndex = 3U; + value.credential.credentialIndex = 1U; value.credentialData = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); value.userIndex.SetNonNull(); - value.userIndex.Value() = 3U; + value.userIndex.Value() = 1U; value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, @@ -71394,7 +72177,7 @@ class Test_TC_DRLK_2_9Suite : public TestCommand value.credentialData = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); value.userIndex.SetNonNull(); - value.userIndex.Value() = 2U; + value.userIndex.Value() = 1U; value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, @@ -71447,6 +72230,7 @@ class Test_TC_DRLK_2_9Suite : public TestCommand } case 16: { LogStep(16, "TH sends Set User Command to DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C1a.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::SetUser::Type value; value.operationType = static_cast(0); @@ -73524,8 +74308,8 @@ class Test_TC_G_1_1Suite : public TestCommand { uint32_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("featureMap", value, 1UL)); VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); } break; case 4: @@ -73602,7 +74386,7 @@ class Test_TC_G_1_1Suite : public TestCommand chip::NullOptional); } case 3: { - LogStep(3, "TH reads the FeatureMap from DUT"); + LogStep(3, "TH reads the FeatureMap(G.S.F00) from DUT"); VerifyOrDo(!ShouldSkip("G.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Attributes::FeatureMap::Id, true, chip::NullOptional); @@ -92119,12 +92903,7 @@ class Test_TC_CC_3_1Suite : public TestCommand break; case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 15U)); - } + shouldContinue = true; break; case 19: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -92291,6 +93070,7 @@ class Test_TC_CC_3_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -92300,6 +93080,7 @@ class Test_TC_CC_3_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -92498,9 +93279,14 @@ class Test_TC_CC_3_1Suite : public TestCommand } case 18: { LogStep(18, "TH reads CurrentHue attribute from DUT"); - VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, true, - chip::NullOptional); + VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A0000 && PICS_SKIP_SAMPLE_APP"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 19: { LogStep(19, "Wait 10s"); @@ -92732,8 +93518,8 @@ class Test_TC_CC_3_1Suite : public TestCommand case 48: { LogStep(48, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 49: { LogStep(49, "Turn off light that we turned on"); @@ -93046,6 +93832,7 @@ class Test_TC_CC_7_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("colorMode", value, 0U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); } @@ -93055,6 +93842,7 @@ class Test_TC_CC_7_1Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("enhancedColorMode", value, 3U)); VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); } @@ -93491,8 +94279,8 @@ class Test_TC_CC_7_1Suite : public TestCommand case 48: { LogStep(48, "TH reads EnhancedColorMode attribute from DUT"); VerifyOrDo(!ShouldSkip("CC.S.F00 && CC.S.A4001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::ColorMode::Id, true, - chip::NullOptional); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::EnhancedColorMode::Id, + true, chip::NullOptional); } case 49: { LogStep(49, "Turn Off light that we turned on"); @@ -99745,299 +100533,173 @@ class Test_TC_LTIME_1_1Suite : public TestCommand switch (testIndex) { } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_LTIME_2_1Suite : public TestCommand -{ -public: - Test_TC_LTIME_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LTIME_2_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_LTIME_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) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_LTIME_3_1Suite : public TestCommand -{ -public: - Test_TC_LTIME_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LTIME_3_1", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_LTIME_3_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) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_LUNIT_1_2Suite : public TestCommand -{ -public: - Test_TC_LUNIT_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LUNIT_1_2", 8, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_LUNIT_1_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - 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)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("clusterRevision", value, 1U)); - VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); - } - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint32_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("featureMap", value, 0UL)); - VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - } - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint32_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("featureMap", value, 1UL)); - VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); - } - 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; - 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; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - { - auto iter_0 = value.begin(); - VerifyOrReturn(CheckNoMoreListItems("acceptedCommandList", 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; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - { - auto iter_0 = value.begin(); - VerifyOrReturn(CheckNoMoreListItems("generatedCommandList", 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, "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, "TH reads the ClusterRevision from DUT"); - VerifyOrDo(!ShouldSkip("LUNIT.S.Afffd"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, - UnitLocalization::Attributes::ClusterRevision::Id, true, chip::NullOptional); + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LTIME_2_1Suite : public TestCommand +{ +public: + Test_TC_LTIME_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LTIME_2_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LTIME_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) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } - case 2: { - LogStep(2, "TH reads the FeatureMap from DUT"); - VerifyOrDo(!ShouldSkip("LUNIT.S.Afffc && !LUNIT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::FeatureMap::Id, - true, chip::NullOptional); + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); } - case 3: { - LogStep(3, "TH reads the FeatureMap from DUT"); - VerifyOrDo(!ShouldSkip("LUNIT.S.Afffc && LUNIT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::FeatureMap::Id, - true, chip::NullOptional); + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { } - case 4: { - LogStep(4, "TH reads AttributeList from DUT"); - VerifyOrDo(!ShouldSkip("LUNIT.S.Afffb"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, - UnitLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LTIME_3_1Suite : public TestCommand +{ +public: + Test_TC_LTIME_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LTIME_3_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LTIME_3_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) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } - case 5: { - LogStep(5, "TH reads Feature dependent(LUNIT.S.F00) attribute in AttributeList"); - VerifyOrDo(!ShouldSkip("LUNIT.S.Afffb && LUNIT.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, - UnitLocalization::Attributes::AttributeList::Id, true, chip::NullOptional); + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); } - case 6: { - LogStep(6, "TH reads AcceptedCommandList from DUT"); - VerifyOrDo(!ShouldSkip("LUNIT.S.Afff9"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, - UnitLocalization::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { } - case 7: { - LogStep(7, "TH reads GeneratedCommandList from DUT"); - VerifyOrDo(!ShouldSkip("LUNIT.S.Afff8"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, - UnitLocalization::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LUNIT_1_1Suite : public TestCommand +{ +public: + Test_TC_LUNIT_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LUNIT_1_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LUNIT_1_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) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { } return CHIP_NO_ERROR; } @@ -100213,7 +100875,7 @@ class Test_TC_LUNIT_3_1Suite : public TestCommand } case 2: { LogStep(2, "TH writes 0 (Fahrenheit) to TemperatureUnit attribute"); - VerifyOrDo(!ShouldSkip("LUNIT.C.A0000.Fahrenheit"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("LUNIT.S.A0000 && LUNIT.TempUnit.Fahrenheit"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::UnitLocalization::TempUnit value; value = static_cast(0); @@ -100222,13 +100884,13 @@ class Test_TC_LUNIT_3_1Suite : public TestCommand } case 3: { LogStep(3, "TH reads TemperatureUnit attribute"); - VerifyOrDo(!ShouldSkip("LUNIT.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("LUNIT.S.A0000 && LUNIT.TempUnit.Fahrenheit"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::TemperatureUnit::Id, true, chip::NullOptional); } case 4: { LogStep(4, "TH writes 1 (Celsius) to TemperatureUnit attribute"); - VerifyOrDo(!ShouldSkip("LUNIT.C.A0000.Celsius"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("LUNIT.S.A0000 && LUNIT.TempUnit.Celsius"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::UnitLocalization::TempUnit value; value = static_cast(1); @@ -100237,13 +100899,13 @@ class Test_TC_LUNIT_3_1Suite : public TestCommand } case 5: { LogStep(5, "TH reads TemperatureUnit attribute"); - VerifyOrDo(!ShouldSkip("LUNIT.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("LUNIT.S.A0000 && LUNIT.TempUnit.Celsius"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::TemperatureUnit::Id, true, chip::NullOptional); } case 6: { LogStep(6, "TH writes 2 (Kelvin) to TemperatureUnit attribute"); - VerifyOrDo(!ShouldSkip("LUNIT.C.A0000.Kelvin"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("LUNIT.S.A0000 && LUNIT.TempUnit.Kelvin"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::UnitLocalization::TempUnit value; value = static_cast(2); @@ -100252,13 +100914,13 @@ class Test_TC_LUNIT_3_1Suite : public TestCommand } case 7: { LogStep(7, "TH reads TemperatureUnit attribute"); - VerifyOrDo(!ShouldSkip("LUNIT.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("LUNIT.S.A0000 && LUNIT.TempUnit.Kelvin"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), UnitLocalization::Id, UnitLocalization::Attributes::TemperatureUnit::Id, true, chip::NullOptional); } case 8: { LogStep(8, "TH writes 5 to TemperatureUnit attribute"); - VerifyOrDo(!ShouldSkip("LUNIT.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("LUNIT.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::UnitLocalization::TempUnit value; value = static_cast(5); @@ -101742,7 +102404,7 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -102191,7 +102853,7 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), 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 54187fa82a8e8d..b65f871936e8d3 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -85,7 +85,7 @@ class TestList : public Command { printf("Test_TC_LVL_5_1\n"); printf("Test_TC_LVL_6_1\n"); printf("Test_TC_LCFG_1_1\n"); - printf("Test_TC_LUNIT_1_1\n"); + printf("Test_TC_LUNIT_1_2\n"); printf("Test_TC_LTIME_1_2\n"); printf("Test_TC_LOWPOWER_1_1\n"); printf("Test_TC_KEYPADINPUT_1_2\n"); @@ -3637,329 +3637,361 @@ class Test_TC_CC_1_1 : public TestCommandBridge { err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("( CC.S.F00 || CC.S.F01 || CC.S.F02 || CC.S.F03 || CC.S.F04)")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given CC.S.F00(HS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CC.S.F00")) { NextTest(); return; } - err = TestReadTheGlobalAttributeFeatureMap_3(); + err = TestGivenCcsf00hsEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Given CC.S.F01(EHue) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CC.S.F01")) { + NextTest(); + return; + } + err = TestGivenCCSF01EHueEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the optional attribute(CurrentHue) in AttributeList\n"); - if (ShouldSkip("CC.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Given CC.S.F02(CL) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CC.S.F02")) { NextTest(); return; } - err = TestReadTheOptionalAttributeCurrentHueInAttributeList_5(); + err = TestGivenCcsf02clEnsureFeaturemapHasTheCorrectBitSet_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read the optional attribute(CurrentSaturation) in AttributeList\n"); - if (ShouldSkip("CC.S.A0001")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : Given CC.S.F03(XY) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CC.S.F03")) { NextTest(); return; } - err = TestReadTheOptionalAttributeCurrentSaturationInAttributeList_6(); + err = TestGivenCcsf03xyEnsureFeaturemapHasTheCorrectBitSet_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Read the optional attribute(RemainingTime) in AttributeList\n"); - if (ShouldSkip("CC.S.A0002")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : Given CC.S.F04(CT) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CC.S.F04")) { NextTest(); return; } - err = TestReadTheOptionalAttributeRemainingTimeInAttributeList_7(); + err = TestGivenCcsf04ctEnsureFeaturemapHasTheCorrectBitSet_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Read the optional attribute(CurrentX) in AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 8 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Read the optional attribute(CurrentHue) in AttributeList\n"); + if (ShouldSkip("CC.S.A0000")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeCurrentHueInAttributeList_9(); + break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Read the optional attribute(CurrentSaturation) in AttributeList\n"); + if (ShouldSkip("CC.S.A0001")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeCurrentSaturationInAttributeList_10(); + break; + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Read the optional attribute(RemainingTime) in AttributeList\n"); + if (ShouldSkip("CC.S.A0002")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeRemainingTimeInAttributeList_11(); + break; + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Read the optional attribute(CurrentX) in AttributeList\n"); if (ShouldSkip("CC.S.A0003")) { NextTest(); return; } - err = TestReadTheOptionalAttributeCurrentXInAttributeList_8(); + err = TestReadTheOptionalAttributeCurrentXInAttributeList_12(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Read the optional attribute(CurrentY) in AttributeList\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Read the optional attribute(CurrentY) in AttributeList\n"); if (ShouldSkip("CC.S.A0004")) { NextTest(); return; } - err = TestReadTheOptionalAttributeCurrentYInAttributeList_9(); + err = TestReadTheOptionalAttributeCurrentYInAttributeList_13(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Read the optional attribute(DriftCompensation) in AttributeList\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Read the optional attribute(DriftCompensation) in AttributeList\n"); if (ShouldSkip("CC.S.A0005")) { NextTest(); return; } - err = TestReadTheOptionalAttributeDriftCompensationInAttributeList_10(); + err = TestReadTheOptionalAttributeDriftCompensationInAttributeList_14(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Read the optional attribute(CompensationText) in AttributeList\n"); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Read the optional attribute(CompensationText) in AttributeList\n"); if (ShouldSkip("CC.S.A0006")) { NextTest(); return; } - err = TestReadTheOptionalAttributeCompensationTextInAttributeList_11(); + err = TestReadTheOptionalAttributeCompensationTextInAttributeList_15(); break; - case 12: + case 16: ChipLogProgress( - chipTool, " ***** Test Step 12 : Read the optional attribute(ColorTemperatureMireds) in AttributeList\n"); + chipTool, " ***** Test Step 16 : Read the optional attribute(ColorTemperatureMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A0007")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorTemperatureMiredsInAttributeList_12(); + err = TestReadTheOptionalAttributeColorTemperatureMiredsInAttributeList_16(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Read the optional attribute(EnhancedCurrentHue) in AttributeList\n"); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Read the optional attribute(EnhancedCurrentHue) in AttributeList\n"); if (ShouldSkip("CC.S.A4000")) { NextTest(); return; } - err = TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_13(); + err = TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_17(); break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Read the optional attribute(ColorLoopActive) in AttributeList\n"); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Read the optional attribute(ColorLoopActive) in AttributeList\n"); if (ShouldSkip("CC.S.A4002")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopActiveInAttributeList_14(); + err = TestReadTheOptionalAttributeColorLoopActiveInAttributeList_18(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Read the optional attribute(ColorLoopDirection) in AttributeList\n"); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Read the optional attribute(ColorLoopDirection) in AttributeList\n"); if (ShouldSkip("CC.S.A4003")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_15(); + err = TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_19(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Read the optional attribute(ColorLoopTime) in AttributeList\n"); + case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : Read the optional attribute(ColorLoopTime) in AttributeList\n"); if (ShouldSkip("CC.S.A4004")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopTimeInAttributeList_16(); + err = TestReadTheOptionalAttributeColorLoopTimeInAttributeList_20(); break; - case 17: + case 21: ChipLogProgress( - chipTool, " ***** Test Step 17 : Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList\n"); + chipTool, " ***** Test Step 21 : Read the optional attribute(ColorLoopStartEnhancedHue) in AttributeList\n"); if (ShouldSkip("CC.S.A4005")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_17(); + err = TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_21(); break; - case 18: + case 22: ChipLogProgress( - chipTool, " ***** Test Step 18 : Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList\n"); + chipTool, " ***** Test Step 22 : Read the optional attribute(ColorLoopStoredEnhancedHue) in AttributeList\n"); if (ShouldSkip("CC.S.A4006")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_18(); + err = TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_22(); break; - case 19: + case 23: ChipLogProgress( - chipTool, " ***** Test Step 19 : Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList\n"); + chipTool, " ***** Test Step 23 : Read the optional attribute(ColorTempPhysicalMinMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400b")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_19(); + err = TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_23(); break; - case 20: + case 24: ChipLogProgress( - chipTool, " ***** Test Step 20 : Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList\n"); + chipTool, " ***** Test Step 24 : Read the optional attribute(ColorTempPhysicalMaxMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400c")) { NextTest(); return; } - err = TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_20(); + err = TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_24(); break; - case 21: + case 25: ChipLogProgress( - chipTool, " ***** Test Step 21 : Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList\n"); + chipTool, " ***** Test Step 25 : Read the optional attribute(CoupleColorTempToLevelMinMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A400d")) { NextTest(); return; } - err = TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_21(); + err = TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_25(); break; - case 22: + case 26: ChipLogProgress( - chipTool, " ***** Test Step 22 : Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList\n"); + chipTool, " ***** Test Step 26 : Read the optional attribute(StartUpColorTemperatureMireds) in AttributeList\n"); if (ShouldSkip("CC.S.A4010")) { NextTest(); return; } - err = TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_22(); + err = TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_26(); break; - case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : Read the optional command(MoveToHue) in AcceptedCommandList\n"); + case 27: + ChipLogProgress(chipTool, " ***** Test Step 27 : Read the optional command(MoveToHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C00.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_23(); + err = TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_27(); break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : Read the optional command(MoveHue) in AcceptedCommandList\n"); + case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Read the optional command(MoveHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C01.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveHueInAcceptedCommandList_24(); + err = TestReadTheOptionalCommandMoveHueInAcceptedCommandList_28(); break; - case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : Read the optional command(StepHue) in AcceptedCommandList\n"); + case 29: + ChipLogProgress(chipTool, " ***** Test Step 29 : Read the optional command(StepHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C02.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepHueInAcceptedCommandList_25(); + err = TestReadTheOptionalCommandStepHueInAcceptedCommandList_29(); break; - case 26: - ChipLogProgress(chipTool, " ***** Test Step 26 : Read the optional command(MoveToSaturation) in AcceptedCommandList\n"); + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : Read the optional command(MoveToSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C03.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_26(); + err = TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_30(); break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : Read the optional command(MoveSaturation) in AcceptedCommandList\n"); + case 31: + ChipLogProgress(chipTool, " ***** Test Step 31 : Read the optional command(MoveSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C04.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_27(); + err = TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_31(); break; - case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : Read the optional command(StepSaturation) in AcceptedCommandList\n"); + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : Read the optional command(StepSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C05.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_28(); + err = TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_32(); break; - case 29: + case 33: ChipLogProgress( - chipTool, " ***** Test Step 29 : Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 33 : Read the optional command(MoveToHueAndSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C06.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_29(); + err = TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_33(); break; - case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : Read the optional command(MoveToColor) in AcceptedCommandList\n"); + case 34: + ChipLogProgress(chipTool, " ***** Test Step 34 : Read the optional command(MoveToColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C07.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_30(); + err = TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_34(); break; - case 31: - ChipLogProgress(chipTool, " ***** Test Step 31 : Read the optional command(MoveColor) in AcceptedCommandList\n"); + case 35: + ChipLogProgress(chipTool, " ***** Test Step 35 : Read the optional command(MoveColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C08.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveColorInAcceptedCommandList_31(); + err = TestReadTheOptionalCommandMoveColorInAcceptedCommandList_35(); break; - case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : Read the optional command(StepColor) in AcceptedCommandList\n"); + case 36: + ChipLogProgress(chipTool, " ***** Test Step 36 : Read the optional command(StepColor) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C09.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepColorInAcceptedCommandList_32(); + err = TestReadTheOptionalCommandStepColorInAcceptedCommandList_36(); break; - case 33: + case 37: ChipLogProgress( - chipTool, " ***** Test Step 33 : Read the optional command(MoveToColorTemperature) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 37 : Read the optional command(MoveToColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C0a.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_33(); + err = TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_37(); break; - case 34: + case 38: ChipLogProgress( - chipTool, " ***** Test Step 34 : Read the optional command(EnhancedMoveToHue) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 38 : Read the optional command(EnhancedMoveToHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C40.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_34(); + err = TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_38(); break; - case 35: - ChipLogProgress(chipTool, " ***** Test Step 35 : Read the optional command(EnhancedMoveHue) in AcceptedCommandList\n"); + case 39: + ChipLogProgress(chipTool, " ***** Test Step 39 : Read the optional command(EnhancedMoveHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C41.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_35(); + err = TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_39(); break; - case 36: - ChipLogProgress(chipTool, " ***** Test Step 36 : Read the optional command(EnhancedStepHue) in AcceptedCommandList\n"); + case 40: + ChipLogProgress(chipTool, " ***** Test Step 40 : Read the optional command(EnhancedStepHue) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C42.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_36(); + err = TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_40(); break; - case 37: + case 41: ChipLogProgress(chipTool, - " ***** Test Step 37 : Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList\n"); + " ***** Test Step 41 : Read the optional command(EnhancedMoveToHueAndSaturation) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C43.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_37(); + err = TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_41(); break; - case 38: - ChipLogProgress(chipTool, " ***** Test Step 38 : Read the optional command(ColorLoopSet) in AcceptedCommandList\n"); + case 42: + ChipLogProgress(chipTool, " ***** Test Step 42 : Read the optional command(ColorLoopSet) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C44.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_38(); + err = TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_42(); break; - case 39: - ChipLogProgress(chipTool, " ***** Test Step 39 : Read the optional command(StopMoveStep) in AcceptedCommandList\n"); + case 43: + ChipLogProgress(chipTool, " ***** Test Step 43 : Read the optional command(StopMoveStep) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C47.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_39(); + err = TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_43(); break; - case 40: + case 44: ChipLogProgress( - chipTool, " ***** Test Step 40 : Read the optional command(MoveColorTemperature) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 44 : Read the optional command(MoveColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C4b.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_40(); + err = TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_44(); break; - case 41: + case 45: ChipLogProgress( - chipTool, " ***** Test Step 41 : Read the optional command(StepColorTemperature) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 45 : Read the optional command(StepColorTemperature) in AcceptedCommandList\n"); if (ShouldSkip("CC.S.C4c.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_41(); + err = TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_45(); break; - case 42: - ChipLogProgress(chipTool, " ***** Test Step 42 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_42(); + case 46: + ChipLogProgress(chipTool, " ***** Test Step 46 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_46(); break; } @@ -4101,6 +4133,18 @@ class Test_TC_CC_1_1 : public TestCommandBridge { 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; } // Go on to the next test. @@ -4114,7 +4158,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 43; + const uint16_t mTestCount = 47; chip::Optional mNodeId; chip::Optional mCluster; @@ -4178,7 +4222,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + CHIP_ERROR TestGivenCcsf00hsEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4187,21 +4231,98 @@ class Test_TC_CC_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + NSLog(@"Given CC.S.F00(HS) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 31UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenCCSF01EHueEnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given CC.S.F01(EHue) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_4() + CHIP_ERROR TestGivenCcsf02clEnsureFeaturemapHasTheCorrectBitSet_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given CC.S.F02(CL) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenCcsf03xyEnsureFeaturemapHasTheCorrectBitSet_6() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given CC.S.F03(XY) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenCcsf04ctEnsureFeaturemapHasTheCorrectBitSet_7() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given CC.S.F04(CT) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4231,7 +4352,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeCurrentHueInAttributeList_5() + CHIP_ERROR TestReadTheOptionalAttributeCurrentHueInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4253,7 +4374,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeCurrentSaturationInAttributeList_6() + CHIP_ERROR TestReadTheOptionalAttributeCurrentSaturationInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4275,7 +4396,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeRemainingTimeInAttributeList_7() + CHIP_ERROR TestReadTheOptionalAttributeRemainingTimeInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4297,7 +4418,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeCurrentXInAttributeList_8() + CHIP_ERROR TestReadTheOptionalAttributeCurrentXInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4319,7 +4440,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeCurrentYInAttributeList_9() + CHIP_ERROR TestReadTheOptionalAttributeCurrentYInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4341,7 +4462,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeDriftCompensationInAttributeList_10() + CHIP_ERROR TestReadTheOptionalAttributeDriftCompensationInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4363,7 +4484,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeCompensationTextInAttributeList_11() + CHIP_ERROR TestReadTheOptionalAttributeCompensationTextInAttributeList_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4385,7 +4506,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorTemperatureMiredsInAttributeList_12() + CHIP_ERROR TestReadTheOptionalAttributeColorTemperatureMiredsInAttributeList_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4407,7 +4528,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_13() + CHIP_ERROR TestReadTheOptionalAttributeEnhancedCurrentHueInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4429,7 +4550,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopActiveInAttributeList_14() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopActiveInAttributeList_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4451,7 +4572,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_15() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopDirectionInAttributeList_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4473,7 +4594,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopTimeInAttributeList_16() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopTimeInAttributeList_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4495,7 +4616,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_17() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopStartEnhancedHueInAttributeList_21() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4517,7 +4638,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_18() + CHIP_ERROR TestReadTheOptionalAttributeColorLoopStoredEnhancedHueInAttributeList_22() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4539,7 +4660,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_19() + CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMinMiredsInAttributeList_23() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4561,7 +4682,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_20() + CHIP_ERROR TestReadTheOptionalAttributeColorTempPhysicalMaxMiredsInAttributeList_24() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4583,7 +4704,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_21() + CHIP_ERROR TestReadTheOptionalAttributeCoupleColorTempToLevelMinMiredsInAttributeList_25() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4605,7 +4726,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_22() + CHIP_ERROR TestReadTheOptionalAttributeStartUpColorTemperatureMiredsInAttributeList_26() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4627,7 +4748,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_23() + CHIP_ERROR TestReadTheOptionalCommandMoveToHueInAcceptedCommandList_27() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4649,7 +4770,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveHueInAcceptedCommandList_24() + CHIP_ERROR TestReadTheOptionalCommandMoveHueInAcceptedCommandList_28() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4671,7 +4792,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepHueInAcceptedCommandList_25() + CHIP_ERROR TestReadTheOptionalCommandStepHueInAcceptedCommandList_29() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4693,7 +4814,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_26() + CHIP_ERROR TestReadTheOptionalCommandMoveToSaturationInAcceptedCommandList_30() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4715,7 +4836,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_27() + CHIP_ERROR TestReadTheOptionalCommandMoveSaturationInAcceptedCommandList_31() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4737,7 +4858,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_28() + CHIP_ERROR TestReadTheOptionalCommandStepSaturationInAcceptedCommandList_32() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4759,7 +4880,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_29() + CHIP_ERROR TestReadTheOptionalCommandMoveToHueAndSaturationInAcceptedCommandList_33() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4781,7 +4902,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_30() + CHIP_ERROR TestReadTheOptionalCommandMoveToColorInAcceptedCommandList_34() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4803,7 +4924,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveColorInAcceptedCommandList_31() + CHIP_ERROR TestReadTheOptionalCommandMoveColorInAcceptedCommandList_35() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4825,7 +4946,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepColorInAcceptedCommandList_32() + CHIP_ERROR TestReadTheOptionalCommandStepColorInAcceptedCommandList_36() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4847,7 +4968,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_33() + CHIP_ERROR TestReadTheOptionalCommandMoveToColorTemperatureInAcceptedCommandList_37() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4869,7 +4990,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_34() + CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueInAcceptedCommandList_38() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4891,7 +5012,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_35() + CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveHueInAcceptedCommandList_39() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4913,7 +5034,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_36() + CHIP_ERROR TestReadTheOptionalCommandEnhancedStepHueInAcceptedCommandList_40() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4935,7 +5056,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_37() + CHIP_ERROR TestReadTheOptionalCommandEnhancedMoveToHueAndSaturationInAcceptedCommandList_41() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4957,7 +5078,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_38() + CHIP_ERROR TestReadTheOptionalCommandColorLoopSetInAcceptedCommandList_42() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -4979,7 +5100,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_39() + CHIP_ERROR TestReadTheOptionalCommandStopMoveStepInAcceptedCommandList_43() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -5001,7 +5122,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_40() + CHIP_ERROR TestReadTheOptionalCommandMoveColorTemperatureInAcceptedCommandList_44() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -5023,7 +5144,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_41() + CHIP_ERROR TestReadTheOptionalCommandStepColorTemperatureInAcceptedCommandList_45() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -5045,7 +5166,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_42() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_46() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterColorControl * cluster = [[MTRBaseClusterColorControl alloc] initWithDevice:device @@ -7629,6 +7750,11 @@ class Test_TC_CC_3_2 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 0U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -7646,13 +7772,18 @@ class Test_TC_CC_3_2 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 0U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -8380,6 +8511,11 @@ class Test_TC_CC_3_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 0U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -8397,13 +8533,18 @@ class Test_TC_CC_3_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 0U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -8938,6 +9079,11 @@ class Test_TC_CC_4_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 0U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -8955,13 +9101,18 @@ class Test_TC_CC_4_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 0U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -9943,6 +10094,11 @@ class Test_TC_CC_4_2 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 0U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -9960,13 +10116,18 @@ class Test_TC_CC_4_2 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 0U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -10871,6 +11032,11 @@ class Test_TC_CC_4_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 0U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -10888,13 +11054,18 @@ class Test_TC_CC_4_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 0U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -11004,7 +11175,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { ChipLogProgress(chipTool, " ***** Test Step 3 : TH sends MoveToHueAndSaturation command to DUT with Hue=200, Saturation=50 and " "TransitionTime=0 (immediately)\n"); - if (ShouldSkip("CC.S.F01 && CC.S.C06.Rsp")) { + if (ShouldSkip("CC.S.F00 && CC.S.C06.Rsp")) { NextTest(); return; } @@ -11016,7 +11187,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads CurrentHue attribute from DUT.\n"); - if (ShouldSkip("CC.S.F01 && CC.S.A0000 && CC.S.C06.Rsp")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0000 && CC.S.C06.Rsp")) { NextTest(); return; } @@ -11024,7 +11195,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : TH reads CurrentSaturation attribute from DUT\n"); - if (ShouldSkip("CC.S.F01 && CC.S.A0001")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } @@ -11034,7 +11205,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { ChipLogProgress(chipTool, " ***** Test Step 7 : TH sends MoveToHueAndSaturation command to DUT with Hue=160, Saturation=80 and " "TransitionTime=200 (20s)\n"); - if (ShouldSkip("CC.S.F01 && CC.S.C06.Rsp")) { + if (ShouldSkip("CC.S.F00 && CC.S.C06.Rsp")) { NextTest(); return; } @@ -11054,7 +11225,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { break; case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : TH reads CurrentSaturation attribute from DUT\n"); - if (ShouldSkip("CC.S.F01 && CC.S.A0001")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } @@ -11074,7 +11245,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { break; case 13: ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads CurrentSaturation attribute from DUT\n"); - if (ShouldSkip("CC.S.F01 && CC.S.A0001")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } @@ -11094,7 +11265,7 @@ class Test_TC_CC_4_4 : public TestCommandBridge { break; case 16: ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads CurrentSaturation attribute from DUT\n"); - if (ShouldSkip("CC.S.F01 && CC.S.A0001")) { + if (ShouldSkip("CC.S.F00 && CC.S.A0001")) { NextTest(); return; } @@ -11554,6 +11725,11 @@ class Test_TC_CC_4_4 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 0U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -11571,13 +11747,18 @@ class Test_TC_CC_4_4 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 0U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -13462,6 +13643,11 @@ class Test_TC_CC_5_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 1U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -13479,13 +13665,18 @@ class Test_TC_CC_5_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 1U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -14134,6 +14325,11 @@ class Test_TC_CC_5_2 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 1U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -14151,13 +14347,18 @@ class Test_TC_CC_5_2 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 1U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -14596,8 +14797,8 @@ class Test_TC_CC_5_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("currentX", [value unsignedShortValue], 19500U)); - VerifyOrReturn(CheckConstraintMaxValue("currentX", [value unsignedShortValue], 26500U)); + VerifyOrReturn(CheckConstraintMinValue("currentX", [value unsignedShortValue], 13000U)); + VerifyOrReturn(CheckConstraintMaxValue("currentX", [value unsignedShortValue], 33000U)); NextTest(); }]; @@ -14618,8 +14819,8 @@ class Test_TC_CC_5_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("currentY", [value unsignedShortValue], 14500U)); - VerifyOrReturn(CheckConstraintMaxValue("currentY", [value unsignedShortValue], 19500U)); + VerifyOrReturn(CheckConstraintMinValue("currentY", [value unsignedShortValue], 14000U)); + VerifyOrReturn(CheckConstraintMaxValue("currentY", [value unsignedShortValue], 20000U)); NextTest(); }]; @@ -14647,8 +14848,8 @@ class Test_TC_CC_5_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("currentX", [value unsignedShortValue], 13000U)); - VerifyOrReturn(CheckConstraintMaxValue("currentX", [value unsignedShortValue], 15000U)); + VerifyOrReturn(CheckConstraintMinValue("currentX", [value unsignedShortValue], 11050U)); + VerifyOrReturn(CheckConstraintMaxValue("currentX", [value unsignedShortValue], 14950U)); NextTest(); }]; @@ -14669,8 +14870,8 @@ class Test_TC_CC_5_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("currentY", [value unsignedShortValue], 14000U)); - VerifyOrReturn(CheckConstraintMaxValue("currentY", [value unsignedShortValue], 16000U)); + VerifyOrReturn(CheckConstraintMinValue("currentY", [value unsignedShortValue], 11900U)); + VerifyOrReturn(CheckConstraintMaxValue("currentY", [value unsignedShortValue], 16100U)); NextTest(); }]; @@ -14746,6 +14947,11 @@ class Test_TC_CC_5_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 1U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -14763,13 +14969,18 @@ class Test_TC_CC_5_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 1U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -15416,6 +15627,11 @@ class Test_TC_CC_6_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 2U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -15433,13 +15649,18 @@ class Test_TC_CC_6_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 2U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -16262,6 +16483,11 @@ class Test_TC_CC_7_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 0U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -16279,13 +16505,18 @@ class Test_TC_CC_7_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 3U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -16947,6 +17178,11 @@ class Test_TC_CC_7_4 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("ColorMode", actualValue, 0U)); + } + VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 2U)); @@ -16964,13 +17200,18 @@ class Test_TC_CC_7_4 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + [cluster readAttributeEnhancedColorModeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads EnhancedColorMode attribute from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("colorMode", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("colorMode", [value unsignedCharValue], 3U)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("EnhancedColorMode", actualValue, 3U)); + } + + VerifyOrReturn(CheckConstraintMinValue("enhancedColorMode", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("enhancedColorMode", [value unsignedCharValue], 3U)); NextTest(); }]; @@ -18377,31 +18618,51 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads the FeatureMap from DUT\n"); + if (ShouldSkip(" !DGETH.S.F00 && !DGETH.S.F01")) { + NextTest(); + return; + } err = TestThReadsTheFeatureMapFromDut_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads AttributeList from DUT\n"); - err = TestThReadsAttributeListFromDut_3(); + ChipLogProgress(chipTool, " ***** Test Step 3 : Given DGETH.S.F00 ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DGETH.S.F00")) { + NextTest(); + return; + } + err = TestGivenDgethsf00EnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads AcceptedCommandList from DUT\n"); - if (ShouldSkip("DGETH.S.F00 || DGETH.S.F01")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Given DGETH.S.F01 ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DGETH.S.F01")) { NextTest(); return; } - err = TestThReadsAcceptedCommandListFromDut_4(); + err = TestGivenDgethsf01EnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads AcceptedCommandList from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads AttributeList from DUT\n"); + err = TestThReadsAttributeListFromDut_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : TH reads AcceptedCommandList from DUT\n"); + if (ShouldSkip("DGETH.S.F00 || DGETH.S.F01")) { + NextTest(); + return; + } + err = TestThReadsAcceptedCommandListFromDut_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : TH reads AcceptedCommandList from DUT\n"); if (ShouldSkip(" !DGETH.S.F00 && !DGETH.S.F01 ")) { NextTest(); return; } - err = TestThReadsAcceptedCommandListFromDut_5(); + err = TestThReadsAcceptedCommandListFromDut_7(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : TH reads GeneratedCommandList from DUT\n"); - err = TestThReadsGeneratedCommandListFromDut_6(); + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads GeneratedCommandList from DUT\n"); + err = TestThReadsGeneratedCommandListFromDut_8(); break; } @@ -18435,6 +18696,12 @@ class Test_TC_DGETH_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. @@ -18448,7 +18715,7 @@ class Test_TC_DGETH_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; @@ -18498,17 +18765,57 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); + } + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDgethsf00EnsureFeaturemapHasTheCorrectBitSet_3() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterEthernetNetworkDiagnostics * cluster = + [[MTRBaseClusterEthernetNetworkDiagnostics alloc] initWithDevice:device endpoint:0 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DGETH.S.F00 ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 3UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDgethsf01EnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterEthernetNetworkDiagnostics * cluster = + [[MTRBaseClusterEthernetNetworkDiagnostics alloc] initWithDevice:device endpoint:0 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DGETH.S.F01 ensure featuremap has the correct bit set Error: %@", err); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsAttributeListFromDut_3() + CHIP_ERROR TestThReadsAttributeListFromDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterEthernetNetworkDiagnostics * cluster = @@ -18533,7 +18840,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsAcceptedCommandListFromDut_4() + CHIP_ERROR TestThReadsAcceptedCommandListFromDut_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterEthernetNetworkDiagnostics * cluster = @@ -18554,7 +18861,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsAcceptedCommandListFromDut_5() + CHIP_ERROR TestThReadsAcceptedCommandListFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterEthernetNetworkDiagnostics * cluster = @@ -18578,7 +18885,7 @@ class Test_TC_DGETH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsGeneratedCommandListFromDut_6() + CHIP_ERROR TestThReadsGeneratedCommandListFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterEthernetNetworkDiagnostics * cluster = @@ -24321,107 +24628,123 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("LVL.S.F00 || LVL.S.F01 || LVL.S.F02")) { + if (ShouldSkip(" !LVL.S.F00 && !LVL.S.F01 && !LVL.S.F02 ")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !LVL.S.F00 && !LVL.S.F01 && !LVL.S.F02 ")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given LVL.S.F00(OO) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("LVL.S.F00")) { NextTest(); return; } - err = TestReadTheGlobalAttributeFeatureMap_3(); + err = TestGivenLvlsf00ooEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Given LVL.S.F01(LT) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("LVL.S.F01")) { + NextTest(); + return; + } + err = TestGivenLvlsf01ltEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Given LVL.S.F02(FQ) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("LVL.S.F02")) { + NextTest(); + return; + } + err = TestGivenLvlsf02fqEnsureFeaturemapHasTheCorrectBitSet_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_6(); + break; + case 7: ChipLogProgress(chipTool, - " ***** Test Step 5 : Read the optional attribute(StartUpCurrentLevel and RemainingTime) in AttributeList\n"); + " ***** Test Step 7 : Read the optional attribute(StartUpCurrentLevel and RemainingTime) in AttributeList\n"); if (ShouldSkip("LVL.S.F01")) { NextTest(); return; } - err = TestReadTheOptionalAttributeStartUpCurrentLevelAndRemainingTimeInAttributeList_5(); + err = TestReadTheOptionalAttributeStartUpCurrentLevelAndRemainingTimeInAttributeList_7(); break; - case 6: + case 8: ChipLogProgress(chipTool, - " ***** Test Step 6 : Read the optional attribute(CurrentFrequency, MinFrequency and MinFrequency) in " + " ***** Test Step 8 : Read the optional attribute(CurrentFrequency, MinFrequency and MinFrequency) in " "AttributeList\n"); if (ShouldSkip("LVL.S.F02")) { NextTest(); return; } - err = TestReadTheOptionalAttributeCurrentFrequencyMinFrequencyAndMinFrequencyInAttributeList_6(); + err = TestReadTheOptionalAttributeCurrentFrequencyMinFrequencyAndMinFrequencyInAttributeList_8(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Read the optional attribute(MinLevel) in AttributeList\n"); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Read the optional attribute(MinLevel) in AttributeList\n"); if (ShouldSkip("LVL.S.A0002")) { NextTest(); return; } - err = TestReadTheOptionalAttributeMinLevelInAttributeList_7(); + err = TestReadTheOptionalAttributeMinLevelInAttributeList_9(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Read the optional attribute(MaxLevel) in AttributeList\n"); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Read the optional attribute(MaxLevel) in AttributeList\n"); if (ShouldSkip("LVL.S.A0003")) { NextTest(); return; } - err = TestReadTheOptionalAttributeMaxLevelInAttributeList_8(); + err = TestReadTheOptionalAttributeMaxLevelInAttributeList_10(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Read the optional attribute(OnOffTransitionTime) in AttributeList\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Read the optional attribute(OnOffTransitionTime) in AttributeList\n"); if (ShouldSkip("LVL.S.A0010")) { NextTest(); return; } - err = TestReadTheOptionalAttributeOnOffTransitionTimeInAttributeList_9(); + err = TestReadTheOptionalAttributeOnOffTransitionTimeInAttributeList_11(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Read the optional attribute(OnTransitionTime) in AttributeList\n"); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Read the optional attribute(OnTransitionTime) in AttributeList\n"); if (ShouldSkip("LVL.S.A0012")) { NextTest(); return; } - err = TestReadTheOptionalAttributeOnTransitionTimeInAttributeList_10(); + err = TestReadTheOptionalAttributeOnTransitionTimeInAttributeList_12(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Read the optional attribute(OffTransitionTime) in AttributeList\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Read the optional attribute(OffTransitionTime) in AttributeList\n"); if (ShouldSkip("LVL.S.A0013")) { NextTest(); return; } - err = TestReadTheOptionalAttributeOffTransitionTimeInAttributeList_11(); + err = TestReadTheOptionalAttributeOffTransitionTimeInAttributeList_13(); break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Read the optional attribute(DefaultMoveRate) in AttributeList\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Read the optional attribute(DefaultMoveRate) in AttributeList\n"); if (ShouldSkip("LVL.S.A0014")) { NextTest(); return; } - err = TestReadTheOptionalAttributeDefaultMoveRateInAttributeList_12(); + err = TestReadTheOptionalAttributeDefaultMoveRateInAttributeList_14(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_13(); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_15(); break; - case 14: + case 16: ChipLogProgress( - chipTool, " ***** Test Step 14 : Read the Feature-dependent(LVL.S.F02) attribute in AcceptedCommandList\n"); + chipTool, " ***** Test Step 16 : Read the Feature-dependent(LVL.S.F02) attribute in AcceptedCommandList\n"); if (ShouldSkip("LVL.S.F02")) { NextTest(); return; } - err = TestReadTheFeatureDependentLVLSF02AttributeInAcceptedCommandList_14(); + err = TestReadTheFeatureDependentLVLSF02AttributeInAcceptedCommandList_16(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_15(); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_17(); break; } @@ -24482,6 +24805,12 @@ class Test_TC_LVL_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; } // Go on to the next test. @@ -24495,7 +24824,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 16; + const uint16_t mTestCount = 18; chip::Optional mNodeId; chip::Optional mCluster; @@ -24547,17 +24876,39 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); + } + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 7UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + CHIP_ERROR TestGivenLvlsf00ooEnsureFeaturemapHasTheCorrectBitSet_3() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given LVL.S.F00(OO) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + CHIP_ERROR TestGivenLvlsf01ltEnsureFeaturemapHasTheCorrectBitSet_4() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24566,14 +24917,29 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + NSLog(@"Given LVL.S.F01(LT) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); - } + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenLvlsf02fqEnsureFeaturemapHasTheCorrectBitSet_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given LVL.S.F02(FQ) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); @@ -24582,7 +24948,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_4() + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24611,7 +24977,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeStartUpCurrentLevelAndRemainingTimeInAttributeList_5() + CHIP_ERROR TestReadTheOptionalAttributeStartUpCurrentLevelAndRemainingTimeInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24634,7 +25000,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeCurrentFrequencyMinFrequencyAndMinFrequencyInAttributeList_6() + CHIP_ERROR TestReadTheOptionalAttributeCurrentFrequencyMinFrequencyAndMinFrequencyInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24658,7 +25024,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeMinLevelInAttributeList_7() + CHIP_ERROR TestReadTheOptionalAttributeMinLevelInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24680,7 +25046,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeMaxLevelInAttributeList_8() + CHIP_ERROR TestReadTheOptionalAttributeMaxLevelInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24702,7 +25068,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeOnOffTransitionTimeInAttributeList_9() + CHIP_ERROR TestReadTheOptionalAttributeOnOffTransitionTimeInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24724,7 +25090,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeOnTransitionTimeInAttributeList_10() + CHIP_ERROR TestReadTheOptionalAttributeOnTransitionTimeInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24746,7 +25112,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeOffTransitionTimeInAttributeList_11() + CHIP_ERROR TestReadTheOptionalAttributeOffTransitionTimeInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24768,7 +25134,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeDefaultMoveRateInAttributeList_12() + CHIP_ERROR TestReadTheOptionalAttributeDefaultMoveRateInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24790,7 +25156,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_13() + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24819,7 +25185,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentLVLSF02AttributeInAcceptedCommandList_14() + CHIP_ERROR TestReadTheFeatureDependentLVLSF02AttributeInAcceptedCommandList_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -24841,7 +25207,7 @@ class Test_TC_LVL_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_15() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterLevelControl * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device @@ -30517,11 +30883,11 @@ class Test_TC_LCFG_1_1 : public TestCommandBridge { } }; -class Test_TC_LUNIT_1_1 : public TestCommandBridge { +class Test_TC_LUNIT_1_2 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_LUNIT_1_1() - : TestCommandBridge("Test_TC_LUNIT_1_1") + Test_TC_LUNIT_1_2() + : TestCommandBridge("Test_TC_LUNIT_1_2") , mTestIndex(0) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); @@ -30531,7 +30897,7 @@ class Test_TC_LUNIT_1_1 : public TestCommandBridge { } // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - ~Test_TC_LUNIT_1_1() {} + ~Test_TC_LUNIT_1_2() {} /////////// TestCommand Interface ///////// void NextTest() override @@ -30539,11 +30905,11 @@ class Test_TC_LUNIT_1_1 : public TestCommandBridge { CHIP_ERROR err = CHIP_NO_ERROR; if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_LUNIT_1_1\n"); + ChipLogProgress(chipTool, " **** Test Start: Test_TC_LUNIT_1_2\n"); } if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_LUNIT_1_1\n"); + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_LUNIT_1_2\n"); SetCommandExitStatus(CHIP_NO_ERROR); return; } @@ -30555,6 +30921,66 @@ class Test_TC_LUNIT_1_1 : public TestCommandBridge { // but before our function call returns, we won't end up with an // incorrect mTestIndex value observed when we get the response. switch (mTestIndex++) { + case 0: + ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n"); + err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); + break; + case 1: + ChipLogProgress(chipTool, " ***** Test Step 1 : TH reads the ClusterRevision from DUT\n"); + if (ShouldSkip("LUNIT.S.Afffd")) { + NextTest(); + return; + } + err = TestThReadsTheClusterRevisionFromDut_1(); + break; + case 2: + ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads the FeatureMap from DUT\n"); + if (ShouldSkip("LUNIT.S.Afffc && !LUNIT.S.F00")) { + NextTest(); + return; + } + err = TestThReadsTheFeatureMapFromDut_2(); + break; + case 3: + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads the FeatureMap from DUT\n"); + if (ShouldSkip("LUNIT.S.Afffc && LUNIT.S.F00")) { + NextTest(); + return; + } + err = TestThReadsTheFeatureMapFromDut_3(); + break; + case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads AttributeList from DUT\n"); + if (ShouldSkip("LUNIT.S.Afffb")) { + NextTest(); + return; + } + err = TestThReadsAttributeListFromDut_4(); + break; + case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads Feature dependent(LUNIT.S.F00) attribute in AttributeList\n"); + if (ShouldSkip("LUNIT.S.Afffb && LUNIT.S.F00")) { + NextTest(); + return; + } + err = TestThReadsFeatureDependentLUNITSF00AttributeInAttributeList_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : TH reads AcceptedCommandList from DUT\n"); + if (ShouldSkip("LUNIT.S.Afff9")) { + NextTest(); + return; + } + err = TestThReadsAcceptedCommandListFromDut_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : TH reads GeneratedCommandList from DUT\n"); + if (ShouldSkip("LUNIT.S.Afff8")) { + NextTest(); + return; + } + err = TestThReadsGeneratedCommandListFromDut_7(); + break; } if (CHIP_NO_ERROR != err) { @@ -30566,6 +30992,30 @@ class Test_TC_LUNIT_1_1 : public TestCommandBridge { void OnStatusUpdate(const chip::app::StatusIB & status) override { switch (mTestIndex - 1) { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + 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. @@ -30579,12 +31029,192 @@ class Test_TC_LUNIT_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 0; + const uint16_t mTestCount = 8; chip::Optional mNodeId; chip::Optional mCluster; chip::Optional mEndpoint; chip::Optional mTimeout; + + CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0() + { + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee("alpha", value); + } + + CHIP_ERROR TestThReadsTheClusterRevisionFromDut_1() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterUnitLocalization * cluster = [[MTRBaseClusterUnitLocalization alloc] initWithDevice:device + endpoint:0 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeClusterRevisionWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the ClusterRevision from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("ClusterRevision", actualValue, 1U)); + } + + VerifyOrReturn(CheckConstraintType("clusterRevision", "int16u", "int16u")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsTheFeatureMapFromDut_2() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterUnitLocalization * cluster = [[MTRBaseClusterUnitLocalization alloc] initWithDevice:device + endpoint:0 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the FeatureMap from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); + } + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsTheFeatureMapFromDut_3() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterUnitLocalization * cluster = [[MTRBaseClusterUnitLocalization alloc] initWithDevice:device + endpoint:0 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the FeatureMap from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("FeatureMap", actualValue, 1UL)); + } + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsAttributeListFromDut_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterUnitLocalization * cluster = [[MTRBaseClusterUnitLocalization alloc] initWithDevice:device + endpoint:0 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"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 TestThReadsFeatureDependentLUNITSF00AttributeInAttributeList_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterUnitLocalization * cluster = [[MTRBaseClusterUnitLocalization alloc] initWithDevice:device + endpoint:0 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads Feature dependent(LUNIT.S.F00) attribute in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsAcceptedCommandListFromDut_6() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterUnitLocalization * cluster = [[MTRBaseClusterUnitLocalization alloc] initWithDevice:device + endpoint:0 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads AcceptedCommandList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("AcceptedCommandList", [actualValue count], static_cast(0))); + } + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "list", "list")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsGeneratedCommandListFromDut_7() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterUnitLocalization * cluster = [[MTRBaseClusterUnitLocalization alloc] initWithDevice:device + endpoint:0 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeGeneratedCommandListWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads GeneratedCommandList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("GeneratedCommandList", [actualValue count], static_cast(0))); + } + + VerifyOrReturn(CheckConstraintType("generatedCommandList", "list", "list")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } }; class Test_TC_LTIME_1_2 : public TestCommandBridge { @@ -31207,24 +31837,40 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("KEYPADINPUT.S.NV || KEYPADINPUT.S.LK || KEYPADINPUT.S.NK")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not\n"); + if (ShouldSkip("KEYPADINPUT.S.NV")) { NextTest(); return; } - err = TestReadTheGlobalAttributeFeatureMap_3(); + err = TestGivenKeypadinputsnvFeatureMapBitMaskIsSetOrNot_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not\n"); + if (ShouldSkip("KEYPADINPUT.S.LK")) { + NextTest(); + return; + } + err = TestGivenKeypadinputslkFeatureMapBitMaskIsSetOrNot_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not\n"); + if (ShouldSkip("KEYPADINPUT.S.NK")) { + NextTest(); + return; + } + err = TestGivenKeypadinputsnkFeatureMapBitMaskIsSetOrNot_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_8(); break; } @@ -31258,6 +31904,12 @@ class Test_TC_KEYPADINPUT_1_2 : 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. @@ -31271,7 +31923,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; + const uint16_t mTestCount = 9; chip::Optional mNodeId; chip::Optional mCluster; @@ -31335,7 +31987,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + CHIP_ERROR TestGivenKeypadinputsnvFeatureMapBitMaskIsSetOrNot_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterKeypadInput * cluster = [[MTRBaseClusterKeypadInput alloc] initWithDevice:device @@ -31344,21 +31996,58 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + NSLog(@"Given (KEYPADINPUT.S.NV) FeatureMap bit mask is set or not Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 7UL)); + NextTest(); + }]; + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenKeypadinputslkFeatureMapBitMaskIsSetOrNot_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterKeypadInput * cluster = [[MTRBaseClusterKeypadInput alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given (KEYPADINPUT.S.LK) FeatureMap bit mask is set or not Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_4() + CHIP_ERROR TestGivenKeypadinputsnkFeatureMapBitMaskIsSetOrNot_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterKeypadInput * cluster = [[MTRBaseClusterKeypadInput alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given (KEYPADINPUT.S.NK) FeatureMap bit mask is set or not Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterKeypadInput * cluster = [[MTRBaseClusterKeypadInput alloc] initWithDevice:device @@ -31384,7 +32073,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_5() + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterKeypadInput * cluster = [[MTRBaseClusterKeypadInput alloc] initWithDevice:device @@ -31406,7 +32095,7 @@ class Test_TC_KEYPADINPUT_1_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_6() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterKeypadInput * cluster = [[MTRBaseClusterKeypadInput alloc] initWithDevice:device @@ -32406,73 +33095,81 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("CHANNEL.S.CL || CHANNEL.S.LI")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given CHANNEL.S.CL) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CHANNEL.S.CL")) { NextTest(); return; } - err = TestReadTheGlobalAttributeFeatureMap_3(); + err = TestGivenChannelsclEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Given CHANNEL.S.LI) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CHANNEL.S.LI")) { + NextTest(); + return; + } + err = TestGivenChannelsliEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the optional attribute(ChannelList): AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Read the optional attribute(ChannelList): AttributeList\n"); if (ShouldSkip("CHANNEL.S.A0000")) { NextTest(); return; } - err = TestReadTheOptionalAttributeChannelListAttributeList_5(); + err = TestReadTheOptionalAttributeChannelListAttributeList_6(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Reading optional attribute(Lineup) in AttributeList\n"); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Reading optional attribute(Lineup) in AttributeList\n"); if (ShouldSkip("CHANNEL.S.A0001")) { NextTest(); return; } - err = TestReadingOptionalAttributeLineupInAttributeList_6(); + err = TestReadingOptionalAttributeLineupInAttributeList_7(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Read the optional attribute(CurrentChannel): AttributeList\n"); + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Read the optional attribute(CurrentChannel): AttributeList\n"); if (ShouldSkip("CHANNEL.S.A0002")) { NextTest(); return; } - err = TestReadTheOptionalAttributeCurrentChannelAttributeList_7(); + err = TestReadTheOptionalAttributeCurrentChannelAttributeList_8(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Read the optional command(ChangeChannel) in AcceptedCommandList\n"); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Read the optional command(ChangeChannel) in AcceptedCommandList\n"); if (ShouldSkip("CHANNEL.S.C00.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandChangeChannelInAcceptedCommandList_8(); + err = TestReadTheOptionalCommandChangeChannelInAcceptedCommandList_9(); break; - case 9: + case 10: ChipLogProgress( - chipTool, " ***** Test Step 9 : Read the optional command(ChangeChannelByNumber) in AcceptedCommandList\n"); + chipTool, " ***** Test Step 10 : Read the optional command(ChangeChannelByNumber) in AcceptedCommandList\n"); if (ShouldSkip("CHANNEL.S.C02.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandChangeChannelByNumberInAcceptedCommandList_9(); + err = TestReadTheOptionalCommandChangeChannelByNumberInAcceptedCommandList_10(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Read the optional command(SkipChannel) in AcceptedCommandList\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Read the optional command(SkipChannel) in AcceptedCommandList\n"); if (ShouldSkip("CHANNEL.S.C03.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandSkipChannelInAcceptedCommandList_10(); + err = TestReadTheOptionalCommandSkipChannelInAcceptedCommandList_11(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Read the global attribute: GeneratedCommandList\n"); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Read the global attribute: GeneratedCommandList\n"); if (ShouldSkip("CHANNEL.S.CL || CHANNEL.S.LI")) { NextTest(); return; } - err = TestReadTheGlobalAttributeGeneratedCommandList_11(); + err = TestReadTheGlobalAttributeGeneratedCommandList_12(); break; } @@ -32521,6 +33218,9 @@ class Test_TC_CHANNEL_1_6 : 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; } // Go on to the next test. @@ -32534,7 +33234,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 12; + const uint16_t mTestCount = 13; chip::Optional mNodeId; chip::Optional mCluster; @@ -32594,28 +33294,43 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + CHIP_ERROR TestGivenChannelsclEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + NSLog(@"Given CHANNEL.S.CL) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 3UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + CHIP_ERROR TestGivenChannelsliEnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given CHANNEL.S.LI) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_4() + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -32639,7 +33354,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeChannelListAttributeList_5() + CHIP_ERROR TestReadTheOptionalAttributeChannelListAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -32659,7 +33374,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadingOptionalAttributeLineupInAttributeList_6() + CHIP_ERROR TestReadingOptionalAttributeLineupInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -32679,7 +33394,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeCurrentChannelAttributeList_7() + CHIP_ERROR TestReadTheOptionalAttributeCurrentChannelAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -32699,7 +33414,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandChangeChannelInAcceptedCommandList_8() + CHIP_ERROR TestReadTheOptionalCommandChangeChannelInAcceptedCommandList_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -32719,7 +33434,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandChangeChannelByNumberInAcceptedCommandList_9() + CHIP_ERROR TestReadTheOptionalCommandChangeChannelByNumberInAcceptedCommandList_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -32739,7 +33454,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandSkipChannelInAcceptedCommandList_10() + CHIP_ERROR TestReadTheOptionalCommandSkipChannelInAcceptedCommandList_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -32759,7 +33474,7 @@ class Test_TC_CHANNEL_1_6 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_11() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterChannel * cluster = [[MTRBaseClusterChannel alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -32835,136 +33550,144 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("MEDIAPLAYBACK.S.AS || MEDIAPLAYBACK.S.VS")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.AS")) { NextTest(); return; } - err = TestReadTheGlobalAttributeFeatureMap_3(); + err = TestGivenMediaplaybacksasEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set\n"); + if (ShouldSkip("MEDIAPLAYBACK.S.VS")) { + NextTest(); + return; + } + err = TestGivenMediaplaybacksvsEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the optional attribute(StartTime) in AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Read the optional attribute(StartTime) in AttributeList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.A0001")) { NextTest(); return; } - err = TestReadTheOptionalAttributeStartTimeInAttributeList_5(); + err = TestReadTheOptionalAttributeStartTimeInAttributeList_6(); break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read the optional attribute(Duration) in AttributeList\n"); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Read the optional attribute(Duration) in AttributeList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.A0002")) { NextTest(); return; } - err = TestReadTheOptionalAttributeDurationInAttributeList_6(); + err = TestReadTheOptionalAttributeDurationInAttributeList_7(); break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Read the optional attribute(SampledPosition) in AttributeList\n"); + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Read the optional attribute(SampledPosition) in AttributeList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.A0003")) { NextTest(); return; } - err = TestReadTheOptionalAttributeSampledPositionInAttributeList_7(); + err = TestReadTheOptionalAttributeSampledPositionInAttributeList_8(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Read the optional attribute(PlaybackSpeed) in AttributeList\n"); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Read the optional attribute(PlaybackSpeed) in AttributeList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.A0004")) { NextTest(); return; } - err = TestReadTheOptionalAttributePlaybackSpeedInAttributeList_8(); + err = TestReadTheOptionalAttributePlaybackSpeedInAttributeList_9(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Read the optional attribute(SeekRangeEnd) in AttributeList\n"); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Read the optional attribute(SeekRangeEnd) in AttributeList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.A0005")) { NextTest(); return; } - err = TestReadTheOptionalAttributeSeekRangeEndInAttributeList_9(); + err = TestReadTheOptionalAttributeSeekRangeEndInAttributeList_10(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Read the optional attribute(SeekRangeStart) in AttributeList\n"); + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Read the optional attribute(SeekRangeStart) in AttributeList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.A0006")) { NextTest(); return; } - err = TestReadTheOptionalAttributeSeekRangeStartInAttributeList_10(); - break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_11(); + err = TestReadTheOptionalAttributeSeekRangeStartInAttributeList_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Read the optional command(StartOver) in AcceptedCommandList\n"); + ChipLogProgress(chipTool, " ***** Test Step 12 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_12(); + break; + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Read the optional command(StartOver) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C03.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandStartOverInAcceptedCommandList_12(); + err = TestReadTheOptionalCommandStartOverInAcceptedCommandList_13(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Read the optional command(Previous) in AcceptedCommandList\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Read the optional command(Previous) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C04.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandPreviousInAcceptedCommandList_13(); + err = TestReadTheOptionalCommandPreviousInAcceptedCommandList_14(); break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Read the optional command(Next) in AcceptedCommandList\n"); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Read the optional command(Next) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C05.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandNextInAcceptedCommandList_14(); + err = TestReadTheOptionalCommandNextInAcceptedCommandList_15(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Read the optional command(Rewind) in AcceptedCommandList\n"); + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : Read the optional command(Rewind) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C06.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandRewindInAcceptedCommandList_15(); + err = TestReadTheOptionalCommandRewindInAcceptedCommandList_16(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Read the optional command(FastForward) in AcceptedCommandList\n"); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Read the optional command(FastForward) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C07.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandFastForwardInAcceptedCommandList_16(); + err = TestReadTheOptionalCommandFastForwardInAcceptedCommandList_17(); break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Read the optional command(SkipForward) in AcceptedCommandList\n"); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Read the optional command(SkipForward) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C08.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandSkipForwardInAcceptedCommandList_17(); + err = TestReadTheOptionalCommandSkipForwardInAcceptedCommandList_18(); break; - case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Read the optional command(SkipBackward) in AcceptedCommandList\n"); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Read the optional command(SkipBackward) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C09.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandSkipBackwardInAcceptedCommandList_18(); + err = TestReadTheOptionalCommandSkipBackwardInAcceptedCommandList_19(); break; - case 19: - ChipLogProgress(chipTool, " ***** Test Step 19 : Read the optional command(Seek) in AcceptedCommandList\n"); + case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : Read the optional command(Seek) in AcceptedCommandList\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C0B.Rsp")) { NextTest(); return; } - err = TestReadTheOptionalCommandSeekInAcceptedCommandList_19(); + err = TestReadTheOptionalCommandSeekInAcceptedCommandList_20(); break; - case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_20(); + case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_21(); break; } @@ -33040,6 +33763,9 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { 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. @@ -33053,7 +33779,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 21; + const uint16_t mTestCount = 22; chip::Optional mNodeId; chip::Optional mCluster; @@ -33117,7 +33843,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + CHIP_ERROR TestGivenMediaplaybacksasEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33126,21 +33852,38 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + NSLog(@"Given MEDIAPLAYBACK.S.AS ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 3UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenMediaplaybacksvsEnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given MEDIAPLAYBACK.S.VS ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_4() + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33167,7 +33910,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeStartTimeInAttributeList_5() + CHIP_ERROR TestReadTheOptionalAttributeStartTimeInAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33189,7 +33932,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeDurationInAttributeList_6() + CHIP_ERROR TestReadTheOptionalAttributeDurationInAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33211,7 +33954,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeSampledPositionInAttributeList_7() + CHIP_ERROR TestReadTheOptionalAttributeSampledPositionInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33233,7 +33976,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributePlaybackSpeedInAttributeList_8() + CHIP_ERROR TestReadTheOptionalAttributePlaybackSpeedInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33255,7 +33998,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeSeekRangeEndInAttributeList_9() + CHIP_ERROR TestReadTheOptionalAttributeSeekRangeEndInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33277,7 +34020,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeSeekRangeStartInAttributeList_10() + CHIP_ERROR TestReadTheOptionalAttributeSeekRangeStartInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33299,7 +34042,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_11() + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33323,7 +34066,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandStartOverInAcceptedCommandList_12() + CHIP_ERROR TestReadTheOptionalCommandStartOverInAcceptedCommandList_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33345,7 +34088,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandPreviousInAcceptedCommandList_13() + CHIP_ERROR TestReadTheOptionalCommandPreviousInAcceptedCommandList_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33367,7 +34110,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandNextInAcceptedCommandList_14() + CHIP_ERROR TestReadTheOptionalCommandNextInAcceptedCommandList_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33389,7 +34132,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandRewindInAcceptedCommandList_15() + CHIP_ERROR TestReadTheOptionalCommandRewindInAcceptedCommandList_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33411,7 +34154,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandFastForwardInAcceptedCommandList_16() + CHIP_ERROR TestReadTheOptionalCommandFastForwardInAcceptedCommandList_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33433,7 +34176,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandSkipForwardInAcceptedCommandList_17() + CHIP_ERROR TestReadTheOptionalCommandSkipForwardInAcceptedCommandList_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33455,7 +34198,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandSkipBackwardInAcceptedCommandList_18() + CHIP_ERROR TestReadTheOptionalCommandSkipBackwardInAcceptedCommandList_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33477,7 +34220,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandSeekInAcceptedCommandList_19() + CHIP_ERROR TestReadTheOptionalCommandSeekInAcceptedCommandList_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33499,7 +34242,7 @@ class Test_TC_MEDIAPLAYBACK_1_7 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_20() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_21() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterMediaPlayback * cluster = [[MTRBaseClusterMediaPlayback alloc] initWithDevice:device @@ -33582,7 +34325,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: GeneratedCommandList\n"); - if (ShouldSkip("MEDIAINPUT.S.NU")) { + if (ShouldSkip("AUDIOOUTPUT.S.NU")) { NextTest(); return; } @@ -33590,7 +34333,7 @@ class Test_TC_AUDIOOUTPUT_1_8 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: GeneratedCommandList\n"); - if (ShouldSkip(" !MEDIAINPUT.S.NU ")) { + if (ShouldSkip(" !AUDIOOUTPUT.S.NU ")) { NextTest(); return; } @@ -34552,55 +35295,65 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("CONTENTLAUNCHER.S.CS || CONTENTLAUNCHER.S.UP")) { + ChipLogProgress( + chipTool, " ***** Test Step 3 : Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CONTENTLAUNCHER.S.CS")) { NextTest(); return; } - err = TestReadTheGlobalAttributeFeatureMap_3(); + err = TestGivenContentlauncherscsEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_4(); + ChipLogProgress( + chipTool, " ***** Test Step 4 : Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set\n"); + if (ShouldSkip("CONTENTLAUNCHER.S.UP")) { + NextTest(); + return; + } + err = TestGivenContentlaunchersupEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the optional attribute(AcceptHeader): AttributeList\n"); + ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Read the optional attribute(AcceptHeader): AttributeList\n"); if (ShouldSkip("CONTENTLAUNCHER.S.A0000")) { NextTest(); return; } - err = TestReadTheOptionalAttributeAcceptHeaderAttributeList_5(); + err = TestReadTheOptionalAttributeAcceptHeaderAttributeList_6(); break; - case 6: + case 7: ChipLogProgress( - chipTool, " ***** Test Step 6 : Read the optional attribute(SupportedStreamingProtocols): AttributeList\n"); + chipTool, " ***** Test Step 7 : Read the optional attribute(SupportedStreamingProtocols): AttributeList\n"); if (ShouldSkip("CONTENTLAUNCHER.S.A0001")) { NextTest(); return; } - err = TestReadTheOptionalAttributeSupportedStreamingProtocolsAttributeList_6(); + err = TestReadTheOptionalAttributeSupportedStreamingProtocolsAttributeList_7(); break; - case 7: + case 8: ChipLogProgress( - chipTool, " ***** Test Step 7 : Read the optional command(LaunchContent) in AcceptedCommandList attribute\n"); + chipTool, " ***** Test Step 8 : Read the optional command(LaunchContent) in AcceptedCommandList attribute\n"); if (ShouldSkip("CONTENTLAUNCHER.C.C0000")) { NextTest(); return; } - err = TestReadTheOptionalCommandLaunchContentInAcceptedCommandListAttribute_7(); + err = TestReadTheOptionalCommandLaunchContentInAcceptedCommandListAttribute_8(); break; - case 8: + case 9: ChipLogProgress( - chipTool, " ***** Test Step 8 : Read the optional command(LaunchURL) in AcceptedCommandList attribute\n"); + chipTool, " ***** Test Step 9 : Read the optional command(LaunchURL) in AcceptedCommandList attribute\n"); if (ShouldSkip("CONTENTLAUNCHER.C.C0001")) { NextTest(); return; } - err = TestReadTheOptionalCommandLaunchURLInAcceptedCommandListAttribute_8(); + err = TestReadTheOptionalCommandLaunchURLInAcceptedCommandListAttribute_9(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_9(); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_10(); break; } @@ -34643,6 +35396,9 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { 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. @@ -34656,7 +35412,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 10; + const uint16_t mTestCount = 11; chip::Optional mNodeId; chip::Optional mCluster; @@ -34720,7 +35476,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + CHIP_ERROR TestGivenContentlauncherscsEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterContentLauncher * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device @@ -34729,21 +35485,38 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + NSLog(@"Given CONTENTLAUNCHER.S.CS) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 3UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenContentlaunchersupEnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterContentLauncher * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given CONTENTLAUNCHER.S.UP ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_4() + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterContentLauncher * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device @@ -34769,7 +35542,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeAcceptHeaderAttributeList_5() + CHIP_ERROR TestReadTheOptionalAttributeAcceptHeaderAttributeList_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterContentLauncher * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device @@ -34791,7 +35564,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalAttributeSupportedStreamingProtocolsAttributeList_6() + CHIP_ERROR TestReadTheOptionalAttributeSupportedStreamingProtocolsAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterContentLauncher * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device @@ -34813,7 +35586,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandLaunchContentInAcceptedCommandListAttribute_7() + CHIP_ERROR TestReadTheOptionalCommandLaunchContentInAcceptedCommandListAttribute_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterContentLauncher * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device @@ -34835,7 +35608,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheOptionalCommandLaunchURLInAcceptedCommandListAttribute_8() + CHIP_ERROR TestReadTheOptionalCommandLaunchURLInAcceptedCommandListAttribute_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterContentLauncher * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device @@ -34857,7 +35630,7 @@ class Test_TC_CONTENTLAUNCHER_1_11 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_9() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterContentLauncher * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device @@ -41900,19 +42673,19 @@ class Test_TC_OO_1_1 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("OO.S.F00")) { + if (ShouldSkip(" !OO.S.F00 ")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !OO.S.F00 ")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given OO.S.F00(LT) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("OO.S.F00")) { NextTest(); return; } - err = TestReadTheGlobalAttributeFeatureMap_3(); + err = TestGivenOosf00ltEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); @@ -42054,22 +42827,17 @@ class Test_TC_OO_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + CHIP_ERROR TestGivenOosf00ltEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterOnOff * cluster = [[MTRBaseClusterOnOff alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + NSLog(@"Given OO.S.F00(LT) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); - } - VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; @@ -43960,54 +44728,90 @@ class Test_TC_PS_1_1 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); + if (ShouldSkip(" !PS.S.F00 && !PS.S.F01 && !PS.S.F02 && !PS.S.F03 ")) { + NextTest(); + return; + } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_3(); + ChipLogProgress(chipTool, " ***** Test Step 3 : Given PS.S.F00(WIRED) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("PS.S.F00")) { + NextTest(); + return; + } + err = TestGivenPssf00wiredEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Given PS.S.F01(BAT) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("PS.S.F01")) { + NextTest(); + return; + } + err = TestGivenPssf01batEnsureFeaturemapHasTheCorrectBitSet_4(); + break; + case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Given PS.S.F02(RECHG) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("PS.S.F02")) { + NextTest(); + return; + } + err = TestGivenPssf02rechgEnsureFeaturemapHasTheCorrectBitSet_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Given PS.S.F03(REPLC) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("PS.S.F03")) { + NextTest(); + return; + } + err = TestGivenPssf03replcEnsureFeaturemapHasTheCorrectBitSet_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_7(); + break; + case 8: ChipLogProgress( - chipTool, " ***** Test Step 4 : Read the Feature dependent(PS.S.F00-WIRED) attribute in AttributeList\n"); + chipTool, " ***** Test Step 8 : Read the Feature dependent(PS.S.F00-WIRED) attribute in AttributeList\n"); if (ShouldSkip("PS.S.F00")) { NextTest(); return; } - err = TestReadTheFeatureDependentPSSF00WiredAttributeInAttributeList_4(); + err = TestReadTheFeatureDependentPSSF00WiredAttributeInAttributeList_8(); break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the Feature dependent(PS.S.F01-BAT) attribute in AttributeList\n"); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Read the Feature dependent(PS.S.F01-BAT) attribute in AttributeList\n"); if (ShouldSkip("PS.S.F01")) { NextTest(); return; } - err = TestReadTheFeatureDependentPSSF01BatAttributeInAttributeList_5(); + err = TestReadTheFeatureDependentPSSF01BatAttributeInAttributeList_9(); break; - case 6: + case 10: ChipLogProgress( - chipTool, " ***** Test Step 6 : Read the Feature dependent(PS.S.F02-RECHG) attribute in AttributeList\n"); + chipTool, " ***** Test Step 10 : Read the Feature dependent(PS.S.F02-RECHG) attribute in AttributeList\n"); if (ShouldSkip("PS.S.F02")) { NextTest(); return; } - err = TestReadTheFeatureDependentPSSF02RechgAttributeInAttributeList_6(); + err = TestReadTheFeatureDependentPSSF02RechgAttributeInAttributeList_10(); break; - case 7: + case 11: ChipLogProgress( - chipTool, " ***** Test Step 7 : Read the Feature dependent(PS.S.F03-REPLC) attribute in AttributeList\n"); + chipTool, " ***** Test Step 11 : Read the Feature dependent(PS.S.F03-REPLC) attribute in AttributeList\n"); if (ShouldSkip("PS.S.F03")) { NextTest(); return; } - err = TestReadTheFeatureDependentPSSF03ReplcAttributeInAttributeList_7(); + err = TestReadTheFeatureDependentPSSF03ReplcAttributeInAttributeList_11(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_8(); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_12(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_9(); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_13(); break; } @@ -44050,6 +44854,18 @@ class Test_TC_PS_1_1 : public TestCommandBridge { case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + 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. @@ -44063,7 +44879,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 10; + const uint16_t mTestCount = 14; chip::Optional mNodeId; chip::Optional mCluster; @@ -44115,17 +44931,99 @@ class Test_TC_PS_1_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); + } + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 15UL)); + NextTest(); + }]; + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenPssf00wiredEnsureFeaturemapHasTheCorrectBitSet_3() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given PS.S.F00(WIRED) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_3() + CHIP_ERROR TestGivenPssf01batEnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given PS.S.F01(BAT) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenPssf02rechgEnsureFeaturemapHasTheCorrectBitSet_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given PS.S.F02(RECHG) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenPssf03replcEnsureFeaturemapHasTheCorrectBitSet_6() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given PS.S.F03(REPLC) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device @@ -44154,7 +45052,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentPSSF00WiredAttributeInAttributeList_4() + CHIP_ERROR TestReadTheFeatureDependentPSSF00WiredAttributeInAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device @@ -44176,7 +45074,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentPSSF01BatAttributeInAttributeList_5() + CHIP_ERROR TestReadTheFeatureDependentPSSF01BatAttributeInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device @@ -44200,7 +45098,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentPSSF02RechgAttributeInAttributeList_6() + CHIP_ERROR TestReadTheFeatureDependentPSSF02RechgAttributeInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device @@ -44223,7 +45121,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentPSSF03ReplcAttributeInAttributeList_7() + CHIP_ERROR TestReadTheFeatureDependentPSSF03ReplcAttributeInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device @@ -44246,7 +45144,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_8() + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device @@ -44271,7 +45169,7 @@ class Test_TC_PS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_9() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device @@ -45491,19 +46389,19 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("PRS.S.F00")) { + if (ShouldSkip(" !PRS.S.F00 ")) { NextTest(); return; } err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip(" !PRS.S.F00 ")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given PRS.S.F00(EXT) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("PRS.S.F00")) { NextTest(); return; } - err = TestReadTheGlobalAttributeFeatureMap_3(); + err = TestGivenPrssf00extEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global mandatory attribute: AttributeList\n"); @@ -45682,7 +46580,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { { id actualValue = value; - VerifyOrReturn(CheckValue("FeatureMap", actualValue, 1UL)); + VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); } VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); @@ -45692,7 +46590,7 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + CHIP_ERROR TestGivenPrssf00extEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterPressureMeasurement * cluster = [[MTRBaseClusterPressureMeasurement alloc] initWithDevice:device @@ -45701,15 +46599,10 @@ class Test_TC_PRS_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + NSLog(@"Given PRS.S.F00(EXT) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); - } - VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; @@ -50480,50 +51373,81 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); break; case 1: - ChipLogProgress( - chipTool, " ***** Test Step 1 : Read FeatureMap attribute and Check values of flags in this FeatureMap\n"); - if (ShouldSkip("!SWTCH.S.F00 && SWTCH.S.F01 && !SWTCH.S.F02 && !SWTCH.S.F03 && !SWTCH.S.F04")) { - NextTest(); - return; - } - err = TestReadFeatureMapAttributeAndCheckValuesOfFlagsInThisFeatureMap_1(); + ChipLogProgress(chipTool, " ***** Test Step 1 : Read the global attribute: ClusterRevision\n"); + err = TestReadTheGlobalAttributeClusterRevision_1(); break; case 2: ChipLogProgress( chipTool, " ***** Test Step 2 : Read FeatureMap attribute and Check values of flags in this FeatureMap\n"); - if (ShouldSkip("(SWTCH.S.F00 || SWTCH.S.F01 || SWTCH.S.F02 || SWTCH.S.F03 || SWTCH.S.F04)")) { + if (ShouldSkip("!SWTCH.S.F00 && !SWTCH.S.F01 && !SWTCH.S.F02 && !SWTCH.S.F03 && !SWTCH.S.F04")) { NextTest(); return; } err = TestReadFeatureMapAttributeAndCheckValuesOfFlagsInThisFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : read the global attribute: ClusterRevision\n"); - err = TestReadTheGlobalAttributeClusterRevision_3(); + ChipLogProgress(chipTool, " ***** Test Step 3 : Given SWTCH.S.F00(LS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("SWTCH.S.F00")) { + NextTest(); + return; + } + err = TestGivenSwtchsf00lsEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); - if (ShouldSkip("SWTCH.S.F04")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Given SWTCH.S.F01(MS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("SWTCH.S.F01")) { NextTest(); return; } - err = TestReadTheGlobalAttributeAttributeList_4(); + err = TestGivenSwtchsf01msEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AttributeList\n"); - if (ShouldSkip("!SWTCH.S.F04")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : Given SWTCH.S.F02(MSR) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("SWTCH.S.F02")) { NextTest(); return; } - err = TestReadTheGlobalAttributeAttributeList_5(); + err = TestGivenSwtchsf02msrEnsureFeaturemapHasTheCorrectBitSet_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Given SWTCH.S.F03(MSL) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("SWTCH.S.F03")) { + NextTest(); + return; + } + err = TestGivenSwtchsf03mslEnsureFeaturemapHasTheCorrectBitSet_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : Given SWTCH.S.F04(MSM) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("SWTCH.S.F04")) { + NextTest(); + return; + } + err = TestGivenSwtchsf04msmEnsureFeaturemapHasTheCorrectBitSet_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Read the global attribute: AttributeList\n"); + if (ShouldSkip("SWTCH.S.F04")) { + NextTest(); + return; + } + err = TestReadTheGlobalAttributeAttributeList_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Read the global attribute: AttributeList\n"); + if (ShouldSkip("!SWTCH.S.F04")) { + NextTest(); + return; + } + err = TestReadTheGlobalAttributeAttributeList_9(); + break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_10(); + break; + case 11: + ChipLogProgress(chipTool, " ***** Test Step 11 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_11(); break; } @@ -50560,6 +51484,18 @@ class Test_TC_SWTCH_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; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -50573,7 +51509,7 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 8; + const uint16_t mTestCount = 12; chip::Optional mNodeId; chip::Optional mCluster; @@ -50587,7 +51523,30 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { return WaitForCommissionee("alpha", value); } - CHIP_ERROR TestReadFeatureMapAttributeAndCheckValuesOfFlagsInThisFeatureMap_1() + CHIP_ERROR TestReadTheGlobalAttributeClusterRevision_1() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeClusterRevisionWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the global attribute: ClusterRevision Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("ClusterRevision", actualValue, 1U)); + } + + VerifyOrReturn(CheckConstraintType("clusterRevision", "int16u", "int16u")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadFeatureMapAttributeAndCheckValuesOfFlagsInThisFeatureMap_2() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -50610,50 +51569,97 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadFeatureMapAttributeAndCheckValuesOfFlagsInThisFeatureMap_2() + CHIP_ERROR TestGivenSwtchsf00lsEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read FeatureMap attribute and Check values of flags in this FeatureMap Error: %@", err); + NSLog(@"Given SWTCH.S.F00(LS) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 31UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenSwtchsf01msEnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given SWTCH.S.F01(MS) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeClusterRevision_3() + CHIP_ERROR TestGivenSwtchsf02msrEnsureFeaturemapHasTheCorrectBitSet_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeClusterRevisionWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"read the global attribute: ClusterRevision Error: %@", err); + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given SWTCH.S.F02(MSR) ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("ClusterRevision", actualValue, 1U)); - } + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + CHIP_ERROR TestGivenSwtchsf03mslEnsureFeaturemapHasTheCorrectBitSet_6() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given SWTCH.S.F03(MSL) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_4() + CHIP_ERROR TestGivenSwtchsf04msmEnsureFeaturemapHasTheCorrectBitSet_7() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given SWTCH.S.F04(MSM) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -50680,7 +51686,7 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_5() + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -50706,7 +51712,7 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_6() + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -50724,7 +51730,7 @@ class Test_TC_SWTCH_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_7() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterSwitch * cluster = [[MTRBaseClusterSwitch alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -51303,117 +52309,157 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { err = TestReadTheGlobalAttributeFeatureMap_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("TSTAT.S.F00 || TSTAT.S.F01 || TSTAT.S.F02 || TSTAT.S.F03 || TSTAT.S.F04 || TSTAT.S.F05")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given TSTAT.S.F00(HEAT ensure featuremap has the correct bit set\n"); + if (ShouldSkip("TSTAT.S.F00")) { NextTest(); return; } - err = TestReadTheGlobalAttributeFeatureMap_3(); + err = TestGivenTstatsf00heatEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Given TSTAT.S.F01(COOL) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("TSTAT.S.F01")) { + NextTest(); + return; + } + err = TestGivenTstatsf01coolEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Given TSTAT.S.F02(OCC) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("TSTAT.S.F02")) { + NextTest(); + return; + } + err = TestGivenTstatsf02occEnsureFeaturemapHasTheCorrectBitSet_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Given TSTAT.S.F03(SCH) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("TSTAT.S.F03")) { + NextTest(); + return; + } + err = TestGivenTstatsf03schEnsureFeaturemapHasTheCorrectBitSet_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Given TSTAT.S.F04(SB) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("TSTAT.S.F04")) { + NextTest(); + return; + } + err = TestGivenTstatsf04sbEnsureFeaturemapHasTheCorrectBitSet_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : Given TSTAT.S.F05(AUTO) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("TSTAT.S.F05")) { + NextTest(); + return; + } + err = TestGivenTstatsf05autoEnsureFeaturemapHasTheCorrectBitSet_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_9(); + break; + case 10: ChipLogProgress( - chipTool, " ***** Test Step 5 : Read the Feature dependent(TSTAT.S.F00(HEAT)) attribute in AttributeList\n"); + chipTool, " ***** Test Step 10 : Read the Feature dependent(TSTAT.S.F00(HEAT)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F00")) { NextTest(); return; } - err = TestReadTheFeatureDependentTSTATSF00HEATAttributeInAttributeList_5(); + err = TestReadTheFeatureDependentTSTATSF00HEATAttributeInAttributeList_10(); break; - case 6: + case 11: ChipLogProgress( - chipTool, " ***** Test Step 6 : Read the Feature dependent(TSTAT.S.F01(COOL)) attribute in AttributeList\n"); + chipTool, " ***** Test Step 11 : Read the Feature dependent(TSTAT.S.F01(COOL)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F01")) { NextTest(); return; } - err = TestReadTheFeatureDependentTSTATSF01COOLAttributeInAttributeList_6(); + err = TestReadTheFeatureDependentTSTATSF01COOLAttributeInAttributeList_11(); break; - case 7: + case 12: ChipLogProgress( - chipTool, " ***** Test Step 7 : Read the Feature dependent(TSTAT.S.F02(OCC)) attribute in AttributeList\n"); + chipTool, " ***** Test Step 12 : Read the Feature dependent(TSTAT.S.F02(OCC)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F02")) { NextTest(); return; } - err = TestReadTheFeatureDependentTSTATSF02OCCAttributeInAttributeList_7(); + err = TestReadTheFeatureDependentTSTATSF02OCCAttributeInAttributeList_12(); break; - case 8: + case 13: ChipLogProgress(chipTool, - " ***** Test Step 8 : Read the Feature dependent(TSTAT.S.F00(HEAT) & TSTAT.S.F02(OCC)) attribute in " + " ***** Test Step 13 : 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 = TestReadTheFeatureDependentTSTATSF00HEATTstatsf02occAttributeInAttributeList_8(); + err = TestReadTheFeatureDependentTSTATSF00HEATTstatsf02occAttributeInAttributeList_13(); break; - case 9: + case 14: ChipLogProgress(chipTool, - " ***** Test Step 9 : Read the Feature dependent(TSTAT.S.F01(COOL) & TSTAT.S.F02(OCC)) attribute in " + " ***** Test Step 14 : 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 = TestReadTheFeatureDependentTSTATSF01COOLTstatsf02occAttributeInAttributeList_9(); + err = TestReadTheFeatureDependentTSTATSF01COOLTstatsf02occAttributeInAttributeList_14(); break; - case 10: + case 15: ChipLogProgress( - chipTool, " ***** Test Step 10 : Read the Feature dependent(TSTAT.S.F05(AUTO)) attribute in AttributeList\n"); + chipTool, " ***** Test Step 15 : Read the Feature dependent(TSTAT.S.F05(AUTO)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F05")) { NextTest(); return; } - err = TestReadTheFeatureDependentTSTATSF05AUTOAttributeInAttributeList_10(); + err = TestReadTheFeatureDependentTSTATSF05AUTOAttributeInAttributeList_15(); break; - case 11: + case 16: ChipLogProgress( - chipTool, " ***** Test Step 11 : Read the Feature dependent(TSTAT.S.F03(SCH)) attribute in AttributeList\n"); + chipTool, " ***** Test Step 16 : Read the Feature dependent(TSTAT.S.F03(SCH)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F03")) { NextTest(); return; } - err = TestReadTheFeatureDependentTSTATSF03SCHAttributeInAttributeList_11(); + err = TestReadTheFeatureDependentTSTATSF03SCHAttributeInAttributeList_16(); break; - case 12: + case 17: ChipLogProgress( - chipTool, " ***** Test Step 12 : Read the Feature dependent(TSTAT.S.F04(SB)) attribute in AttributeList\n"); + chipTool, " ***** Test Step 17 : Read the Feature dependent(TSTAT.S.F04(SB)) attribute in AttributeList\n"); if (ShouldSkip("TSTAT.S.F04")) { NextTest(); return; } - err = TestReadTheFeatureDependentTSTATSF04SBAttributeInAttributeList_12(); + err = TestReadTheFeatureDependentTSTATSF04SBAttributeInAttributeList_17(); break; - case 13: + case 18: ChipLogProgress(chipTool, - " ***** Test Step 13 : Read the Feature dependent(TSTAT.S.F04(SB) & TSTAT.S.F02(OCC)) attribute in " + " ***** Test Step 18 : 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 = TestReadTheFeatureDependentTSTATSF04SBTstatsf02occAttributeInAttributeList_13(); + err = TestReadTheFeatureDependentTSTATSF04SBTstatsf02occAttributeInAttributeList_18(); break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_14(); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_19(); break; - case 15: + case 20: ChipLogProgress( - chipTool, " ***** Test Step 15 : Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList\n"); + chipTool, " ***** Test Step 20 : Read Feature dependent(TSTAT.S.F03(SCH)) commands in AcceptedCommandList\n"); if (ShouldSkip("TSTAT.S.F03")) { NextTest(); return; } - err = TestReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_15(); + err = TestReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_20(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_16(); + case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_21(); break; } @@ -51477,6 +52523,21 @@ class Test_TC_TSTAT_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; + 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. @@ -51490,7 +52551,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 17; + const uint16_t mTestCount = 22; chip::Optional mNodeId; chip::Optional mCluster; @@ -51554,7 +52615,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_3() + CHIP_ERROR TestGivenTstatsf00heatEnsureFeaturemapHasTheCorrectBitSet_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51563,21 +52624,118 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: FeatureMap Error: %@", err); + NSLog(@"Given TSTAT.S.F00(HEAT ensure featuremap has the correct bit set Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 1UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 63UL)); + NextTest(); + }]; + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenTstatsf01coolEnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given TSTAT.S.F01(COOL) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_4() + CHIP_ERROR TestGivenTstatsf02occEnsureFeaturemapHasTheCorrectBitSet_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given TSTAT.S.F02(OCC) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenTstatsf03schEnsureFeaturemapHasTheCorrectBitSet_6() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given TSTAT.S.F03(SCH) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenTstatsf04sbEnsureFeaturemapHasTheCorrectBitSet_7() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given TSTAT.S.F04(SB) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenTstatsf05autoEnsureFeaturemapHasTheCorrectBitSet_8() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given TSTAT.S.F05(AUTO) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51606,7 +52764,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentTSTATSF00HEATAttributeInAttributeList_5() + CHIP_ERROR TestReadTheFeatureDependentTSTATSF00HEATAttributeInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51628,7 +52786,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentTSTATSF01COOLAttributeInAttributeList_6() + CHIP_ERROR TestReadTheFeatureDependentTSTATSF01COOLAttributeInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51650,7 +52808,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentTSTATSF02OCCAttributeInAttributeList_7() + CHIP_ERROR TestReadTheFeatureDependentTSTATSF02OCCAttributeInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51672,7 +52830,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentTSTATSF00HEATTstatsf02occAttributeInAttributeList_8() + CHIP_ERROR TestReadTheFeatureDependentTSTATSF00HEATTstatsf02occAttributeInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51694,7 +52852,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentTSTATSF01COOLTstatsf02occAttributeInAttributeList_9() + CHIP_ERROR TestReadTheFeatureDependentTSTATSF01COOLTstatsf02occAttributeInAttributeList_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51716,7 +52874,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentTSTATSF05AUTOAttributeInAttributeList_10() + CHIP_ERROR TestReadTheFeatureDependentTSTATSF05AUTOAttributeInAttributeList_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51740,7 +52898,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentTSTATSF03SCHAttributeInAttributeList_11() + CHIP_ERROR TestReadTheFeatureDependentTSTATSF03SCHAttributeInAttributeList_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51764,7 +52922,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentTSTATSF04SBAttributeInAttributeList_12() + CHIP_ERROR TestReadTheFeatureDependentTSTATSF04SBAttributeInAttributeList_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51788,7 +52946,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentTSTATSF04SBTstatsf02occAttributeInAttributeList_13() + CHIP_ERROR TestReadTheFeatureDependentTSTATSF04SBTstatsf02occAttributeInAttributeList_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51812,7 +52970,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_14() + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51834,7 +52992,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_15() + CHIP_ERROR TestReadFeatureDependentTSTATSF03SCHCommandsInAcceptedCommandList_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -51859,7 +53017,7 @@ class Test_TC_TSTAT_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_16() + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_21() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThermostat * cluster = [[MTRBaseClusterThermostat alloc] initWithDevice:device @@ -59108,19 +60266,59 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads the FeatureMap from DUT\n"); + if (ShouldSkip(" !DGTHREAD.S.F00 && !DGTHREAD.S.F00 && !DGTHREAD.S.F00 && !DGTHREAD.S.F00 ")) { + NextTest(); + return; + } err = TestThReadsTheFeatureMapFromDut_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads AttributeList from DUT\n"); - err = TestThReadsAttributeListFromDut_3(); + ChipLogProgress( + chipTool, " ***** Test Step 3 : Given DGTHREAD.S.F00(PKTCNT) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DGETH.S.F00")) { + NextTest(); + return; + } + err = TestGivenDgthreadsf00pktcntEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads AcceptedCommandList from DUT\n"); - err = TestThReadsAcceptedCommandListFromDut_4(); + ChipLogProgress( + chipTool, " ***** Test Step 4 : Given DGTHREAD.S.F01(ERRCNT) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DGETH.S.F01")) { + NextTest(); + return; + } + err = TestGivenDgthreadsf01errcntEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads GeneratedCommandList from DUT\n"); - err = TestThReadsGeneratedCommandListFromDut_5(); + ChipLogProgress( + chipTool, " ***** Test Step 5 : Given DGTHREAD.S.F02(MLECNT) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DGETH.S.F00")) { + NextTest(); + return; + } + err = TestGivenDgthreadsf02mlecntEnsureFeaturemapHasTheCorrectBitSet_5(); + break; + case 6: + ChipLogProgress( + chipTool, " ***** Test Step 6 : Given DGTHREAD.S.F03(MACCNT) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("DGETH.S.F01")) { + NextTest(); + return; + } + err = TestGivenDgthreadsf03maccntEnsureFeaturemapHasTheCorrectBitSet_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : TH reads AttributeList from DUT\n"); + err = TestThReadsAttributeListFromDut_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads AcceptedCommandList from DUT\n"); + err = TestThReadsAcceptedCommandListFromDut_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : TH reads GeneratedCommandList from DUT\n"); + err = TestThReadsGeneratedCommandListFromDut_9(); break; } @@ -59151,6 +60349,18 @@ class Test_TC_DGTHREAD_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; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -59164,7 +60374,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 6; + const uint16_t mTestCount = 10; chip::Optional mNodeId; chip::Optional mCluster; @@ -59214,17 +60424,95 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); + } + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 31UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDgthreadsf00pktcntEnsureFeaturemapHasTheCorrectBitSet_3() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterThreadNetworkDiagnostics * cluster = + [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device endpoint:0 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DGTHREAD.S.F00(PKTCNT) ensure featuremap has the correct bit set Error: %@", err); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsAttributeListFromDut_3() + CHIP_ERROR TestGivenDgthreadsf01errcntEnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterThreadNetworkDiagnostics * cluster = + [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device endpoint:0 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DGTHREAD.S.F01(ERRCNT) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDgthreadsf02mlecntEnsureFeaturemapHasTheCorrectBitSet_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterThreadNetworkDiagnostics * cluster = + [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device endpoint:0 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DGTHREAD.S.F02(MLECNT) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenDgthreadsf03maccntEnsureFeaturemapHasTheCorrectBitSet_6() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterThreadNetworkDiagnostics * cluster = + [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device endpoint:0 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given DGTHREAD.S.F03(MACCNT) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsAttributeListFromDut_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThreadNetworkDiagnostics * cluster = @@ -59266,7 +60554,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsAcceptedCommandListFromDut_4() + CHIP_ERROR TestThReadsAcceptedCommandListFromDut_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThreadNetworkDiagnostics * cluster = @@ -59287,7 +60575,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsGeneratedCommandListFromDut_5() + CHIP_ERROR TestThReadsGeneratedCommandListFromDut_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterThreadNetworkDiagnostics * cluster = @@ -61592,108 +62880,148 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads from the DUT the (0xFFFC) FeatureMap attribute\n"); - if (ShouldSkip("WNCV.S.Afffc")) { + if (ShouldSkip(" WNCV.S.Afffc && !WNCV.S.F00 && !WNCV.S.F01 && !WNCV.S.F02 && !WNCV.S.F03 && !WNCV.S.F04 ")) { NextTest(); return; } err = TestThReadsFromTheDutThe0xFFFCFeatureMapAttribute_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads from the DUT the (0xFFFB) AttributeList attribute\n"); - if (ShouldSkip("WNCV.S.Afffb")) { + ChipLogProgress(chipTool, " ***** Test Step 3 : Given WNCV.S.F00(LF) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("WNCV.S.F00")) { NextTest(); return; } - err = TestThReadsFromTheDutThe0xFFFBAttributeListAttribute_3(); + err = TestGivenWncvsf00lfEnsureFeaturemapHasTheCorrectBitSet_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads optional attribute(SafetyStatus) in AttributeList\n"); - if (ShouldSkip("WNCV.S.Afffb && WNCV.S.A001a")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : Given WNCV.S.F01(TL) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("WNCV.S.F01")) { NextTest(); return; } - err = TestThReadsOptionalAttributeSafetyStatusInAttributeList_4(); + err = TestGivenWncvsf01tlEnsureFeaturemapHasTheCorrectBitSet_4(); break; case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Given WNCV.S.F02(PA_LF) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("WNCV.S.F02")) { + NextTest(); + return; + } + err = TestGivenWncvsf02paLfEnsureFeaturemapHasTheCorrectBitSet_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Given WNCV.S.F03(ABS) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("WNCV.S.F03")) { + NextTest(); + return; + } + err = TestGivenWncvsf03absEnsureFeaturemapHasTheCorrectBitSet_6(); + break; + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : Given WNCV.S.F04(PA_TL) ensure featuremap has the correct bit set\n"); + if (ShouldSkip("WNCV.S.F04")) { + NextTest(); + return; + } + err = TestGivenWncvsf04paTlEnsureFeaturemapHasTheCorrectBitSet_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads from the DUT the (0xFFFB) AttributeList attribute\n"); + if (ShouldSkip("WNCV.S.Afffb")) { + NextTest(); + return; + } + err = TestThReadsFromTheDutThe0xFFFBAttributeListAttribute_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : TH reads optional attribute(SafetyStatus) in AttributeList\n"); + if (ShouldSkip("WNCV.S.Afffb && WNCV.S.A001a")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeSafetyStatusInAttributeList_9(); + break; + case 10: ChipLogProgress(chipTool, - " ***** Test Step 5 : Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 & WNCV.S.F03) attribute in " + " ***** Test Step 10 : 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 && WNCV.S.Afffb")) { NextTest(); return; } - err = TestReadTheFeatureDependentWNCVSF00Wncvsf02Wncvsf03AttributeInAttributeList_5(); + err = TestReadTheFeatureDependentWNCVSF00Wncvsf02Wncvsf03AttributeInAttributeList_10(); break; - case 6: - ChipLogProgress( - chipTool, " ***** Test Step 6 : Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 ) attribute in AttributeList\n"); + case 11: + ChipLogProgress(chipTool, + " ***** Test Step 11 : Read the Feature dependent(WNCV.S.F00 & WNCV.S.F02 ) attribute in AttributeList\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.Afffb")) { NextTest(); return; } - err = TestReadTheFeatureDependentWNCVSF00Wncvsf02AttributeInAttributeList_6(); + err = TestReadTheFeatureDependentWNCVSF00Wncvsf02AttributeInAttributeList_11(); break; - case 7: + case 12: ChipLogProgress(chipTool, - " ***** Test Step 7 : Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 & WNCV.S.F03) attribute in " + " ***** Test Step 12 : 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 && WNCV.S.Afffb")) { NextTest(); return; } - err = TestReadTheFeatureDependentWNCVSF01Wncvsf04Wncvsf03AttributeInAttributeList_7(); + err = TestReadTheFeatureDependentWNCVSF01Wncvsf04Wncvsf03AttributeInAttributeList_12(); break; - case 8: - ChipLogProgress( - chipTool, " ***** Test Step 8 : Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 ) attribute in AttributeList\n"); + case 13: + ChipLogProgress(chipTool, + " ***** Test Step 13 : Read the Feature dependent(WNCV.S.F01 & WNCV.S.F04 ) attribute in AttributeList\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.Afffb")) { NextTest(); return; } - err = TestReadTheFeatureDependentWNCVSF01Wncvsf04AttributeInAttributeList_8(); + err = TestReadTheFeatureDependentWNCVSF01Wncvsf04AttributeInAttributeList_13(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : TH reads from the DUT the (0xFFF9) AcceptedCommandList attribute\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : TH reads from the DUT the (0xFFF9) AcceptedCommandList attribute\n"); if (ShouldSkip("WNCV.S.Afff9")) { NextTest(); return; } - err = TestThReadsFromTheDutThe0xFFF9AcceptedCommandListAttribute_9(); + err = TestThReadsFromTheDutThe0xFFF9AcceptedCommandListAttribute_14(); break; - case 10: + case 15: ChipLogProgress(chipTool, - " ***** Test Step 10 : TH reads Feature dependent(WNCV.S.F00 & WNCV.S.F02) command in AcceptedCommandList\n"); + " ***** Test Step 15 : TH reads Feature dependent(WNCV.S.F00 & WNCV.S.F02) command in AcceptedCommandList\n"); if (ShouldSkip("WNCV.S.Afff9 && WNCV.S.F00 && WNCV.S.F02")) { NextTest(); return; } - err = TestThReadsFeatureDependentWNCVSF00Wncvsf02CommandInAcceptedCommandList_10(); + err = TestThReadsFeatureDependentWNCVSF00Wncvsf02CommandInAcceptedCommandList_15(); break; - case 11: + case 16: ChipLogProgress(chipTool, - " ***** Test Step 11 : TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F03) command in AcceptedCommandList\n"); + " ***** Test Step 16 : TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F03) command in AcceptedCommandList\n"); if (ShouldSkip("WNCV.S.Afff9 && WNCV.S.F01 && WNCV.S.F03")) { NextTest(); return; } - err = TestThReadsFeatureDependentWNCVSF01Wncvsf03CommandInAcceptedCommandList_11(); + err = TestThReadsFeatureDependentWNCVSF01Wncvsf03CommandInAcceptedCommandList_16(); break; - case 12: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 12 : TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F04) command in AcceptedCommandList\n"); + " ***** Test Step 17 : TH reads Feature dependent(WNCV.S.F01 & WNCV.S.F04) command in AcceptedCommandList\n"); if (ShouldSkip("WNCV.S.Afff9 && WNCV.S.F01 && WNCV.S.F04")) { NextTest(); return; } - err = TestThReadsFeatureDependentWNCVSF01Wncvsf04CommandInAcceptedCommandList_12(); + err = TestThReadsFeatureDependentWNCVSF01Wncvsf04CommandInAcceptedCommandList_17(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads from the DUT the (0xFFF8) GeneratedCommandList attribute\n"); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : TH reads from the DUT the (0xFFF8) GeneratedCommandList attribute\n"); if (ShouldSkip("WNCV.S.Afff8")) { NextTest(); return; } - err = TestThReadsFromTheDutThe0xFFF8GeneratedCommandListAttribute_13(); + err = TestThReadsFromTheDutThe0xFFF8GeneratedCommandListAttribute_18(); break; } @@ -61748,6 +63076,21 @@ class Test_TC_WNCV_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; } // Go on to the next test. @@ -61761,7 +63104,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 14; + const uint16_t mTestCount = 19; chip::Optional mNodeId; chip::Optional mCluster; @@ -61816,17 +63159,119 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + { + id actualValue = value; + VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); + } + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - VerifyOrReturn(CheckConstraintMinValue("featureMap", [value unsignedIntValue], 0UL)); - VerifyOrReturn(CheckConstraintMaxValue("featureMap", [value unsignedIntValue], 32768UL)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenWncvsf00lfEnsureFeaturemapHasTheCorrectBitSet_3() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given WNCV.S.F00(LF) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenWncvsf01tlEnsureFeaturemapHasTheCorrectBitSet_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given WNCV.S.F01(TL) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenWncvsf02paLfEnsureFeaturemapHasTheCorrectBitSet_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given WNCV.S.F02(PA_LF) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenWncvsf03absEnsureFeaturemapHasTheCorrectBitSet_6() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given WNCV.S.F03(ABS) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); + NextTest(); + }]; + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestGivenWncvsf04paTlEnsureFeaturemapHasTheCorrectBitSet_7() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Given WNCV.S.F04(PA_TL) ensure featuremap has the correct bit set Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFromTheDutThe0xFFFBAttributeListAttribute_3() + CHIP_ERROR TestThReadsFromTheDutThe0xFFFBAttributeListAttribute_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -61857,7 +63302,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsOptionalAttributeSafetyStatusInAttributeList_4() + CHIP_ERROR TestThReadsOptionalAttributeSafetyStatusInAttributeList_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -61879,7 +63324,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentWNCVSF00Wncvsf02Wncvsf03AttributeInAttributeList_5() + CHIP_ERROR TestReadTheFeatureDependentWNCVSF00Wncvsf02Wncvsf03AttributeInAttributeList_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -61902,7 +63347,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentWNCVSF00Wncvsf02AttributeInAttributeList_6() + CHIP_ERROR TestReadTheFeatureDependentWNCVSF00Wncvsf02AttributeInAttributeList_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -61925,7 +63370,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentWNCVSF01Wncvsf04Wncvsf03AttributeInAttributeList_7() + CHIP_ERROR TestReadTheFeatureDependentWNCVSF01Wncvsf04Wncvsf03AttributeInAttributeList_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -61948,7 +63393,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestReadTheFeatureDependentWNCVSF01Wncvsf04AttributeInAttributeList_8() + CHIP_ERROR TestReadTheFeatureDependentWNCVSF01Wncvsf04AttributeInAttributeList_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -61971,7 +63416,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFromTheDutThe0xFFF9AcceptedCommandListAttribute_9() + CHIP_ERROR TestThReadsFromTheDutThe0xFFF9AcceptedCommandListAttribute_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -61995,7 +63440,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentWNCVSF00Wncvsf02CommandInAcceptedCommandList_10() + CHIP_ERROR TestThReadsFeatureDependentWNCVSF00Wncvsf02CommandInAcceptedCommandList_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -62017,7 +63462,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentWNCVSF01Wncvsf03CommandInAcceptedCommandList_11() + CHIP_ERROR TestThReadsFeatureDependentWNCVSF01Wncvsf03CommandInAcceptedCommandList_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -62039,7 +63484,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFeatureDependentWNCVSF01Wncvsf04CommandInAcceptedCommandList_12() + CHIP_ERROR TestThReadsFeatureDependentWNCVSF01Wncvsf04CommandInAcceptedCommandList_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -62061,7 +63506,7 @@ class Test_TC_WNCV_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsFromTheDutThe0xFFF8GeneratedCommandListAttribute_13() + CHIP_ERROR TestThReadsFromTheDutThe0xFFF8GeneratedCommandListAttribute_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -62471,7 +63916,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("configStatus", "bitmap8", "bitmap8")); VerifyOrReturn(CheckConstraintMinValue("configStatus", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("configStatus", [value unsignedCharValue], 63U)); + VerifyOrReturn(CheckConstraintMaxValue("configStatus", [value unsignedCharValue], 127U)); NextTest(); }]; @@ -62494,7 +63939,7 @@ class Test_TC_WNCV_2_1 : public TestCommandBridge { VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); VerifyOrReturn(CheckConstraintMinValue("operationalStatus", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("operationalStatus", [value unsignedCharValue], 63U)); + VerifyOrReturn(CheckConstraintMaxValue("operationalStatus", [value unsignedCharValue], 127U)); NextTest(); }]; @@ -64110,97 +65555,132 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { err = Test2eThLeaveTheDeviceMovingFor2Seconds_13(); break; case 14: - ChipLogProgress( - chipTool, " ***** Test Step 14 : 3a1: Verify DUT reports OperationalStatus attribute to TH after a UpOrOpen\n"); + ChipLogProgress(chipTool, " ***** Test Step 14 : 3a: TH reads OperationalStatus attribute's bit 0..1\n"); if (ShouldSkip("WNCV.S.A000a")) { NextTest(); return; } - err = Test3a1VerifyDutReportsOperationalStatusAttributeToThAfterAUpOrOpen_14(); + err = Test3aThReadsOperationalStatusAttributesBit01_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : 3a2: DUT updates its attributes\n"); - err = Test3a2DutUpdatesItsAttributes_15(); + ChipLogProgress( + chipTool, " ***** Test Step 15 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F00")) { + NextTest(); + return; + } + err = Test3aThReadsOperationalStatusAttributesBit23Wncvsf00lf_15(); break; case 16: ChipLogProgress( - chipTool, " ***** Test Step 16 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e")) { + chipTool, " ***** Test Step 16 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F00")) { NextTest(); return; } - err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_16(); + err = Test3aThReadsOperationalStatusAttributesBit23Wncvsf00lf_16(); break; case 17: - ChipLogProgress(chipTool, - " ***** Test Step 17 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008")) { + ChipLogProgress( + chipTool, " ***** Test Step 17 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F01")) { NextTest(); return; } - err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_17(); + err = Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_17(); break; case 18: ChipLogProgress( - chipTool, " ***** Test Step 18 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f")) { + chipTool, " ***** Test Step 18 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F01")) { NextTest(); return; } - err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_18(); + err = Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_18(); break; case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : 3a2: DUT updates its attributes\n"); + err = Test3a2DutUpdatesItsAttributes_19(); + break; + case 20: + ChipLogProgress( + chipTool, " ***** Test Step 20 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20(); + break; + case 21: ChipLogProgress(chipTool, - " ***** Test Step 19 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009")) { + " ***** Test Step 21 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008 && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_19(); + err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21(); break; - case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : 4a: TH sends a StopMotion command to DUT\n"); + case 22: + ChipLogProgress( + chipTool, " ***** Test Step 22 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22(); + break; + case 23: + ChipLogProgress(chipTool, + " ***** Test Step 23 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009 && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23(); + break; + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : 4a: TH sends a StopMotion command to DUT\n"); if (ShouldSkip("WNCV.S.C02.Rsp")) { NextTest(); return; } - err = Test4aThSendsAStopMotionCommandToDut_20(); + err = Test4aThSendsAStopMotionCommandToDut_24(); break; - case 21: + case 25: ChipLogProgress( - chipTool, " ***** Test Step 21 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); - err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_21(); + chipTool, " ***** Test Step 25 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); + err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25(); break; - case 22: + case 26: ChipLogProgress( - chipTool, " ***** Test Step 22 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); + chipTool, " ***** Test Step 26 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); if (ShouldSkip("WNCV.S.A000a")) { NextTest(); return; } - err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_22(); + err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26(); break; - case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : 5a: TH waits for x seconds attributes update on the device\n"); - err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_23(); + case 27: + ChipLogProgress(chipTool, " ***** Test Step 27 : 5a: TH waits for x seconds attributes update on the device\n"); + err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27(); break; - case 24: + case 28: ChipLogProgress( - chipTool, " ***** Test Step 24 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b")) { + chipTool, " ***** Test Step 28 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_24(); + err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28(); break; - case 25: + case 29: ChipLogProgress( - chipTool, " ***** Test Step 25 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c")) { + chipTool, " ***** Test Step 29 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_25(); + err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29(); break; } @@ -64291,6 +65771,18 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { 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; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -64304,7 +65796,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 26; + const uint16_t mTestCount = 30; chip::Optional mNodeId; chip::Optional mCluster; @@ -64601,7 +66093,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test3a1VerifyDutReportsOperationalStatusAttributeToThAfterAUpOrOpen_14() + CHIP_ERROR Test3aThReadsOperationalStatusAttributesBit01_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -64609,29 +66101,106 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - test_Test_TC_WNCV_3_1_OperationalStatus_Reported = ^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"3a1: Verify DUT reports OperationalStatus attribute to TH after a UpOrOpen Error: %@", err); + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a: TH reads OperationalStatus attribute's bit 0..1 Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); - VerifyOrReturn(CheckConstraintMinValue("operationalStatus", [value unsignedCharValue], 5U)); - VerifyOrReturn(CheckConstraintMaxValue("operationalStatus", [value unsignedCharValue], 21U)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3aThReadsOperationalStatusAttributesBit23Wncvsf00lf_15() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF)) Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); NextTest(); - }; + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3aThReadsOperationalStatusAttributesBit23Wncvsf00lf_16() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF)) Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR Test3a2DutUpdatesItsAttributes_15() + CHIP_ERROR Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_17() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL)) Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_18() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL)) Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3a2DutUpdatesItsAttributes_19() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 2000UL; + value.ms = 3000UL; return WaitForMs("alpha", value); } - CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_16() + CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -64660,7 +66229,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_17() + CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -64689,7 +66258,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_18() + CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -64718,7 +66287,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_19() + CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -64747,7 +66316,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_20() + CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_24() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -64766,14 +66335,14 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_21() + CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs("alpha", value); } - CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_22() + CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -64797,14 +66366,14 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_23() + CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_24() + CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -64833,7 +66402,7 @@ class Test_TC_WNCV_3_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_25() + CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -64997,97 +66566,132 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { err = Test2eThLeaveTheDeviceMovingFor2Seconds_13(); break; case 14: - ChipLogProgress( - chipTool, " ***** Test Step 14 : 3a: Verify DUT reports OperationalStatus attribute to TH after a DownOrClose\n"); + ChipLogProgress(chipTool, " ***** Test Step 14 : 3a: TH reads OperationalStatus attribute's bit 0..1\n"); if (ShouldSkip("WNCV.S.A000a")) { NextTest(); return; } - err = Test3aVerifyDutReportsOperationalStatusAttributeToThAfterADownOrClose_14(); + err = Test3aThReadsOperationalStatusAttributesBit01_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : 3a2: DUT updates its attributes\n"); - err = Test3a2DutUpdatesItsAttributes_15(); + ChipLogProgress( + chipTool, " ***** Test Step 15 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F00")) { + NextTest(); + return; + } + err = Test3aThReadsOperationalStatusAttributesBit23Wncvsf00lf_15(); break; case 16: ChipLogProgress( - chipTool, " ***** Test Step 16 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e")) { + chipTool, " ***** Test Step 16 : 3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF))\n"); + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F00")) { NextTest(); return; } - err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_16(); + err = Test3aThReadsOperationalStatusAttributesBit23Wncvsf00lf_16(); break; case 17: - ChipLogProgress(chipTool, - " ***** Test Step 17 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008")) { + ChipLogProgress( + chipTool, " ***** Test Step 17 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); + if (ShouldSkip("WNCV.S.A000a && WNCV.S.F01")) { NextTest(); return; } - err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_17(); + err = Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_17(); break; case 18: ChipLogProgress( - chipTool, " ***** Test Step 18 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f")) { + chipTool, " ***** Test Step 18 : 3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL))\n"); + if (ShouldSkip("WNCV.S.A000a && !WNCV.S.F01")) { NextTest(); return; } - err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_18(); + err = Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_18(); break; case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : 3a2: DUT updates its attributes\n"); + err = Test3a2DutUpdatesItsAttributes_19(); + break; + case 20: + ChipLogProgress( + chipTool, " ***** Test Step 20 : 3b: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20(); + break; + case 21: ChipLogProgress(chipTool, - " ***** Test Step 19 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009")) { + " ***** Test Step 21 : 3c: If (PA & LF) TH reads CurrentPositionLiftPercentage optional attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A0008 && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_19(); + err = Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21(); break; - case 20: - ChipLogProgress(chipTool, " ***** Test Step 20 : 4a: TH sends a StopMotion command to DUT\n"); + case 22: + ChipLogProgress( + chipTool, " ***** Test Step 22 : 3d: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22(); + break; + case 23: + ChipLogProgress(chipTool, + " ***** Test Step 23 : 3e: If (PA & LF) TH reads CurrentPositionTiltPercentage optional attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A0009 && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23(); + break; + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : 4a: TH sends a StopMotion command to DUT\n"); if (ShouldSkip("WNCV.S.C02.Rsp")) { NextTest(); return; } - err = Test4aThSendsAStopMotionCommandToDut_20(); + err = Test4aThSendsAStopMotionCommandToDut_24(); break; - case 21: + case 25: ChipLogProgress( - chipTool, " ***** Test Step 21 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); - err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_21(); + chipTool, " ***** Test Step 25 : 4b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); + err = Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25(); break; - case 22: + case 26: ChipLogProgress( - chipTool, " ***** Test Step 22 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); + chipTool, " ***** Test Step 26 : 4c: Verify DUT update OperationalStatus attribute to TH after a StopMotion\n"); if (ShouldSkip("WNCV.S.A000a")) { NextTest(); return; } - err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_22(); + err = Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26(); break; - case 23: - ChipLogProgress(chipTool, " ***** Test Step 23 : 5a: TH waits for x seconds attributes update on the device\n"); - err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_23(); + case 27: + ChipLogProgress(chipTool, " ***** Test Step 27 : 5a: TH waits for x seconds attributes update on the device\n"); + err = Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27(); break; - case 24: + case 28: ChipLogProgress( - chipTool, " ***** Test Step 24 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b")) { + chipTool, " ***** Test Step 28 : 5b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_24(); + err = Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28(); break; - case 25: + case 29: ChipLogProgress( - chipTool, " ***** Test Step 25 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); - if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c")) { + chipTool, " ***** Test Step 29 : 5c: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute from DUT\n"); + if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000c && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_25(); + err = Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29(); break; } @@ -65178,6 +66782,18 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { 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; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -65191,7 +66807,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 26; + const uint16_t mTestCount = 30; chip::Optional mNodeId; chip::Optional mCluster; @@ -65488,7 +67104,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR Test3aVerifyDutReportsOperationalStatusAttributeToThAfterADownOrClose_14() + CHIP_ERROR Test3aThReadsOperationalStatusAttributesBit01_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -65496,29 +67112,106 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - test_Test_TC_WNCV_3_2_OperationalStatus_Reported = ^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"3a: Verify DUT reports OperationalStatus attribute to TH after a DownOrClose Error: %@", err); + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a: TH reads OperationalStatus attribute's bit 0..1 Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); - VerifyOrReturn(CheckConstraintMinValue("operationalStatus", [value unsignedCharValue], 10U)); - VerifyOrReturn(CheckConstraintMaxValue("operationalStatus", [value unsignedCharValue], 42U)); + NextTest(); + }]; + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3aThReadsOperationalStatusAttributesBit23Wncvsf00lf_15() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF)) Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); NextTest(); - }; + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3aThReadsOperationalStatusAttributesBit23Wncvsf00lf_16() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a: TH reads OperationalStatus attribute's bit 2..3 (WNCV.S.F00(LF)) Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_17() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL)) Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test3aThReadsOperationalStatusAttributesBit45Wncvsf01tl_18() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"3a: TH reads OperationalStatus attribute's bit 4..5 (WNCV.S.F01(TL)) Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR Test3a2DutUpdatesItsAttributes_15() + CHIP_ERROR Test3a2DutUpdatesItsAttributes_19() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 2000UL; + value.ms = 3000UL; return WaitForMs("alpha", value); } - CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_16() + CHIP_ERROR Test3bIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_20() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -65547,7 +67240,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_17() + CHIP_ERROR Test3cIfPaLfThReadsCurrentPositionLiftPercentageOptionalAttributeFromDut_21() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -65576,7 +67269,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_18() + CHIP_ERROR Test3dIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_22() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -65605,7 +67298,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_19() + CHIP_ERROR Test3eIfPaLfThReadsCurrentPositionTiltPercentageOptionalAttributeFromDut_23() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -65634,7 +67327,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_20() + CHIP_ERROR Test4aThSendsAStopMotionCommandToDut_24() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -65653,14 +67346,14 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_21() + CHIP_ERROR Test4bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_25() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs("alpha", value); } - CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_22() + CHIP_ERROR Test4cVerifyDutUpdateOperationalStatusAttributeToThAfterAStopMotion_26() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -65684,14 +67377,14 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_23() + CHIP_ERROR Test5aThWaitsForXSecondsAttributesUpdateOnTheDevice_27() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 1000UL; return WaitForMs("alpha", value); } - CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_24() + CHIP_ERROR Test5bIfPaLfThReadsTargetPositionLiftPercent100thsAttributeFromDut_28() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -65720,7 +67413,7 @@ class Test_TC_WNCV_3_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_25() + CHIP_ERROR Test5cIfPaTlThReadsTargetPositionTiltPercent100thsAttributeFromDut_29() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -65819,84 +67512,96 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { err = Test1dThWaitsFor2SecondsMovementsOnTheDevice_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Report: 2: Subscribe to DUT reports on OperationalStatus attribute\n"); - err = TestReport2SubscribeToDutReportsOnOperationalStatusAttribute_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : 1e: TH reads OperationalStatus attribute from DUT\n"); + if (ShouldSkip("WNCV.S.A000a")) { + NextTest(); + return; + } + err = Test1eThReadsOperationalStatusAttributeFromDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : 2: Subscribe to DUT reports on OperationalStatus attribute\n"); - err = Test2SubscribeToDutReportsOnOperationalStatusAttribute_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : 1d: TH Waits for 2 seconds movement(s) on the device\n"); + err = Test1dThWaitsFor2SecondsMovementsOnTheDevice_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : 2a: TH sends a StopMotion command to DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 7 : Report: 2: Subscribe to DUT reports on OperationalStatus attribute\n"); + err = TestReport2SubscribeToDutReportsOnOperationalStatusAttribute_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : 2: Subscribe to DUT reports on OperationalStatus attribute\n"); + err = Test2SubscribeToDutReportsOnOperationalStatusAttribute_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : 2a: TH sends a StopMotion command to DUT\n"); if (ShouldSkip("WNCV.S.C02.Rsp")) { NextTest(); return; } - err = Test2aThSendsAStopMotionCommandToDut_7(); + err = Test2aThSendsAStopMotionCommandToDut_9(); break; - case 8: + case 10: ChipLogProgress( - chipTool, " ***** Test Step 8 : 2b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); - err = Test2bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_8(); + chipTool, " ***** Test Step 10 : 2b: TH waits for 3 seconds the end of inertial movement(s) on the device\n"); + err = Test2bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_10(); break; - case 9: + case 11: ChipLogProgress( - chipTool, " ***** Test Step 9 : 2c: Verify DUT reports OperationalStatus attribute to TH after a StopMotion\n"); + chipTool, " ***** Test Step 11 : 2c: TH reads OperationalStatus attribute from DUT after a StopMotion\n"); if (ShouldSkip("WNCV.S.A000a")) { NextTest(); return; } - err = Test2cVerifyDutReportsOperationalStatusAttributeToThAfterAStopMotion_9(); + err = Test2cThReadsOperationalStatusAttributeFromDutAfterAStopMotion_11(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : 2d: TH waits for 100ms - 3s attributes update on the device\n"); - err = Test2dThWaitsFor100ms3sAttributesUpdateOnTheDevice_10(); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : 2d: TH waits for 100ms - 3s attributes update on the device\n"); + err = Test2dThWaitsFor100ms3sAttributesUpdateOnTheDevice_12(); break; - case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : 2e: TH reads OperationalStatus attribute from DUT\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : 2e: TH reads OperationalStatus attribute from DUT\n"); if (ShouldSkip("WNCV.S.A000a")) { NextTest(); return; } - err = Test2eThReadsOperationalStatusAttributeFromDut_11(); + err = Test2eThReadsOperationalStatusAttributeFromDut_13(); break; - case 12: + case 14: ChipLogProgress( - chipTool, " ***** Test Step 12 : 3a: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 14 : 3a: If (PA & LF) TH reads CurrentPositionLiftPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000e")) { NextTest(); return; } - err = Test3aIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_12(); + err = Test3aIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_14(); break; - case 13: + case 15: ChipLogProgress(chipTool, - " ***** Test Step 13 : 3b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute 3c: it Must be equal " + " ***** Test Step 15 : 3b: If (PA & LF) TH reads TargetPositionLiftPercent100ths attribute 3c: it Must be equal " "with CurrentPositionLiftPercent100ths from DUT\n"); if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000b && WNCV.S.A000e")) { NextTest(); return; } - err = Test3bIfPaLfThReadsTargetPositionLiftPercent100thsAttribute3cItMustBeEqualWithCurrentPositionLiftPercent100thsFromDut_13(); + err = Test3bIfPaLfThReadsTargetPositionLiftPercent100thsAttribute3cItMustBeEqualWithCurrentPositionLiftPercent100thsFromDut_15(); break; - case 14: + case 16: ChipLogProgress( - chipTool, " ***** Test Step 14 : 4a: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); + chipTool, " ***** Test Step 16 : 4a: If (PA & TL) TH reads CurrentPositionTiltPercent100ths attribute from DUT\n"); if (ShouldSkip("WNCV.S.F01 && WNCV.S.F04 && WNCV.S.A000f")) { NextTest(); return; } - err = Test4aIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_14(); + err = Test4aIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_16(); break; - case 15: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 15 : 4b: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute 4c: it Must be equal " + " ***** Test Step 17 : 4b: If (PA & TL) TH reads TargetPositionTiltPercent100ths attribute 4c: it Must be equal " "with CurrentPositionTiltPercent100ths from DUT\n"); - if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000c && WNCV.S.A000f")) { + if (ShouldSkip("WNCV.S.F00 && WNCV.S.F02 && WNCV.S.A000c && WNCV.S.A000f && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = Test4bIfPaTlThReadsTargetPositionTiltPercent100thsAttribute4cItMustBeEqualWithCurrentPositionTiltPercent100thsFromDut_15(); + err = Test4bIfPaTlThReadsTargetPositionTiltPercent100thsAttribute4cItMustBeEqualWithCurrentPositionTiltPercent100thsFromDut_17(); break; } @@ -65957,6 +67662,12 @@ class Test_TC_WNCV_3_3 : 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; } // Go on to the next test. @@ -65970,7 +67681,7 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 16; + const uint16_t mTestCount = 18; chip::Optional mNodeId; chip::Optional mCluster; @@ -66035,10 +67746,38 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { value.ms = 2000UL; return WaitForMs("alpha", value); } - bool testSendClusterTest_TC_WNCV_3_3_5_WaitForReport_Fulfilled = false; + + CHIP_ERROR Test1eThReadsOperationalStatusAttributeFromDut_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device + endpoint:1 + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"1e: TH reads OperationalStatus attribute from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintNotValue("operationalStatus", value, 0U)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR Test1dThWaitsFor2SecondsMovementsOnTheDevice_6() + { + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 2000UL; + return WaitForMs("alpha", value); + } + bool testSendClusterTest_TC_WNCV_3_3_7_WaitForReport_Fulfilled = false; ResponseHandler _Nullable test_Test_TC_WNCV_3_3_OperationalStatus_Reported = nil; - CHIP_ERROR TestReport2SubscribeToDutReportsOnOperationalStatusAttribute_5() + CHIP_ERROR TestReport2SubscribeToDutReportsOnOperationalStatusAttribute_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -66052,14 +67791,14 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); VerifyOrReturn(CheckConstraintType("operationalStatus", "bitmap8", "bitmap8")); - testSendClusterTest_TC_WNCV_3_3_5_WaitForReport_Fulfilled = true; + testSendClusterTest_TC_WNCV_3_3_7_WaitForReport_Fulfilled = true; }; NextTest(); return CHIP_NO_ERROR; } - CHIP_ERROR Test2SubscribeToDutReportsOnOperationalStatusAttribute_6() + CHIP_ERROR Test2SubscribeToDutReportsOnOperationalStatusAttribute_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -66075,7 +67814,7 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { params:params subscriptionEstablished:^{ VerifyOrReturn( - testSendClusterTest_TC_WNCV_3_3_5_WaitForReport_Fulfilled, SetCommandExitStatus(CHIP_ERROR_INCORRECT_STATE)); + testSendClusterTest_TC_WNCV_3_3_7_WaitForReport_Fulfilled, SetCommandExitStatus(CHIP_ERROR_INCORRECT_STATE)); NextTest(); } reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { @@ -66092,7 +67831,7 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2aThSendsAStopMotionCommandToDut_7() + CHIP_ERROR Test2aThSendsAStopMotionCommandToDut_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -66111,14 +67850,14 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR Test2bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_8() + CHIP_ERROR Test2bThWaitsFor3SecondsTheEndOfInertialMovementsOnTheDevice_10() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 3000UL; return WaitForMs("alpha", value); } - CHIP_ERROR Test2cVerifyDutReportsOperationalStatusAttributeToThAfterAStopMotion_9() + CHIP_ERROR Test2cThReadsOperationalStatusAttributeFromDutAfterAStopMotion_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -66126,8 +67865,8 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - test_Test_TC_WNCV_3_3_OperationalStatus_Reported = ^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"2c: Verify DUT reports OperationalStatus attribute to TH after a StopMotion Error: %@", err); + [cluster readAttributeOperationalStatusWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"2c: TH reads OperationalStatus attribute from DUT after a StopMotion Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -66137,19 +67876,19 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { } NextTest(); - }; + }]; return CHIP_NO_ERROR; } - CHIP_ERROR Test2dThWaitsFor100ms3sAttributesUpdateOnTheDevice_10() + CHIP_ERROR Test2dThWaitsFor100ms3sAttributesUpdateOnTheDevice_12() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 2000UL; return WaitForMs("alpha", value); } - CHIP_ERROR Test2eThReadsOperationalStatusAttributeFromDut_11() + CHIP_ERROR Test2eThReadsOperationalStatusAttributeFromDut_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -66174,7 +67913,7 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { } NSNumber * _Nullable attrCurrentPositionLift; - CHIP_ERROR Test3aIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_12() + CHIP_ERROR Test3aIfPaLfThReadsCurrentPositionLiftPercent100thsAttributeFromDut_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -66206,7 +67945,7 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { } CHIP_ERROR - Test3bIfPaLfThReadsTargetPositionLiftPercent100thsAttribute3cItMustBeEqualWithCurrentPositionLiftPercent100thsFromDut_13() + Test3bIfPaLfThReadsTargetPositionLiftPercent100thsAttribute3cItMustBeEqualWithCurrentPositionLiftPercent100thsFromDut_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -66239,7 +67978,7 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { } NSNumber * _Nullable attrCurrentPositionTilt; - CHIP_ERROR Test4aIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_14() + CHIP_ERROR Test4aIfPaTlThReadsCurrentPositionTiltPercent100thsAttributeFromDut_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -66271,7 +68010,7 @@ class Test_TC_WNCV_3_3 : public TestCommandBridge { } CHIP_ERROR - Test4bIfPaTlThReadsTargetPositionTiltPercent100thsAttribute4cItMustBeEqualWithCurrentPositionTiltPercent100thsFromDut_15() + Test4bIfPaTlThReadsTargetPositionTiltPercent100thsAttribute4cItMustBeEqualWithCurrentPositionTiltPercent100thsFromDut_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterWindowCovering * cluster = [[MTRBaseClusterWindowCovering alloc] initWithDevice:device @@ -118935,80 +120674,104 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { err = TestThReadsTheWrongCodeEntryLimitAttributeFromTheDut_16(); break; case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); - if (ShouldSkip("DRLK.S.A0030")) { + ChipLogProgress(chipTool, + " ***** Test Step 17 : TH sends an Unlock Door Command from the DUT with invalid PINCode. Repeat this step " + "PIXIT.DRLK.WrongCodeEntryLimit times and Verify that DUT sends failure response to the TH\n"); + if (ShouldSkip("PICS_USER_PROMPT && DRLK.S.A0030")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_17(); + err = TestThSendsAnUnlockDoorCommandFromTheDutWithInvalidPINCodeRepeatThisStepPIXITDRLKWrongCodeEntryLimitTimesAndVerifyThatDutSendsFailureResponseToTheTh_17(); break; case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : TH sends the unlock Door command to the DUT with valid PINCode\n"); - if (ShouldSkip("DRLK.S.A0030")) { + ChipLogProgress(chipTool, + " ***** Test Step 18 : TH sends an Unlock Door Command from User1 to the DUT with the valid PINCode and verify the " + "DUT response\n"); + if (ShouldSkip("PICS_USER_PROMPT && DRLK.S.A0030")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_18(); + err = TestThSendsAnUnlockDoorCommandFromUser1ToTheDutWithTheValidPINCodeAndVerifyTheDutResponse_18(); break; case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : TH reads the UserCodeTemporaryDisableTime attribute from the DUT\n"); + if (ShouldSkip("DRLK.S.A0031")) { + NextTest(); + return; + } + err = TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDut_19(); + break; + case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : Wait 15000ms\n"); + err = TestWait15000ms_20(); + break; + case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : TH sends the unlock Door command to the DUT with valid PINCode\n"); + if (ShouldSkip("DRLK.S.A0030")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_21(); + break; + case 22: ChipLogProgress(chipTool, - " ***** Test Step 19 : TH writes WrongCodeEntryLimit attribute value as between 1 and 255 on the DUT and Verify " + " ***** Test Step 22 : TH writes WrongCodeEntryLimit attribute value as between 1 and 255 on the DUT and Verify " "that the DUT sends Success response\n"); if (ShouldSkip("DRLK.S.A0030")) { NextTest(); return; } - err = TestThWritesWrongCodeEntryLimitAttributeValueAsBetween1And255OnTheDutAndVerifyThatTheDutSendsSuccessResponse_19(); + err = TestThWritesWrongCodeEntryLimitAttributeValueAsBetween1And255OnTheDutAndVerifyThatTheDutSendsSuccessResponse_22(); break; - case 20: + case 23: ChipLogProgress(chipTool, - " ***** Test Step 20 : TH writes WrongCodeEntryLimit attribute value as between 1 and 255 on the DUT and verify " + " ***** Test Step 23 : TH writes WrongCodeEntryLimit attribute value as between 1 and 255 on the DUT and verify " "DUT responds with UNSUPPORTED_WRITE\n"); if (ShouldSkip("!DRLK.S.A0030")) { NextTest(); return; } - err = TestThWritesWrongCodeEntryLimitAttributeValueAsBetween1And255OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_20(); + err = TestThWritesWrongCodeEntryLimitAttributeValueAsBetween1And255OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_23(); break; - case 21: - ChipLogProgress(chipTool, " ***** Test Step 21 : TH reads the UserCodeTemporaryDisableTime attribute from the DUT\n"); + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : TH reads the UserCodeTemporaryDisableTime attribute from the DUT\n"); if (ShouldSkip("DRLK.S.A0031")) { NextTest(); return; } - err = TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDut_21(); + err = TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDut_24(); break; - case 22: + case 25: ChipLogProgress(chipTool, - " ***** Test Step 22 : TH writes UserCodeTemporaryDisableTime attribute value as between 1 and 255 on the DUT and " + " ***** Test Step 25 : TH writes UserCodeTemporaryDisableTime attribute value as between 1 and 255 on the DUT and " "Verify that the DUT sends Success response\n"); if (ShouldSkip("DRLK.S.A0031")) { NextTest(); return; } - err = TestThWritesUserCodeTemporaryDisableTimeAttributeValueAsBetween1And255OnTheDutAndVerifyThatTheDutSendsSuccessResponse_22(); + err = TestThWritesUserCodeTemporaryDisableTimeAttributeValueAsBetween1And255OnTheDutAndVerifyThatTheDutSendsSuccessResponse_25(); break; - case 23: + case 26: ChipLogProgress(chipTool, - " ***** Test Step 23 : TH writes UserCodeTemporaryDisableTime attribute value as between 1 and 255 on the DUT and " + " ***** Test Step 26 : TH writes UserCodeTemporaryDisableTime attribute value as between 1 and 255 on the DUT and " "verify DUT responds with UNSUPPORTED_WRITE\n"); if (ShouldSkip("!DRLK.S.A0031")) { NextTest(); return; } - err = TestThWritesUserCodeTemporaryDisableTimeAttributeValueAsBetween1And255OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_23(); + err = TestThWritesUserCodeTemporaryDisableTimeAttributeValueAsBetween1And255OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_26(); break; - case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : Clean the created user\n"); - err = TestCleanTheCreatedUser_24(); + case 27: + ChipLogProgress(chipTool, " ***** Test Step 27 : Clean the created user\n"); + err = TestCleanTheCreatedUser_27(); break; - case 25: - ChipLogProgress(chipTool, " ***** Test Step 25 : Cleanup the created credential\n"); + case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : Cleanup the created credential\n"); if (ShouldSkip("DRLK.S.C26.Rsp")) { NextTest(); return; } - err = TestCleanupTheCreatedCredential_25(); + err = TestCleanupTheCreatedCredential_28(); break; } @@ -119073,7 +120836,7 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -119082,7 +120845,7 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -119099,6 +120862,15 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { case 25: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -119112,7 +120884,7 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 26; + const uint16_t mTestCount = 29; chip::Optional mNodeId; chip::Optional mCluster; @@ -119585,29 +121357,56 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_17() + CHIP_ERROR + TestThSendsAnUnlockDoorCommandFromTheDutWithInvalidPINCodeRepeatThisStepPIXITDRLKWrongCodeEntryLimitTimesAndVerifyThatDutSendsFailureResponseToTheTh_17() + { + 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 TestThSendsAnUnlockDoorCommandFromUser1ToTheDutWithTheValidPINCodeAndVerifyTheDutResponse_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 TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDut_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; - params.pinCode = [[NSData alloc] initWithBytes:"1234568" length:7]; [cluster - unlockDoorWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"TH sends the unlock Door command to the DUT with invalid PINCode Error: %@", err); + readAttributeUserCodeTemporaryDisableTimeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the UserCodeTemporaryDisableTime attribute from the DUT Error: %@", err); - VerifyOrReturn(CheckValue("status", - err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code : EMBER_ZCL_STATUS_FAILURE) : 0, - EMBER_ZCL_STATUS_FAILURE)); - NextTest(); - }]; + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("UserCodeTemporaryDisableTime", actualValue, 10U)); + } + + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_18() + CHIP_ERROR TestWait15000ms_20() + { + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 15000UL; + return WaitForMs("alpha", value); + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_21() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -119627,7 +121426,7 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesWrongCodeEntryLimitAttributeValueAsBetween1And255OnTheDutAndVerifyThatTheDutSendsSuccessResponse_19() + CHIP_ERROR TestThWritesWrongCodeEntryLimitAttributeValueAsBetween1And255OnTheDutAndVerifyThatTheDutSendsSuccessResponse_22() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -119649,7 +121448,7 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesWrongCodeEntryLimitAttributeValueAsBetween1And255OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_20() + CHIP_ERROR TestThWritesWrongCodeEntryLimitAttributeValueAsBetween1And255OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_23() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -119675,7 +121474,7 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDut_21() + CHIP_ERROR TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDut_24() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -119694,7 +121493,7 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { } CHIP_ERROR - TestThWritesUserCodeTemporaryDisableTimeAttributeValueAsBetween1And255OnTheDutAndVerifyThatTheDutSendsSuccessResponse_22() + TestThWritesUserCodeTemporaryDisableTimeAttributeValueAsBetween1And255OnTheDutAndVerifyThatTheDutSendsSuccessResponse_25() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -119718,7 +121517,7 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { } CHIP_ERROR - TestThWritesUserCodeTemporaryDisableTimeAttributeValueAsBetween1And255OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_23() + TestThWritesUserCodeTemporaryDisableTimeAttributeValueAsBetween1And255OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_26() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -119745,7 +121544,7 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCleanTheCreatedUser_24() + CHIP_ERROR TestCleanTheCreatedUser_27() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -119765,7 +121564,7 @@ class Test_TC_DRLK_2_2 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCleanupTheCreatedCredential_25() + CHIP_ERROR TestCleanupTheCreatedCredential_28() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -119848,146 +121647,146 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { err = TestVerifyCreatedPinCredential_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Precondition: Door is in locked state\n"); - if (ShouldSkip("DRLK.S.C00.Rsp")) { - NextTest(); - return; - } - err = TestPreconditionDoorIsInLockedState_5(); - break; - case 6: ChipLogProgress( - chipTool, " ***** Test Step 6 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT\n"); + chipTool, " ***** Test Step 5 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT\n"); if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { NextTest(); return; } - err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_6(); + err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_5(); break; - case 7: + case 6: ChipLogProgress(chipTool, - " ***** Test Step 7 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT and Verify " + " ***** Test Step 6 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT and Verify " "DUT responds with UNSUPPORTED_WRITE\n"); if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && ! DRLK.S.A0033")) { NextTest(); return; } - err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_7(); + err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_6(); break; - case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads the RequirePINforRemoteOperation attribute from the DUT\n"); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : TH reads the RequirePINforRemoteOperation attribute from the DUT\n"); if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { NextTest(); return; } - err = TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_8(); + err = TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_7(); break; - case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : TH sends the unlock Door command to the DUT without PINCode\n"); + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : TH sends the unlock Door command to the DUT without PINCode\n"); if (ShouldSkip("DRLK.S.C01.Rsp")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_9(); + err = TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_8(); break; - case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : TH sends the unlock Door command to the DUT with valid PINCode\n"); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : TH sends the unlock Door command to the DUT with valid PINCode\n"); if (ShouldSkip("DRLK.S.C01.Rsp")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_10(); + err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_9(); break; - case 11: + case 10: ChipLogProgress( - chipTool, " ***** Test Step 11 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT\n"); + chipTool, " ***** Test Step 10 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT\n"); if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { NextTest(); return; } - err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_11(); + err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_10(); break; - case 12: + case 11: ChipLogProgress(chipTool, - " ***** Test Step 12 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT and Verify " + " ***** Test Step 11 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT and Verify " "DUT responds with UNSUPPORTED_WRITE\n"); if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && ! DRLK.S.A0033")) { NextTest(); return; } - err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_12(); + err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_11(); break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads the RequirePINforRemoteOperation attribute from the DUT\n"); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads the RequirePINforRemoteOperation attribute from the DUT\n"); if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { NextTest(); return; } - err = TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_13(); + err = TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_12(); break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : TH sends the unlock Door command to the DUT with valid PINCode\n"); + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : TH sends the unlock Door command to the DUT with valid PINCode\n"); if (ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_14(); + err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_13(); break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); if (ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_15(); + err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_14(); break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : TH sends the unlock Door command to the DUT without PINCode\n"); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : TH sends the unlock Door command to the DUT without PINCode\n"); if (ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_16(); + err = TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_15(); break; - case 17: + case 16: ChipLogProgress(chipTool, - " ***** Test Step 17 : TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and Verify that the DUT sends " + " ***** Test Step 16 : TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and Verify that the DUT sends " "Success response\n"); if (ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0030")) { NextTest(); return; } - err = TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyThatTheDutSendsSuccessResponse_17(); + err = TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyThatTheDutSendsSuccessResponse_16(); break; - case 18: + case 17: ChipLogProgress(chipTool, - " ***** Test Step 18 : TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and verify DUT responds with " + " ***** Test Step 17 : TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and verify DUT responds with " "UNSUPPORTED_WRITE\n"); if (ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && ! DRLK.S.A0030")) { NextTest(); return; } - err = TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_18(); + err = TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_17(); break; - case 19: + case 18: ChipLogProgress(chipTool, - " ***** Test Step 19 : TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify " + " ***** Test Step 18 : TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify " "that the DUT sends Success response\n"); if (ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0031")) { NextTest(); return; } - err = TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_19(); + err = TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_18(); break; - case 20: + case 19: ChipLogProgress(chipTool, - " ***** Test Step 20 : TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify " + " ***** Test Step 19 : TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify " "that the DUT sends Success response\n"); if (ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && ! DRLK.S.A0031")) { NextTest(); return; } - err = TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_20(); + err = TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_19(); + break; + case 20: + ChipLogProgress(chipTool, " ***** Test Step 20 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_20(); break; case 21: ChipLogProgress(chipTool, " ***** Test Step 21 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); @@ -120014,110 +121813,102 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_23(); break; case 24: - ChipLogProgress(chipTool, " ***** Test Step 24 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); - if (ShouldSkip("DRLK.S.C01.Rsp")) { - NextTest(); - return; - } - err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_24(); - break; - case 25: ChipLogProgress(chipTool, - " ***** Test Step 25 : TH reads the UserCodeTemporaryDisableTime attribute from the DUT and check attribute is " + " ***** Test Step 24 : TH reads the UserCodeTemporaryDisableTime attribute from the DUT and check attribute is " "triggered\n"); if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0031")) { NextTest(); return; } - err = TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDutAndCheckAttributeIsTriggered_25(); + err = TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDutAndCheckAttributeIsTriggered_24(); break; - case 26: - ChipLogProgress(chipTool, " ***** Test Step 26 : TH sends the unlock Door command to the DUT with valid PINCode\n"); + case 25: + ChipLogProgress(chipTool, " ***** Test Step 25 : TH sends the unlock Door command to the DUT with valid PINCode\n"); if (ShouldSkip("DRLK.S.C01.Rsp")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_26(); + err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_25(); break; - case 27: - ChipLogProgress(chipTool, " ***** Test Step 27 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); + case 26: + ChipLogProgress(chipTool, " ***** Test Step 26 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_27(); + err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_26(); break; - case 28: - ChipLogProgress(chipTool, " ***** Test Step 28 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); + case 27: + ChipLogProgress(chipTool, " ***** Test Step 27 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_28(); + err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_27(); break; - case 29: - ChipLogProgress(chipTool, " ***** Test Step 29 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); + case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); if (ShouldSkip("!DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_29(); + err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_28(); break; - case 30: - ChipLogProgress(chipTool, " ***** Test Step 30 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); + case 29: + ChipLogProgress(chipTool, " ***** Test Step 29 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); if (ShouldSkip("!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_30(); + err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_29(); break; - case 31: - ChipLogProgress(chipTool, " ***** Test Step 31 : TH reads the AutoRelockTime attribute from the DUT\n"); + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : TH reads the AutoRelockTime attribute from the DUT\n"); if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { NextTest(); return; } - err = TestThReadsTheAutoRelockTimeAttributeFromTheDut_31(); + err = TestThReadsTheAutoRelockTimeAttributeFromTheDut_30(); break; - case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : TH reads the AutoRelockTime attribute from the DUT\n"); + case 31: + ChipLogProgress(chipTool, " ***** Test Step 31 : TH reads the AutoRelockTime attribute from the DUT\n"); if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = TestThReadsTheAutoRelockTimeAttributeFromTheDut_32(); + err = TestThReadsTheAutoRelockTimeAttributeFromTheDut_31(); break; - case 33: + case 32: ChipLogProgress(chipTool, - " ***** Test Step 33 : TH sends the unlock Door command to the DUT with valid PINCode and Verify that DUT sends " + " ***** Test Step 32 : TH sends the unlock Door command to the DUT with valid PINCode and Verify that DUT sends " "SUCCESS response to the TH\n"); if (ShouldSkip("PICS_USER_PROMPT && DRLK.S.C01.Rsp")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCodeAndVerifyThatDutSendsSuccessResponseToTheTh_33(); + err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCodeAndVerifyThatDutSendsSuccessResponseToTheTh_32(); break; - case 34: + case 33: ChipLogProgress(chipTool, - " ***** Test Step 34 : TH reads LockState attribute after AutoRelockTime Expires and Verify that the DUT is " + " ***** Test Step 33 : TH reads LockState attribute after AutoRelockTime Expires and Verify that the DUT is " "locked.\n"); if (ShouldSkip("PICS_USER_PROMPT && DRLK.S.A0000")) { NextTest(); return; } - err = TestThReadsLockStateAttributeAfterAutoRelockTimeExpiresAndVerifyThatTheDutIsLocked_34(); + err = TestThReadsLockStateAttributeAfterAutoRelockTimeExpiresAndVerifyThatTheDutIsLocked_33(); break; - case 35: - ChipLogProgress(chipTool, " ***** Test Step 35 : Cleanup the created user\n"); - err = TestCleanupTheCreatedUser_35(); + case 34: + ChipLogProgress(chipTool, " ***** Test Step 34 : Cleanup the created user\n"); + err = TestCleanupTheCreatedUser_34(); break; - case 36: - ChipLogProgress(chipTool, " ***** Test Step 36 : Clean the created credential\n"); + case 35: + ChipLogProgress(chipTool, " ***** Test Step 35 : Clean the created credential\n"); if (ShouldSkip("DRLK.S.C26.Rsp")) { NextTest(); return; } - err = TestCleanTheCreatedCredential_36(); + err = TestCleanTheCreatedCredential_35(); break; } @@ -120149,10 +121940,10 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -120164,34 +121955,34 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 11: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + 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)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); break; case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); break; case 16: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 17: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 18: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 19: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 20: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); break; case 21: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); @@ -120203,25 +121994,25 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); break; case 24: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 25: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); break; case 26: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 28: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 29: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 30: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -120238,9 +122029,6 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 36: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; } // Go on to the next test. @@ -120251,7 +122039,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 37; + const uint16_t mTestCount = 36; chip::Optional mNodeId; chip::Optional mCluster; @@ -120465,27 +122253,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestPreconditionDoorIsInLockedState_5() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRDoorLockClusterLockDoorParams alloc] init]; - params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; - [cluster lockDoorWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Precondition: Door is in locked state Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_6() + CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120507,7 +122275,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_7() + CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120533,7 +122301,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_8() + CHIP_ERROR TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120556,7 +122324,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_9() + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_8() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120575,7 +122343,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_10() + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120595,7 +122363,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_11() + CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120617,7 +122385,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_12() + CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120643,7 +122411,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_13() + CHIP_ERROR TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_12() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120666,7 +122434,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_14() + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_13() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120686,7 +122454,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_15() + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_14() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120708,7 +122476,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_16() + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_15() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120729,7 +122497,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyThatTheDutSendsSuccessResponse_17() + CHIP_ERROR TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyThatTheDutSendsSuccessResponse_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120751,7 +122519,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_18() + CHIP_ERROR TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120777,7 +122545,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_19() + CHIP_ERROR TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120800,7 +122568,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_20() + CHIP_ERROR TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_19() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120827,6 +122595,28 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_20() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"1234568" length:7]; + [cluster + unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT with invalid PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code : EMBER_ZCL_STATUS_FAILURE) : 0, + EMBER_ZCL_STATUS_FAILURE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_21() { MTRBaseDevice * device = GetDevice("alpha"); @@ -120893,29 +122683,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_24() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; - params.pinCode = [[NSData alloc] initWithBytes:"1234568" length:7]; - [cluster - unlockDoorWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"TH sends the unlock Door command to the DUT with invalid PINCode Error: %@", err); - - VerifyOrReturn(CheckValue("status", - err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code : EMBER_ZCL_STATUS_FAILURE) : 0, - EMBER_ZCL_STATUS_FAILURE)); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDutAndCheckAttributeIsTriggered_25() + CHIP_ERROR TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDutAndCheckAttributeIsTriggered_24() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120939,7 +122707,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_26() + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_25() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120961,7 +122729,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_27() + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_26() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120981,7 +122749,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_28() + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_27() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121001,7 +122769,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_29() + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_28() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121025,7 +122793,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_30() + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_29() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121049,7 +122817,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsTheAutoRelockTimeAttributeFromTheDut_31() + CHIP_ERROR TestThReadsTheAutoRelockTimeAttributeFromTheDut_30() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121071,7 +122839,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsTheAutoRelockTimeAttributeFromTheDut_32() + CHIP_ERROR TestThReadsTheAutoRelockTimeAttributeFromTheDut_31() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121093,7 +122861,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCodeAndVerifyThatDutSendsSuccessResponseToTheTh_33() + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCodeAndVerifyThatDutSendsSuccessResponseToTheTh_32() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); @@ -121102,7 +122870,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestThReadsLockStateAttributeAfterAutoRelockTimeExpiresAndVerifyThatTheDutIsLocked_34() + CHIP_ERROR TestThReadsLockStateAttributeAfterAutoRelockTimeExpiresAndVerifyThatTheDutIsLocked_33() { chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); @@ -121111,7 +122879,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestCleanupTheCreatedUser_35() + CHIP_ERROR TestCleanupTheCreatedUser_34() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121131,7 +122899,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCleanTheCreatedCredential_36() + CHIP_ERROR TestCleanTheCreatedCredential_35() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121214,112 +122982,56 @@ class Test_TC_DRLK_2_4 : public TestCommandBridge { err = TestVerifyCreatedPinCredential_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Precondition: Door is in locked state\n"); - if (ShouldSkip("DRLK.S.C00.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 5 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); + if (ShouldSkip("DRLK.S.A0023")) { NextTest(); return; } - err = TestPreconditionDoorIsInLockedState_5(); + err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); - if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { + ChipLogProgress(chipTool, " ***** Test Step 6 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); + if (ShouldSkip(" !DRLK.S.A0023 ")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_6(); + err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); - if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : TH sends the Unlock with Timeout argument value as 60 seconds\n"); + if (ShouldSkip("DRLK.S.C03.Rsp")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_7(); + err = TestThSendsTheUnlockWithTimeoutArgumentValueAs60Seconds_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); - if (ShouldSkip("!DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { + ChipLogProgress(chipTool, " ***** Test Step 8 : Wait 60s\n"); + if (ShouldSkip("DRLK.S.C03.Rsp")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_8(); + err = TestWait60s_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); - if (ShouldSkip("!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { + ChipLogProgress(chipTool, " ***** Test Step 9 : TH reads LockState attribute\n"); + if (ShouldSkip("DRLK.S.A0000 && DRLK.S.C03.Rsp")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_9(); + err = TestThReadsLockStateAttribute_9(); break; case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : TH sends the unlock with Timeout command to the DUT \n"); - if (ShouldSkip("DRLK.S.C03.Rsp && PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestThSendsTheUnlockWithTimeoutCommandToTheDut_10(); + ChipLogProgress(chipTool, " ***** Test Step 10 : Cleanup the created user\n"); + err = TestCleanupTheCreatedUser_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : TH sends the unlock with Timeout command to the DUT \n"); - if (ShouldSkip("DRLK.S.C03.Rsp && PICS_SKIP_SAMPLE_APP")) { - NextTest(); - return; - } - err = TestThSendsTheUnlockWithTimeoutCommandToTheDut_11(); - break; - case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads AutoRelockTime attribute from DUT\n"); - if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestThReadsAutoRelockTimeAttributeFromDut_12(); - break; - case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads AutoRelockTime attribute from DUT\n"); - if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { - NextTest(); - return; - } - err = TestThReadsAutoRelockTimeAttributeFromDut_13(); - break; - case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 10000ms\n"); - if (ShouldSkip("PICS_SDK_CI_ONLY")) { - NextTest(); - return; - } - err = TestWait10000ms_14(); - break; - case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : Wait 70000ms\n"); - if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) { - NextTest(); - return; - } - err = TestWait70000ms_15(); - break; - case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads LockState attribute\n"); - if (ShouldSkip("DRLK.S.A0000")) { - NextTest(); - return; - } - err = TestThReadsLockStateAttribute_16(); - break; - case 17: - ChipLogProgress(chipTool, " ***** Test Step 17 : Cleanup the created user\n"); - err = TestCleanupTheCreatedUser_17(); - break; - case 18: - ChipLogProgress(chipTool, " ***** Test Step 18 : Clean the created credential\n"); + ChipLogProgress(chipTool, " ***** Test Step 11 : Clean the created credential\n"); if (ShouldSkip("DRLK.S.C26.Rsp")) { NextTest(); return; } - err = TestCleanTheCreatedCredential_18(); + err = TestCleanTheCreatedCredential_11(); break; } @@ -121351,16 +123063,16 @@ class Test_TC_DRLK_2_4 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -121368,38 +123080,20 @@ class Test_TC_DRLK_2_4 : 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; } // Go on to the next test. ContinueOnChipMainThread(CHIP_NO_ERROR); } - chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 19; + const uint16_t mTestCount = 12; chip::Optional mNodeId; chip::Optional mCluster; @@ -121613,47 +123307,7 @@ class Test_TC_DRLK_2_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestPreconditionDoorIsInLockedState_5() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRDoorLockClusterLockDoorParams alloc] init]; - params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; - [cluster lockDoorWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Precondition: Door is in locked state Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_6() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - id autoRelockTimeArgument; - autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:10UL]; - [cluster writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument - completionHandler:^(NSError * _Nullable err) { - NSLog(@"TH writes AutoRelockTime attribute value as 10 seconds on the DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_7() + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_5() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121673,31 +123327,7 @@ class Test_TC_DRLK_2_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_8() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - id autoRelockTimeArgument; - autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:10UL]; - [cluster - writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument - completionHandler:^(NSError * _Nullable err) { - NSLog(@"TH writes AutoRelockTime attribute value as 10 seconds on the DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", - err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code - : EMBER_ZCL_STATUS_FAILURE) - : 0, - EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_9() + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_6() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121721,28 +123351,7 @@ class Test_TC_DRLK_2_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockWithTimeoutCommandToTheDut_10() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRDoorLockClusterUnlockWithTimeoutParams alloc] init]; - params.timeout = [NSNumber numberWithUnsignedShort:10U]; - params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; - [cluster unlockWithTimeoutWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"TH sends the unlock with Timeout command to the DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestThSendsTheUnlockWithTimeoutCommandToTheDut_11() + CHIP_ERROR TestThSendsTheUnlockWithTimeoutArgumentValueAs60Seconds_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121753,7 +123362,7 @@ class Test_TC_DRLK_2_4 : public TestCommandBridge { params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; [cluster unlockWithTimeoutWithParams:params completionHandler:^(NSError * _Nullable err) { - NSLog(@"TH sends the unlock with Timeout command to the DUT Error: %@", err); + NSLog(@"TH sends the Unlock with Timeout argument value as 60 seconds Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -121763,65 +123372,14 @@ class Test_TC_DRLK_2_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsAutoRelockTimeAttributeFromDut_12() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAutoRelockTimeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads AutoRelockTime attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("AutoRelockTime", actualValue, 10UL)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestThReadsAutoRelockTimeAttributeFromDut_13() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAutoRelockTimeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads AutoRelockTime attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("AutoRelockTime", actualValue, 60UL)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait10000ms_14() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 10000UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestWait70000ms_15() + CHIP_ERROR TestWait60s_8() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 70000UL; + value.ms = 60000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestThReadsLockStateAttribute_16() + CHIP_ERROR TestThReadsLockStateAttribute_9() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121844,7 +123402,7 @@ class Test_TC_DRLK_2_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCleanupTheCreatedUser_17() + CHIP_ERROR TestCleanupTheCreatedUser_10() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -121864,7 +123422,7 @@ class Test_TC_DRLK_2_4 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCleanTheCreatedCredential_18() + CHIP_ERROR TestCleanTheCreatedCredential_11() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -123401,7 +124959,7 @@ class Test_TC_DRLK_2_9 : public TestCommandBridge { case 3: ChipLogProgress( chipTool, " ***** Test Step 3 : TH reads NumberOfTotalUsersSupported attribute and saves for future use.\n"); - if (ShouldSkip("DRLK.C.F08 && DRLK.S.A0011")) { + if (ShouldSkip("DRLK.S.F08 && DRLK.S.A0011")) { NextTest(); return; } @@ -123511,6 +125069,10 @@ class Test_TC_DRLK_2_9 : public TestCommandBridge { break; case 16: ChipLogProgress(chipTool, " ***** Test Step 16 : TH sends Set User Command to DUT\n"); + if (ShouldSkip("DRLK.S.F08 && DRLK.S.C1a.Rsp")) { + NextTest(); + return; + } err = TestThSendsSetUserCommandToDut_16(); break; case 17: @@ -123905,7 +125467,7 @@ class Test_TC_DRLK_2_9 : public TestCommandBridge { ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:2U]; params.credentialData = [[NSData alloc] initWithBytes:"4321" length:4]; - params.userIndex = [NSNumber numberWithUnsignedShort:2U]; + params.userIndex = nil; params.userStatus = [NSNumber numberWithUnsignedChar:5U]; params.userType = [NSNumber numberWithUnsignedChar:10U]; [cluster @@ -123950,7 +125512,7 @@ class Test_TC_DRLK_2_9 : public TestCommandBridge { ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:2U]; params.credentialData = [[NSData alloc] initWithBytes:"123456" length:6]; - params.userIndex = [NSNumber numberWithUnsignedShort:2U]; + params.userIndex = nil; params.userStatus = nil; params.userType = nil; [cluster @@ -123995,7 +125557,7 @@ class Test_TC_DRLK_2_9 : public TestCommandBridge { ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:1U]; params.credentialData = [[NSData alloc] initWithBytes:"123456" length:6]; - params.userIndex = [NSNumber numberWithUnsignedShort:2U]; + params.userIndex = [NSNumber numberWithUnsignedShort:1U]; params.userStatus = nil; params.userType = nil; [cluster @@ -124047,10 +125609,10 @@ class Test_TC_DRLK_2_9 : public TestCommandBridge { params.operationType = [NSNumber numberWithUnsignedChar:0U]; params.credential = [[MTRDoorLockClusterDlCredential alloc] init]; ((MTRDoorLockClusterDlCredential *) params.credential).credentialType = [NSNumber numberWithUnsignedChar:1U]; - ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:3U]; + ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:1U]; params.credentialData = [[NSData alloc] initWithBytes:"123456" length:6]; - params.userIndex = [NSNumber numberWithUnsignedShort:3U]; + params.userIndex = [NSNumber numberWithUnsignedShort:1U]; params.userStatus = nil; params.userType = nil; [cluster @@ -124073,7 +125635,7 @@ class Test_TC_DRLK_2_9 : public TestCommandBridge { { id actualValue = values.nextCredentialIndex; VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", actualValue)); - VerifyOrReturn(CheckValue("nextCredentialIndex", actualValue, 4U)); + VerifyOrReturn(CheckValue("nextCredentialIndex", actualValue, 2U)); } NextTest(); @@ -124105,7 +125667,7 @@ class Test_TC_DRLK_2_9 : public TestCommandBridge { ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:3U]; params.credentialData = [[NSData alloc] initWithBytes:"123456" length:6]; - params.userIndex = [NSNumber numberWithUnsignedShort:2U]; + params.userIndex = [NSNumber numberWithUnsignedShort:1U]; params.userStatus = nil; params.userType = nil; [cluster @@ -126499,12 +128061,12 @@ class Test_TC_G_1_1 : public TestCommandBridge { err = TestThReadsTheFeatureMapFromDut_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads the FeatureMap from DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads the FeatureMap(G.S.F00) from DUT\n"); if (ShouldSkip("G.S.F00")) { NextTest(); return; } - err = TestThReadsTheFeatureMapFromDut_3(); + err = TestThReadsTheFeatureMapGSF00FromDut_3(); break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads AttributeList from DUT\n"); @@ -126623,22 +128185,17 @@ class Test_TC_G_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsTheFeatureMapFromDut_3() + CHIP_ERROR TestThReadsTheFeatureMapGSF00FromDut_3() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterGroups * cluster = [[MTRBaseClusterGroups alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeFeatureMapWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads the FeatureMap from DUT Error: %@", err); + NSLog(@"TH reads the FeatureMap(G.S.F00) from DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = value; - VerifyOrReturn(CheckValue("FeatureMap", actualValue, 1UL)); - } - VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); NextTest(); }]; @@ -126782,7 +128339,7 @@ void registerCommandsTests(Commands & commands) make_unique(), make_unique(), make_unique(), - make_unique(), + make_unique(), make_unique(), make_unique(), make_unique(),