diff --git a/examples/placeholder/linux/apps/app1/ciTests.json b/examples/placeholder/linux/apps/app1/ciTests.json index a54ee164a0d197..2a505b5fa74961 100644 --- a/examples/placeholder/linux/apps/app1/ciTests.json +++ b/examples/placeholder/linux/apps/app1/ciTests.json @@ -1,12 +1,20 @@ { "Test": [ "Test_TC_BINFO_2_3_Simulated", + "Test_TC_ACT_3_1_Simulated", + "Test_TC_BOOL_3_1_Simulated", "Test_TC_DESC_2_2_Simulated", "Test_TC_DGETH_3_1_Simulated", "Test_TC_DGSW_3_1_Simulated", "Test_TC_DGWIFI_3_1_Simulated", + "Test_TC_FLW_3_1_Simulated", "Test_TC_G_3_1_Simulated", + "Test_TC_I_3_1_Simulated", + "Test_TC_PRS_3_1_Simulated", + "Test_TC_PS_3_1_Simulated", + "Test_TC_PSCFG_3_1_Simulated", "Test_TC_RH_3_1_Simulated", + "Test_TC_SWTCH_3_1_Simulated", "Test_TC_WNCV_5_1_Simulated", "Test_TC_LCFG_3_1_Simulated", "Test_TC_LUNIT_1_1_Simulated", diff --git a/src/app/tests/suites/certification/Test_TC_ACE_1_2.yaml b/src/app/tests/suites/certification/Test_TC_ACE_1_2.yaml index 87aa79cae6913e..bf0318b3a244f7 100644 --- a/src/app/tests/suites/certification/Test_TC_ACE_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACE_1_2.yaml @@ -37,8 +37,14 @@ tests: - label: "TH1 commissions DUT" verification: | - DUT is commissioned on TH1 fabric + execute the below mentioned command to put DUT into a commissionable state, Pls use equivalent command on the respective DUT + ./chip-all-clusters-app + Once DUT reach the commissionable state pls send below mentioned command on TH1. Pls use equivalent command on the respective DUT + ./chip-tool pairing onnetwork 1 20202021 + + Please use Interactive mode to Verify this test case + Here the command to enter interactive mode:-- ./chip-tool interactive start disabled: true - label: @@ -47,70 +53,50 @@ tests: Administer (5) AuthMode field: CASE (2) Subjects field: [N1, N2] Targets field: [{Endpoint: 0}]" verification: | - Pls run this test in chip tool interactive mode using the command ./chip-tool interactive start - - accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": [{ "cluster": null, "endpoint": 0, "deviceType": null }]}]' 1 0 - On TH(Chiptool)1,Verify successfully ACL attribute with a list of AccessControlEntryStruct entries containing 1 element. - [1659508250.468539][10228:10233] CHIP:EM: Removed CHIP MessageCounter:188603873 from RetransTable on exchange 14900i - [1659508250.468582][10228:10233] CHIP:DMG: WriteClient moving to [ResponseRe] - [1659508250.468646][10228:10233] CHIP:DMG: WriteResponseMessage = - [1659508250.468679][10228:10233] CHIP:DMG: { - [1659508250.468706][10228:10233] CHIP:DMG: AttributeStatusIBs = - [1659508250.468745][10228:10233] CHIP:DMG: [ - [1659508250.468775][10228:10233] CHIP:DMG: AttributeStatusIB = - [1659508250.468809][10228:10233] CHIP:DMG: { - [1659508250.468841][10228:10233] CHIP:DMG: AttributePathIB = - [1659508250.468881][10228:10233] CHIP:DMG: { - [1659508250.468922][10228:10233] CHIP:DMG: Endpoint = 0x0, - [1659508250.468964][10228:10233] CHIP:DMG: Cluster = 0x1f, - [1659508250.469005][10228:10233] CHIP:DMG: Attribute = 0x0000_0000, - [1659508250.469044][10228:10233] CHIP:DMG: } - [1659508250.469087][10228:10233] CHIP:DMG: - [1659508250.469124][10228:10233] CHIP:DMG: StatusIB = - [1659508250.469163][10228:10233] CHIP:DMG: { - [1659508250.469202][10228:10233] CHIP:DMG: status = 0x00 (SUCCESS), - [1659508250.469240][10228:10233] CHIP:DMG: }, - [1659508250.469279][10228:10233] CHIP:DMG: - [1659508250.469310][10228:10233] CHIP:DMG: }, - [1659508250.469354][10228:10233] CHIP:DMG: - [1659508250.469384][10228:10233] CHIP:DMG: AttributeStatusIB = - [1659508250.469417][10228:10233] CHIP:DMG: { - [1659508250.469448][10228:10233] CHIP:DMG: AttributePathIB = - [1659508250.469485][10228:10233] CHIP:DMG: { - [1659508250.469523][10228:10233] CHIP:DMG: Endpoint = 0x0, - [1659508250.469564][10228:10233] CHIP:DMG: Cluster = 0x1f, - [1659508250.469604][10228:10233] CHIP:DMG: Attribute = 0x0000_0000, - [1659508250.469644][10228:10233] CHIP:DMG: ListIndex = Null, - [1659508250.469682][10228:10233] CHIP:DMG: } - [1659508250.469723][10228:10233] CHIP:DMG: - [1659508250.469759][10228:10233] CHIP:DMG: StatusIB = - [1659508250.469796][10228:10233] CHIP:DMG: { - [1659508250.469834][10228:10233] CHIP:DMG: status = 0x00 (SUCCESS), - [1659508250.469873][10228:10233] CHIP:DMG: }, - [1659508250.469912][10228:10233] CHIP:DMG: - [1659508250.469943][10228:10233] CHIP:DMG: }, - [1659508250.469979][10228:10233] CHIP:DMG: - [1659508250.470007][10228:10233] CHIP:DMG: ], - [1659508250.470048][10228:10233] CHIP:DMG: - [1659508250.470077][10228:10233] CHIP:DMG: InteractionModelRevision = 1 - [1659508250.470105][10228:10233] CHIP:DMG: } - [1659508250.470228][10228:10233] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1659508250.470299][10228:10233] CHIP:EM: Sending Standalone Ack for MessageCounter:48929405 on exchange 14900i - [1659508250.470380][10228:10233] CHIP:IN: Prepared secure message 0xffff994999e8 to 0x0000000000000001 (1) of type 0x10 and protocolId (0, 0) on exchange 14900i with MessageCounter:188603874. - [1659508250.470426][10228:10233] CHIP:IN: Sending encrypted msg 0xffff994999e8 with MessageCounter:188603874 to 0x0000000000000001 (1) at monotonic time: 000000000598DDBE msec - [1659508250.470575][10228:10233] CHIP:EM: Flushed pending ack for MessageCounter:48929405 on exchange 14900i - [1659508250.470779][10228:10228] CHIP:CTL: Shutting down the commissioner - [1659508250.470818][10228:10228] CHIP:CTL: Stopping commissioning discovery over DNS-SD - [1659508250.470842][10228:10228] CHIP:CTL: Shutting down the controller - [1659508250.470874][10228:10228] CHIP:IN: Expiring all sessions for fabric 0x1!! - [1659508250.470904][10228:10228] CHIP:IN: SecureSession[0xffff84001930]: MarkForEviction Type:2 LSID:16459 - [1659508250.470931][10228:10228] CHIP:SC: SecureSession[0xffff84001930]: Moving from state "kActive" --> "kPendingEviction" - [1659508250.470959][10228:10228] CHIP:IN: SecureSession[0xffff84001930]: Released - Type:2 LSID:16459 - [1659508250.470990][10228:10228] CHIP:FP: Forgetting fabric 0x1 - [1659508250.471029][10228:10228] CHIP:TS: Pending Last Known Good Time: 2022-08-01T09:44:35 - [1659508250.471248][10228:10228] CHIP:TS: Previous Last Known Good Time: 2022-08-01T09:44:35 - [1659508250.471279][10228:10228] CHIP:TS: Reverted Last Known Good Time to previous value - [1659508250.471327][10228:10228] CHIP:CTL: Shutting down the commissioner + accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": [{ "cluster": null, "endpoint": 0, "deviceType": null }]}]' 1 0 --commissioner-nodeid 0x1 + + [1675235747.672953][1933:1935] CHIP:DMG: WriteResponseMessage = + [1675235747.673017][1933:1935] CHIP:DMG: { + [1675235747.673072][1933:1935] CHIP:DMG: AttributeStatusIBs = + [1675235747.673150][1933:1935] CHIP:DMG: [ + [1675235747.673212][1933:1935] CHIP:DMG: AttributeStatusIB = + [1675235747.673293][1933:1935] CHIP:DMG: { + [1675235747.673359][1933:1935] CHIP:DMG: AttributePathIB = + [1675235747.673447][1933:1935] CHIP:DMG: { + [1675235747.673528][1933:1935] CHIP:DMG: Endpoint = 0x0, + [1675235747.673613][1933:1935] CHIP:DMG: Cluster = 0x1f, + [1675235747.673705][1933:1935] CHIP:DMG: Attribute = 0x0000_0000, + [1675235747.673783][1933:1935] CHIP:DMG: } + [1675235747.673872][1933:1935] CHIP:DMG: + [1675235747.673949][1933:1935] CHIP:DMG: StatusIB = + [1675235747.674035][1933:1935] CHIP:DMG: { + [1675235747.674117][1933:1935] CHIP:DMG: status = 0x7e (UNSUPPORTED_ACCESS), + [1675235747.674197][1933:1935] CHIP:DMG: }, + [1675235747.674277][1933:1935] CHIP:DMG: + [1675235747.674346][1933:1935] CHIP:DMG: }, + [1675235747.674441][1933:1935] CHIP:DMG: + [1675235747.674502][1933:1935] CHIP:DMG: AttributeStatusIB = + [1675235747.674575][1933:1935] CHIP:DMG: { + [1675235747.674645][1933:1935] CHIP:DMG: AttributePathIB = + [1675235747.674722][1933:1935] CHIP:DMG: { + [1675235747.674802][1933:1935] CHIP:DMG: Endpoint = 0x0, + [1675235747.674886][1933:1935] CHIP:DMG: Cluster = 0x1f, + [1675235747.675034][1933:1935] CHIP:DMG: Attribute = 0x0000_0000, + [1675235747.675125][1933:1935] CHIP:DMG: ListIndex = Null, + [1675235747.675203][1933:1935] CHIP:DMG: } + [1675235747.675289][1933:1935] CHIP:DMG: + [1675235747.675365][1933:1935] CHIP:DMG: StatusIB = + [1675235747.675437][1933:1935] CHIP:DMG: { + [1675235747.675501][1933:1935] CHIP:DMG: status = 0x7e (UNSUPPORTED_ACCESS), + [1675235747.675587][1933:1935] CHIP:DMG: }, + [1675235747.675663][1933:1935] CHIP:DMG: + [1675235747.675732][1933:1935] CHIP:DMG: }, + [1675235747.675811][1933:1935] CHIP:DMG: + [1675235747.675871][1933:1935] CHIP:DMG: ], + [1675235747.675954][1933:1935] CHIP:DMG: + [1675235747.676015][1933:1935] CHIP:DMG: InteractionModelRevision = 1 + [1675235747.676074][1933:1935] CHIP:DMG: } + [1675235747.676309][1933:1935] CHIP:DMG: WriteClient moving to [AwaitingDe] disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_ACE_1_5.yaml b/src/app/tests/suites/certification/Test_TC_ACE_1_5.yaml index 7e26b7982030fb..ff6b06f573fcd3 100644 --- a/src/app/tests/suites/certification/Test_TC_ACE_1_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACE_1_5.yaml @@ -52,10 +52,40 @@ tests: response: saveAs: th1FabricIndex + - label: + "Step 3 & 4: TH1 puts DUT into commissioning mode, TH2 commissions DUT + using admin node ID N2" + verification: | + Open a commissioning window On TH1(Chiptool)using below command + + ./chip-tool pairing open-commissioning-window 1 1 400 2000 3841 + + [1657186324.710951][10820:10825] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000 Status=0x0 + [1657186324.710980][10820:10825] CHIP:CTL: Successfully opened pairing window On TH(Chiptool)e device + [1657186324.711048][10820:10825] CHIP:CTL: Manual pairing code: [36253605617] + [1657186324.711108][10820:10825] CHIP:CTL: SetupQRCode: [MT:-24J0IRV01A7TB7E700] + + + Commission TH2(Chiptool) to DUT using manualcode generated in TH1 using open commission window + + ./chip-tool pairing code 2 36253605617 --commissioner-name beta --commissioner-nodeid 223344 + [1657186359.584672][3509:3514] CHIP:CTL: Successfully finished commissioning step 'Cleanup' + [1657186359.584743][3509:3514] CHIP:TOO: Device commissioning completed with success + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" + - label: "Open Commissioning Window from alpha" cluster: "Administrator Commissioning" command: "OpenCommissioningWindow" timedInteractionTimeoutMs: 10000 + PICS: PICS_SDK_CI_ONLY arguments: values: - name: "CommissioningTimeout" @@ -72,6 +102,7 @@ tests: - label: "Waiting after opening commissioning window" cluster: "DelayCommands" command: "WaitForMs" + PICS: PICS_SDK_CI_ONLY arguments: values: - name: "ms" @@ -81,6 +112,7 @@ tests: identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" + PICS: PICS_SDK_CI_ONLY arguments: values: - name: "nodeId" @@ -92,6 +124,7 @@ tests: identity: beta cluster: "DelayCommands" command: "WaitForCommissionee" + PICS: PICS_SDK_CI_ONLY arguments: values: - name: "nodeId" diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml index 215cac7e23eb19..3bf2ea7996a829 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml @@ -445,4 +445,12 @@ tests: command: "writeAttribute" attribute: "ACL" arguments: - value: [] + value: [ + { + FabricIndex: 1, + Privilege: 5, # administer + AuthMode: 2, # case + Subjects: [TH1CommissionerNodeId], + Targets: null, + }, + ] diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml index ab072552b44dc2..ac498dc6ff9d8a 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml @@ -1446,4 +1446,12 @@ tests: command: "writeAttribute" attribute: "ACL" arguments: - value: [] + value: [ + { + FabricIndex: 1, + Privilege: 5, # administer + AuthMode: 2, # case + Subjects: [CommissionerNodeId], + Targets: null, + }, + ] 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 477117eccec467..7f83a2ba355c9c 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 @@ -89,8 +89,8 @@ tests: struct Data field: D_OK_EMPTY" 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 + ./chip-tool accesscontrol write extension '[{"data":"1718"}]' 1 0 + On TH1(Chiperify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element 217.510779][2371:2376] CHIP:DMG: AttributePathIB = [1657284217.510818][2371:2376] CHIP:DMG: { @@ -165,7 +165,7 @@ tests: struct Data field: D_OK_SINGLE" PICS: ACL.S.A0001 verification: | - ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 1 0 + ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 1 0 On TH1(Chiptool) , Verify Successfully extension attribute list containing one element 7284747.131523][2411:2416] CHIP:DMG: StatusIB = [1657284747.131568][2411:2416] CHIP:DMG: { @@ -245,7 +245,7 @@ tests: struct Data field: D_BAD_LENGTH" PICS: ACL.S.A0001 verification: | - ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018"}]" 1 0 + ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018"}]' 1 0 On TH1(Chiptool) , Verify AccessControl cluster Extension attribute value is list of AccessControlExtensionStruct containing 1 element Data, exceeds maximum length. @@ -298,7 +298,7 @@ tests: struct Data field: D_OK_EMPTY struct Data field: D_OK_SINGLE" PICS: ACL.S.A0001 verification: | - ./chip-tool accesscontrol write extension "[{"data":"1718"},{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 1 0 + ./chip-tool accesscontrol write extension '[{"data":"1718"},{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 1 0 On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 2 elements Returns 0x87 (CONSTRAINT_ERROR)-as there are more than 1 entry @@ -351,7 +351,7 @@ tests: value is an empty list" PICS: ACL.S.A0001 verification: | - ./chip-tool accesscontrol write extension "[]" 1 0 + ./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_ACL_2_9.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml index 18ec33dcac50b2..21bc25991438c5 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml @@ -146,7 +146,7 @@ tests: attribute: "AccessControlEntriesPerFabric" response: constraints: - minValue: 3 + minValue: 4 - label: "TH1 reads DUT Endpoint 0 AccessControl cluster 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 389cd2e5c5a564..f910cb9f39f9b4 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 @@ -447,8 +447,8 @@ tests: disabled: true - label: - "Verify SetupURL appended by ?/a= and the decimal numeric value of one - of the exposed ActionIDs (see step 5a) points to a site providing + "Verify SetupURL appended by '?/a='' and the decimal numeric value of + one of the exposed ActionIDs (see step 5a) points to a site providing information about the action" PICS: ACT.S.A0002 && ACT.S.M.SetupURLWithSuffix verification: | 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_Simulated.yaml similarity index 58% rename from src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_ACT_3_1_Simulated.yaml index 26cdf351ae5f99..ba30cad1ed39ac 100644 --- a/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACT_3_1_Simulated.yaml @@ -11,7 +11,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: 77.2.3. [TC-ACT-3.1] GLobal attributes with client as DUT @@ -24,368 +23,28 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Actions" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" + - label: "Read attribute: ActionList" PICS: ACT.C.AM-READ - verification: | - ./chip-tool actions read action-list 1 1 - - Verify read command is received on TH(bridge-app) - - [1666945367.158532][5173:5173] CHIP:EM: Handling via exchange: 20857r, Delegate: 0xaaaadf4c9810 - [1666945367.158636][5173:5173] CHIP:IM: Received Read request - [1666945367.158862][5173:5173] CHIP:DMG: ReadRequestMessage = - [1666945367.158934][5173:5173] CHIP:DMG: { - [1666945367.158989][5173:5173] CHIP:DMG: AttributePathIBs = - [1666945367.159116][5173:5173] CHIP:DMG: [ - [1666945367.159185][5173:5173] CHIP:DMG: AttributePathIB = - [1666945367.159263][5173:5173] CHIP:DMG: { - [1666945367.159341][5173:5173] CHIP:DMG: Endpoint = 0x1, - [1666945367.159424][5173:5173] CHIP:DMG: Cluster = 0x25, - [1666945367.159511][5173:5173] CHIP:DMG: Attribute = 0x0000_0000, - [1666945367.159594][5173:5173] CHIP:DMG: } - [1666945367.159749][5173:5173] CHIP:DMG: - [1666945367.159824][5173:5173] CHIP:DMG: ], - [1666945367.159902][5173:5173] CHIP:DMG: - [1666945367.159970][5173:5173] CHIP:DMG: isFabricFiltered = true, - [1666945367.160034][5173:5173] CHIP:DMG: InteractionModelRevision = 1 - [1666945367.160093][5173:5173] CHIP:DMG: }, - [1666945367.160257][5173:5173] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666945367.160475][5173:5173] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666945367.160548][5173:5173] CHIP:DMG: Cluster 25, Attribute 0 is dirty - [1666945367.160603][5173:5173] CHIP:DMG: Reading attribute: Cluster=0x0000_0025 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1666945367.160671][5173:5173] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0025 e=1 p=v - [1666945367.160747][5173:5173] CHIP:DMG: AccessControl: allowed - [1666945367.160913][5173:5173] CHIP:DMG: Sending report (payload has 155 bytes)... - [1666945367.161498][5173:5173] CHIP:EM: <<< [E:20857r M:138028988 (Ack:169257953)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666945367.161605][5173:5173] CHIP:IN: (S) Sending msg 138028988 on secure session with LSID: 20125 - [1666945367.162586][5173:5173] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:41321 | 138028988 | [Interaction Model (1) / Report Data (0x05) / Session = 29898 / Exchange = 20857] - [1666945367.162687][5173:5173] CHIP:DMG: Header Flags = - [1666945367.162775][5173:5173] CHIP:DMG: { - [1666945367.162866][5173:5173] CHIP:DMG: Exchange (0x06) = - [1666945367.162991][5173:5173] CHIP:DMG: { - [1666945367.163055][5173:5173] CHIP:DMG: AckMsg = 169257953 - [1666945367.163106][5173:5173] CHIP:DMG: NeedsAck = true - [1666945367.163159][5173:5173] CHIP:DMG: } - [1666945367.163232][5173:5173] CHIP:DMG: } - [1666945367.163286][5173:5173] CHIP:DMG: - [1666945367.163352][5173:5173] CHIP:DMG: Encrypted Payload (189 bytes) = - [1666945367.163408][5173:5173] CHIP:DMG: { - [1666945367.163462][5173:5173] CHIP:DMG: data = 00ca7400bc273a08f682a81496a23fa7dd61b20f79cf2f49c0212e2f84c9d79e55c7713849c017379eeaa97a5c2ee740db6d7cf82ccaab1489dde78617f353c9a4e96845f9d7daf859ffa37e0c1cca4c6c5b10810097f698bc15b96df2eb525180ea1ce652f7316488ae2d6f3eb729dd7c4cd07e5ba7f3a882dc4fb59ebb8996fc6da638112cb71948aee3f90dc6e00912fa34c8cb38e7b84a2f3535a86f49aa1c1ea65beea905ce4c6036e94445a7752d4cbd7b8e78375602b6ea2883 - [1666945367.163524][5173:5173] CHIP:DMG: buffer_ptr = 187651807708480 - [1666945367.163579][5173:5173] CHIP:DMG: } - [1666945367.163630][5173:5173] CHIP:DMG: - [1666945367.163907][5173:5173] CHIP:DMG: ReportDataMessage = - [1666945367.164035][5173:5173] CHIP:DMG: { - [1666945367.164094][5173:5173] CHIP:DMG: AttributeReportIBs = - [1666945367.164173][5173:5173] CHIP:DMG: [ - [1666945367.164236][5173:5173] CHIP:DMG: AttributeReportIB = - [1666945367.164326][5173:5173] CHIP:DMG: { - [1666945367.164395][5173:5173] CHIP:DMG: AttributeDataIB = - [1666945367.164474][5173:5173] CHIP:DMG: { - [1666945367.164642][5173:5173] CHIP:DMG: DataVersion = 0x291b69b6, - [1666945367.164729][5173:5173] CHIP:DMG: AttributePathIB = - [1666945367.164814][5173:5173] CHIP:DMG: { - [1666945367.164909][5173:5173] CHIP:DMG: Endpoint = 0x1, - [1666945367.165007][5173:5173] CHIP:DMG: Cluster = 0x25, - [1666945367.165099][5173:5173] CHIP:DMG: Attribute = 0x0000_0000, - [1666945367.165182][5173:5173] CHIP:DMG: } - [1666945367.165354][5173:5173] CHIP:DMG: - [1666945367.165431][5173:5173] CHIP:DMG: Data = [ - [1666945367.165514][5173:5173] CHIP:DMG: - [1666945367.165601][5173:5173] CHIP:DMG: ], - [1666945367.165681][5173:5173] CHIP:DMG: }, - [1666945367.165775][5173:5173] CHIP:DMG: - [1666945367.165840][5173:5173] CHIP:DMG: }, - [1666945367.165990][5173:5173] CHIP:DMG: - [1666945367.166055][5173:5173] CHIP:DMG: AttributeReportIB = - [1666945367.166151][5173:5173] CHIP:DMG: { - [1666945367.166223][5173:5173] CHIP:DMG: AttributeDataIB = - [1666945367.166303][5173:5173] CHIP:DMG: { - [1666945367.166379][5173:5173] CHIP:DMG: DataVersion = 0x291b69b6, - [1666945367.166529][5173:5173] CHIP:DMG: AttributePathIB = - [1666945367.166618][5173:5173] CHIP:DMG: { - [1666945367.166711][5173:5173] CHIP:DMG: Endpoint = 0x1, - [1666945367.166839][5173:5173] CHIP:DMG: Cluster = 0x25, - [1666945367.166932][5173:5173] CHIP:DMG: Attribute = 0x0000_0000, - [1666945367.167027][5173:5173] CHIP:DMG: ListIndex = Null, - [1666945367.167111][5173:5173] CHIP:DMG: } - [1666945367.167191][5173:5173] CHIP:DMG: - [1666945367.167273][5173:5173] CHIP:DMG: Data = - [1666945367.167356][5173:5173] CHIP:DMG: { - [1666945367.167451][5173:5173] CHIP:DMG: 0x0 = 4097, - [1666945367.167548][5173:5173] CHIP:DMG: 0x1 = "Room 1 On" (9 chars), - [1666945367.167647][5173:5173] CHIP:DMG: 0x2 = 3, - [1666945367.167744][5173:5173] CHIP:DMG: 0x3 = 57345, - [1666945367.167842][5173:5173] CHIP:DMG: 0x4 = 1, - [1666945367.167937][5173:5173] CHIP:DMG: 0x5 = 0, - [1666945367.168033][5173:5173] CHIP:DMG: }, - [1666945367.168119][5173:5173] CHIP:DMG: }, - [1666945367.168221][5173:5173] CHIP:DMG: - [1666945367.168291][5173:5173] CHIP:DMG: }, - [1666945367.168404][5173:5173] CHIP:DMG: - [1666945367.168467][5173:5173] CHIP:DMG: AttributeReportIB = - [1666945367.168564][5173:5173] CHIP:DMG: { - [1666945367.168639][5173:5173] CHIP:DMG: AttributeDataIB = - [1666945367.168726][5173:5173] CHIP:DMG: { - [1666945367.168817][5173:5173] CHIP:DMG: DataVersion = 0x291b69b6, - [1666945367.168905][5173:5173] CHIP:DMG: AttributePathIB = - [1666945367.168987][5173:5173] CHIP:DMG: { - [1666945367.169079][5173:5173] CHIP:DMG: Endpoint = 0x1, - [1666945367.169178][5173:5173] CHIP:DMG: Cluster = 0x25, - [1666945367.169275][5173:5173] CHIP:DMG: Attribute = 0x0000_0000, - [1666945367.169354][5173:5173] CHIP:DMG: ListIndex = Null, - [1666945367.169438][5173:5173] CHIP:DMG: } - [1666945367.169526][5173:5173] CHIP:DMG: - [1666945367.169608][5173:5173] CHIP:DMG: Data = - [1666945367.169691][5173:5173] CHIP:DMG: { - [1666945367.169786][5173:5173] CHIP:DMG: 0x0 = 4098, - [1666945367.169879][5173:5173] CHIP:DMG: 0x1 = "Turn On Room 2" (14 chars), - [1666945367.169978][5173:5173] CHIP:DMG: 0x2 = 3, - [1666945367.170073][5173:5173] CHIP:DMG: 0x3 = 57346, - [1666945367.170175][5173:5173] CHIP:DMG: 0x4 = 1, - [1666945367.170263][5173:5173] CHIP:DMG: 0x5 = 0, - [1666945367.170350][5173:5173] CHIP:DMG: }, - [1666945367.170428][5173:5173] CHIP:DMG: }, - [1666945367.170520][5173:5173] CHIP:DMG: - [1666945367.170590][5173:5173] CHIP:DMG: }, - [1666945367.170675][5173:5173] CHIP:DMG: - [1666945367.170829][5173:5173] CHIP:DMG: ], - + wait: "readAttribute" + attribute: "ActionList" - ./chip-tool actions read endpoint-lists 1 1 - - Verify read command is received on TH(bride-app) - - [1666945437.484634][5173:5173] CHIP:EM: Handling via exchange: 4879r, Delegate: 0xaaaadf4c9810 - [1666945437.484729][5173:5173] CHIP:IM: Received Read request - [1666945437.484902][5173:5173] CHIP:DMG: ReadRequestMessage = - [1666945437.484967][5173:5173] CHIP:DMG: { - [1666945437.485022][5173:5173] CHIP:DMG: AttributePathIBs = - [1666945437.485103][5173:5173] CHIP:DMG: [ - [1666945437.485167][5173:5173] CHIP:DMG: AttributePathIB = - [1666945437.485238][5173:5173] CHIP:DMG: { - [1666945437.485305][5173:5173] CHIP:DMG: Endpoint = 0x1, - [1666945437.485386][5173:5173] CHIP:DMG: Cluster = 0x25, - [1666945437.485475][5173:5173] CHIP:DMG: Attribute = 0x0000_0001, - [1666945437.485551][5173:5173] CHIP:DMG: } - [1666945437.485628][5173:5173] CHIP:DMG: - [1666945437.485697][5173:5173] CHIP:DMG: ], - [1666945437.485773][5173:5173] CHIP:DMG: - [1666945437.485841][5173:5173] CHIP:DMG: isFabricFiltered = true, - [1666945437.485906][5173:5173] CHIP:DMG: InteractionModelRevision = 1 - [1666945437.485965][5173:5173] CHIP:DMG: }, - [1666945437.486127][5173:5173] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666945437.486351][5173:5173] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666945437.486422][5173:5173] CHIP:DMG: Cluster 25, Attribute 1 is dirty - [1666945437.486477][5173:5173] CHIP:DMG: Reading attribute: Cluster=0x0000_0025 Endpoint=1 AttributeId=0x0000_0001 (expanded=0) - [1666945437.486545][5173:5173] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0025 e=1 p=v - [1666945437.486622][5173:5173] CHIP:DMG: AccessControl: allowed - [1666945437.486922][5173:5173] CHIP:DMG: Sending report (payload has 138 bytes)... - [1666945437.487501][5173:5173] CHIP:EM: <<< [E:4879r M:228092302 (Ack:220207383)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666945437.487607][5173:5173] CHIP:IN: (S) Sending msg 228092302 on secure session with LSID: 20126 - [1666945437.488295][5173:5173] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:44532 | 228092302 | [Interaction Model (1) / Report Data (0x05) / Session = 18475 / Exchange = 4879] - [1666945437.488393][5173:5173] CHIP:DMG: Header Flags = - [1666945437.488448][5173:5173] CHIP:DMG: { - [1666945437.488533][5173:5173] CHIP:DMG: Exchange (0x06) = - [1666945437.488588][5173:5173] CHIP:DMG: { - [1666945437.488647][5173:5173] CHIP:DMG: AckMsg = 220207383 - [1666945437.488702][5173:5173] CHIP:DMG: NeedsAck = true - [1666945437.488911][5173:5173] CHIP:DMG: } - [1666945437.488991][5173:5173] CHIP:DMG: } - [1666945437.489045][5173:5173] CHIP:DMG: - [1666945437.489114][5173:5173] CHIP:DMG: Encrypted Payload (172 bytes) = - [1666945437.489169][5173:5173] CHIP:DMG: { - [1666945437.489223][5173:5173] CHIP:DMG: data = 002b48008e69980db4473372f0bcc327ccf4de048ef848bd7e60b97d32476b6255cab374f592ce745ef3fb63d634487ee27317694670159d0678c5a10d3ecdea960d23d4594ef782ee669adaa1ed67551d83f8a405a244d10289c259afdd53eb9c7d44df1cc2e789a3026c4823f42f6b73406145149d5a73fb8570235ec20d01a20e701488229264c892b7e0eec1f341e8dbb540d9abe16446555346f92e0ba09601aec3b7ad74802aa66379 - [1666945437.489446][5173:5173] CHIP:DMG: buffer_ptr = 187651807709184 - [1666945437.489504][5173:5173] CHIP:DMG: } - [1666945437.489555][5173:5173] CHIP:DMG: - [1666945437.489834][5173:5173] CHIP:DMG: ReportDataMessage = - [1666945437.489901][5173:5173] CHIP:DMG: { - [1666945437.489955][5173:5173] CHIP:DMG: AttributeReportIBs = - [1666945437.490039][5173:5173] CHIP:DMG: [ - [1666945437.490102][5173:5173] CHIP:DMG: AttributeReportIB = - [1666945437.490186][5173:5173] CHIP:DMG: { - [1666945437.490252][5173:5173] CHIP:DMG: AttributeDataIB = - [1666945437.490425][5173:5173] CHIP:DMG: { - [1666945437.490519][5173:5173] CHIP:DMG: DataVersion = 0x291b69b6, - [1666945437.490607][5173:5173] CHIP:DMG: AttributePathIB = - [1666945437.490693][5173:5173] CHIP:DMG: { - [1666945437.490828][5173:5173] CHIP:DMG: Endpoint = 0x1, - [1666945437.490922][5173:5173] CHIP:DMG: Cluster = 0x25, - [1666945437.491019][5173:5173] CHIP:DMG: Attribute = 0x0000_0001, - [1666945437.491106][5173:5173] CHIP:DMG: } - [1666945437.491346][5173:5173] CHIP:DMG: - [1666945437.491535][5173:5173] CHIP:DMG: Data = [ - [1666945437.491620][5173:5173] CHIP:DMG: - [1666945437.491712][5173:5173] CHIP:DMG: ], - [1666945437.491800][5173:5173] CHIP:DMG: }, - [1666945437.491889][5173:5173] CHIP:DMG: - [1666945437.492026][5173:5173] CHIP:DMG: }, - [1666945437.492133][5173:5173] CHIP:DMG: - [1666945437.492196][5173:5173] CHIP:DMG: AttributeReportIB = - [1666945437.492286][5173:5173] CHIP:DMG: { - [1666945437.492353][5173:5173] CHIP:DMG: AttributeDataIB = - [1666945437.492440][5173:5173] CHIP:DMG: { - [1666945437.492531][5173:5173] CHIP:DMG: DataVersion = 0x291b69b6, - [1666945437.492613][5173:5173] CHIP:DMG: AttributePathIB = - [1666945437.492695][5173:5173] CHIP:DMG: { - [1666945437.492845][5173:5173] CHIP:DMG: Endpoint = 0x1, - [1666945437.492941][5173:5173] CHIP:DMG: Cluster = 0x25, - [1666945437.493032][5173:5173] CHIP:DMG: Attribute = 0x0000_0001, - [1666945437.493128][5173:5173] CHIP:DMG: ListIndex = Null, - [1666945437.493334][5173:5173] CHIP:DMG: } - [1666945437.493424][5173:5173] CHIP:DMG: - [1666945437.493515][5173:5173] CHIP:DMG: Data = - [1666945437.493591][5173:5173] CHIP:DMG: { - [1666945437.493680][5173:5173] CHIP:DMG: 0x0 = 57345, - [1666945437.493767][5173:5173] CHIP:DMG: 0x1 = "Room 1" (6 chars), - [1666945437.493928][5173:5173] CHIP:DMG: 0x2 = 1, - [1666945437.494017][5173:5173] CHIP:DMG: 0x3 = [ - [1666945437.494113][5173:5173] CHIP:DMG: 10, 11, - [1666945437.494223][5173:5173] CHIP:DMG: ], - [1666945437.494307][5173:5173] CHIP:DMG: }, - [1666945437.494386][5173:5173] CHIP:DMG: }, - [1666945437.494530][5173:5173] CHIP:DMG: - [1666945437.494602][5173:5173] CHIP:DMG: }, - [1666945437.494714][5173:5173] CHIP:DMG: - [1666945437.494842][5173:5173] CHIP:DMG: AttributeReportIB = - [1666945437.494936][5173:5173] CHIP:DMG: { - [1666945437.495008][5173:5173] CHIP:DMG: AttributeDataIB = - [1666945437.495137][5173:5173] CHIP:DMG: { - [1666945437.495223][5173:5173] CHIP:DMG: DataVersion = 0x291b69b6, - [1666945437.495304][5173:5173] CHIP:DMG: AttributePathIB = - [1666945437.495388][5173:5173] CHIP:DMG: { - [1666945437.495474][5173:5173] CHIP:DMG: Endpoint = 0x1, - [1666945437.495562][5173:5173] CHIP:DMG: Cluster = 0x25, - [1666945437.495656][5173:5173] CHIP:DMG: Attribute = 0x0000_0001, - [1666945437.495816][5173:5173] CHIP:DMG: ListIndex = Null, - [1666945437.495902][5173:5173] CHIP:DMG: } - [1666945437.495991][5173:5173] CHIP:DMG: - [1666945437.496071][5173:5173] CHIP:DMG: Data = - [1666945437.496160][5173:5173] CHIP:DMG: { - [1666945437.496254][5173:5173] CHIP:DMG: 0x0 = 57346, - [1666945437.496355][5173:5173] CHIP:DMG: 0x1 = "Room 2" (6 chars), - [1666945437.496446][5173:5173] CHIP:DMG: 0x2 = 1, - [1666945437.496532][5173:5173] CHIP:DMG: 0x3 = [ - [1666945437.496618][5173:5173] CHIP:DMG: 12, 13, - [1666945437.496720][5173:5173] CHIP:DMG: ], - [1666945437.496800][5173:5173] CHIP:DMG: }, - [1666945437.496885][5173:5173] CHIP:DMG: }, - [1666945437.496978][5173:5173] CHIP:DMG: - [1666945437.497048][5173:5173] CHIP:DMG: }, - [1666945437.497138][5173:5173] CHIP:DMG: - [1666945437.497199][5173:5173] CHIP:DMG: ], - [1666945437.497310][5173:5173] CHIP:DMG: - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" + - label: "Read attribute: EndpointLists" PICS: ACT.C.AM-READ - verification: | - Optional attibute - - ./chip-tool actions read setup-url 1 1 - - Verify read command is received on TH(bridge-app) + wait: "readAttribute" + attribute: "EndpointLists" - [1666945301.190302][5173:5173] CHIP:EM: Handling via exchange: 4369r, Delegate: 0xaaaadf4c9810 - [1666945301.190396][5173:5173] CHIP:IM: Received Read request - [1666945301.190565][5173:5173] CHIP:DMG: ReadRequestMessage = - [1666945301.190631][5173:5173] CHIP:DMG: { - [1666945301.190686][5173:5173] CHIP:DMG: AttributePathIBs = - [1666945301.190817][5173:5173] CHIP:DMG: [ - [1666945301.190881][5173:5173] CHIP:DMG: AttributePathIB = - [1666945301.190951][5173:5173] CHIP:DMG: { - [1666945301.191029][5173:5173] CHIP:DMG: Endpoint = 0x1, - [1666945301.191118][5173:5173] CHIP:DMG: Cluster = 0x25, - [1666945301.191206][5173:5173] CHIP:DMG: Attribute = 0x0000_0002, - [1666945301.191283][5173:5173] CHIP:DMG: } - [1666945301.191363][5173:5173] CHIP:DMG: - [1666945301.191434][5173:5173] CHIP:DMG: ], - [1666945301.191505][5173:5173] CHIP:DMG: - [1666945301.191577][5173:5173] CHIP:DMG: isFabricFiltered = true, - [1666945301.191642][5173:5173] CHIP:DMG: InteractionModelRevision = 1 - [1666945301.191702][5173:5173] CHIP:DMG: }, - [1666945301.191867][5173:5173] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666945301.192079][5173:5173] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666945301.192151][5173:5173] CHIP:DMG: Cluster 25, Attribute 2 is dirty - [1666945301.192206][5173:5173] CHIP:DMG: Reading attribute: Cluster=0x0000_0025 Endpoint=1 AttributeId=0x0000_0002 (expanded=0) - [1666945301.192274][5173:5173] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0025 e=1 p=v - [1666945301.192350][5173:5173] CHIP:DMG: AccessControl: allowed - [1666945301.192458][5173:5173] CHIP:DMG: Sending report (payload has 55 bytes)... - [1666945301.193143][5173:5173] CHIP:EM: <<< [E:4369r M:144965555 (Ack:237173199)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666945301.193250][5173:5173] CHIP:IN: (S) Sending msg 144965555 on secure session with LSID: 20124 - [1666945301.193995][5173:5173] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:59128 | 144965555 | [Interaction Model (1) / Report Data (0x05) / Session = 3702 / Exchange = 4369] - [1666945301.194092][5173:5173] CHIP:DMG: Header Flags = - [1666945301.194147][5173:5173] CHIP:DMG: { - [1666945301.194235][5173:5173] CHIP:DMG: Exchange (0x06) = - [1666945301.194291][5173:5173] CHIP:DMG: { - [1666945301.194351][5173:5173] CHIP:DMG: AckMsg = 237173199 - [1666945301.194536][5173:5173] CHIP:DMG: NeedsAck = true - [1666945301.194592][5173:5173] CHIP:DMG: } - [1666945301.194664][5173:5173] CHIP:DMG: } - [1666945301.194792][5173:5173] CHIP:DMG: - [1666945301.194871][5173:5173] CHIP:DMG: Encrypted Payload (89 bytes) = - [1666945301.194928][5173:5173] CHIP:DMG: { - [1666945301.194984][5173:5173] CHIP:DMG: data = 00760e00b3ffa308dc0549ed44eb87f9fc42998dba79b53455a44534c7647c1a27d317b5a1ade641306f4e0cbbfb831b5107a83ecccdb64760f5472f9a9d727456f6a79cef4dc4bf1b58b1d761f2bcca469779b23faf2b984e - [1666945301.195042][5173:5173] CHIP:DMG: buffer_ptr = 187651807700816 - [1666945301.195090][5173:5173] CHIP:DMG: } - [1666945301.195141][5173:5173] CHIP:DMG: - [1666945301.195312][5173:5173] CHIP:DMG: ReportDataMessage = - [1666945301.195445][5173:5173] CHIP:DMG: { - [1666945301.195504][5173:5173] CHIP:DMG: AttributeReportIBs = - [1666945301.195582][5173:5173] CHIP:DMG: [ - [1666945301.195645][5173:5173] CHIP:DMG: AttributeReportIB = - [1666945301.195734][5173:5173] CHIP:DMG: { - [1666945301.195802][5173:5173] CHIP:DMG: AttributeDataIB = - [1666945301.195889][5173:5173] CHIP:DMG: { - [1666945301.195974][5173:5173] CHIP:DMG: DataVersion = 0x291b69b6, - [1666945301.196132][5173:5173] CHIP:DMG: AttributePathIB = - [1666945301.196224][5173:5173] CHIP:DMG: { - [1666945301.196312][5173:5173] CHIP:DMG: Endpoint = 0x1, - [1666945301.196403][5173:5173] CHIP:DMG: Cluster = 0x25, - [1666945301.196492][5173:5173] CHIP:DMG: Attribute = 0x0000_0002, - [1666945301.196576][5173:5173] CHIP:DMG: } - [1666945301.196727][5173:5173] CHIP:DMG: - [1666945301.196833][5173:5173] CHIP:DMG: Data = "https://example.com" (19 chars), - [1666945301.196914][5173:5173] CHIP:DMG: }, - [1666945301.197003][5173:5173] CHIP:DMG: - [1666945301.197073][5173:5173] CHIP:DMG: }, - [1666945301.197306][5173:5173] CHIP:DMG: - [1666945301.197372][5173:5173] CHIP:DMG: ], - [1666945301.197450][5173:5173] CHIP:DMG: - [1666945301.197514][5173:5173] CHIP:DMG: SuppressResponse = true, - [1666945301.197579][5173:5173] CHIP:DMG: InteractionModelRevision = 1 - [1666945301.197638][5173:5173] CHIP:DMG: } - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: ACT.C.AM-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: ACT.C.AO-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true + - label: "Read attribute: SetupURL" + PICS: ACT.C.AO-READ + wait: "readAttribute" + attribute: "SetupURL" - label: "Configure TH such that it implements mandatory and none of the @@ -784,12 +443,19 @@ tests: [1666952448.532092][217377:217377] CHIP:DMG: InteractionModelRevision = 1 [1666952448.532111][217377:217377] CHIP:DMG: } [1666952448.532131][217377:217377] CHIP:DMG: - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" - PICS: ACT.C.AO-READ verification: | Optional attibute @@ -870,12 +536,27 @@ tests: [1666952609.345771][217377:217377] CHIP:DMG: SuppressResponse = true, [1666952609.345792][217377:217377] CHIP:DMG: InteractionModelRevision = 1 [1666952609.345811][217377:217377] CHIP:DMG: } - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACT.C.AO-READ + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" - PICS: ACT.C.AO-WRITE verification: | This cluster doesn't have any writable attributes - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && ACT.C.AO-WRITE + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" 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 e26f7c07e26775..c5afbfacfc588c 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 @@ -33,12 +33,12 @@ tests: "Preparation: TH as server exposes an Actions server cluster on EP 1, with one action (supporting all possible commands) and corresponding ActionLists and EndpointLists attributes: ActionList: contains one - list element (ActionListStruct): ActionIO = 0x1001 Name = some - test Type = other EndpointListID = 0xE001 SupportedCommands = + list element (ActionListStruct): ActionIO = 0x1001 Name = 'some + test' Type = other EndpointListID = 0xE001 SupportedCommands = 0x0fff // suppports all commands State = Inactive EndpointLists: contains one list element (EndpointListStruct): EndpointListID = - 0xE001 Name = test room Type = room Endpoints = [3] - SetupURL: (empty string)" + 0xE001 Name = 'test room' Type = room Endpoints = [3] SetupURL: '' + (empty string)" verification: | pre-condition : Please use the below chip-tool commmands as example on how this TC can be performed using chip-tool. The DUT vendor to use commands per the DUT implemetnation @@ -204,59 +204,59 @@ tests: - label: "DUT issues an StopAction command to TH" PICS: ACT.C.C04.Tx verification: | - Out of scope for V1.0, The reference app doesn"t have implementation for this command + Out of scope for V1.0, The reference app doesn't have implementation for this command disabled: true - label: "DUT issues an PauseAction command to TH" PICS: ACT.C.C05.Tx verification: | - Out of scope for V1.0, The reference app doesn"t have implementation for this command + Out of scope for V1.0, The reference app doesn't have implementation for this command disabled: true - label: "DUT issues an ResumeAction command to TH" PICS: ACT.C.C07.Tx verification: | - Out of scope for V1.0, The reference app doesn"t have implementation for this command + Out of scope for V1.0, The reference app doesn't have implementation for this command disabled: true - label: "DUT issues an EnableAction command to TH" PICS: ACT.C.C08.Tx verification: | - Out of scope for V1.0, The reference app doesn"t have implementation for this command + Out of scope for V1.0, The reference app doesn't have implementation for this command disabled: true - label: "DUT issues an DisableAction command to TH" PICS: ACT.C.C0a.Tx verification: | - Out of scope for V1.0, The reference app doesn"t have implementation for this command + Out of scope for V1.0, The reference app doesn't have implementation for this command disabled: true - label: "DUT issues an StartActionWithDuration command to TH" PICS: ACT.C.C03.Tx verification: | - Out of scope for V1.0, The reference app doesn"t have implementation for this command + Out of scope for V1.0, The reference app doesn't have implementation for this command disabled: true - label: "DUT issues an PauseActionWithDuration command to TH" PICS: ACT.C.C06.Tx verification: | - Out of scope for V1.0, The reference app doesn"t have implementation for this command + Out of scope for V1.0, The reference app doesn't have implementation for this command disabled: true - label: "DUT issues an EnableActionWithDuration command to TH" PICS: ACT.C.C09.Tx verification: | - Out of scope for V1.0, The reference app doesn"t have implementation for this command + Out of scope for V1.0, The reference app doesn't have implementation for this command disabled: true - label: "DUT issues an DisableActionWithDuration command to TH" PICS: ACT.C.C0b.Tx verification: | - Out of scope for V1.0, The reference app doesn"t have implementation for this command + Out of scope for V1.0, The reference app doesn't have implementation for this command disabled: true - label: "DUT issues an InstantActionWithTransition command to TH" PICS: ACT.C.C01.Tx verification: | - Out of scope for V1.0, The reference app doesn"t have implementation for this command + Out of scope for V1.0, The reference app doesn't have implementation for this command disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ALOGIN_12_1.yaml b/src/app/tests/suites/certification/Test_TC_ALOGIN_12_1.yaml index 5fdc92abd20fb8..2e15f2c8b83448 100644 --- a/src/app/tests/suites/certification/Test_TC_ALOGIN_12_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ALOGIN_12_1.yaml @@ -20,80 +20,77 @@ PICS: config: nodeId: 0x12344321 - cluster: "BasicInformation" - endpoint: 0 + cluster: "Account Login" + endpoint: 3 + TempAccountIdentifier: + type: char_string + defaultValue: "1111" + catalogVendorId: + type: int16u + defaultValue: 123 + applicationId: + type: char_string + defaultValue: "exampleid" tests: - - label: - "Make sure there is a Content App endpoint implementing the Account - Login cluster. Product maker may provide pre-setup steps" - verification: | - The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner). - - The following command on the example tv-app will launch a content app on endpoint 4: - ./chip-tool applicationlauncher launch-app "{"catalogVendorID": 123, "applicationID": "exampleid"}" 1 1 - ./chip-tv-casting-app applicationlauncher launch-app "{"catalogVendorID": 123, "applicationID": "exampleid"}" 1 1 + - label: "Wait for the commissioned device to be retrieved" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId - Verify in TH Log: - [1666779476.134292][24912:24917] CHIP:DMG: }, - [1666779476.134332][24912:24917] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_050C Command=0x0000_0003 - [1666779476.134353][24912:24917] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050C Command 0x0000_0003 - [1666779476.134380][24912:24917] CHIP:TOO: LauncherResponse: { - [1666779476.134392][24912:24917] CHIP:TOO: status: 0 - [1666779476.134409][24912:24917] CHIP:TOO: data: 64617461 - [1666779476.134415][24912:24917] CHIP:TOO: } - [1666779476.134434][24912:24917] CHIP:DMG: ICR moving to [AwaitingDe] - [1666779476.134475][24912:24917] CHIP:EM: <<< [E:15131i M:169249733 (Ack:166780493)] (S) Msg TX to 1:0000000000000001 [F894] --- Type 0000:10 (SecureChannel:StandaloneAck) - disabled: true + - label: "Launch an app with the provided a application ID" + PICS: APPLAUNCHER.S.C00.Rsp + cluster: "Application Launcher" + command: "LaunchApp" + arguments: + values: + - name: "Data" + value: "Hello World" + - name: "Application" + value: + { + CatalogVendorID: catalogVendorId, + ApplicationID: applicationId, + } + response: + values: + - name: "Status" + value: 0 - label: "TH sends a GetSetupPIN command to the DUT with test values provided by the product maker." PICS: ALOGIN.S.C00.Rsp - verification: | - The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool accountlogin get-setup-pin 1111 1 4 --timedInteractionTimeoutMs 1000 - ./chip-tv-casting-app accountlogin get-setup-pin 1111 1 4 --timedInteractionTimeoutMs 1000 - - On TH Verify that the DUT responds with a valid GetSetupPINResponse. - [1666779483.473668][24918:24923] CHIP:DMG: Received Command Response Data, Endpoint=4 Cluster=0x0000_050E Command=0x0000_0001 - [1666779483.473688][24918:24923] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_050E Command 0x0000_0001 - [1666779483.473709][24918:24923] CHIP:TOO: GetSetupPINResponse: { - [1666779483.473716][24918:24923] CHIP:TOO: setupPIN: 34567890 - [1666779483.473724][24918:24923] CHIP:TOO: } - [1666779483.473741][24918:24923] CHIP:DMG: ICR moving to [AwaitingDe] - [1666779483.473781][24918:24923] CHIP:EM: <<< [E:55844i M:50959985 (Ack:76245781)] (S) Msg TX to 1:0000000000000001 [F894] --- Type 0000:10 (SecureChannel:StandaloneAck) - [1666779483.473794][24918:24923] CHIP:IN: (S) Sending msg 50959985 on secure session with LSID: 53816 - disabled: true + command: "GetSetupPIN" + timedInteractionTimeoutMs: 10000 + arguments: + values: + - name: "TempAccountIdentifier" + value: TempAccountIdentifier + response: + values: + - name: "SetupPIN" + saveAs: setupPIN - label: "TH sends a Login command to the DUT with test values provided by the product maker." PICS: ALOGIN.S.C02.Rsp - verification: | - The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool accountlogin login 11111 34567890 1 4 --timedInteractionTimeoutMs 1000 - ./chip-tv-casting-app accountlogin login 11111 34567890 1 4 --timedInteractionTimeoutMs 1000 - - On TH Verify that the DUT responds with a standard command response. - [1666779572.083273][24925:24930] CHIP:DMG: }, - [1666779572.083314][24925:24930] CHIP:DMG: Received Command Response Status for Endpoint=4 Cluster=0x0000_050E Command=0x0000_0002 Status=0x0 - [1666779572.083337][24925:24930] CHIP:DMG: ICR moving to [AwaitingDe] - [1666779572.083380][24925:24930] CHIP:EM: <<< [E:20581i M:225012920 (Ack:11041406)] (S) Msg TX to 1:0000000000000001 [F894] --- Type 0000:10 (SecureChannel:StandaloneAck) - disabled: true + command: "Login" + timedInteractionTimeoutMs: 10000 + arguments: + values: + - name: "TempAccountIdentifier" + value: TempAccountIdentifier + - name: "SetupPIN" + value: setupPIN - label: "TH sends a Logout command to the DUT with test values provided by the product maker." PICS: ALOGIN.S.C03.Rsp - verification: | - The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool accountlogin logout 1 4 --timedInteractionTimeoutMs 1000 - ./chip-tv-casting-app accountlogin logout 1 4 --timedInteractionTimeoutMs 1000 - - On TH Verify that the DUT responds with a standard command response. - [1666779601.381050][24938:24943] CHIP:DMG: }, - [1666779601.381090][24938:24943] CHIP:DMG: Received Command Response Status for Endpoint=4 Cluster=0x0000_050E Command=0x0000_0003 Status=0x0 - [1666779601.381112][24938:24943] CHIP:DMG: ICR moving to [AwaitingDe] - [1666779601.381158][24938:24943] CHIP:EM: <<< [E:54914i M:17706756 (Ack:83004508)] (S) Msg TX to 1:0000000000000001 [F894] --- Type 0000:10 (SecureChannel:StandaloneAck) - disabled: true + command: "Logout" + timedInteractionTimeoutMs: 10000 diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_7_1.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_7_1.yaml index e98a7d9556f535..d8565656c56251 100644 --- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_7_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_7_1.yaml @@ -35,41 +35,44 @@ tests: PICS: APPLAUNCHER.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): - ./chip-tool applicationlauncher launch-app "{"catalogVendorId": 123, "applicationId": "exampleid"}" 1 1 - ./chip-tv-casting-app applicationlauncher launch-app "{"catalogVendorId": 123, "applicationId": "exampleid"}" 1 1 + ./chip-tool applicationlauncher launch-app '{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 + + ./chip-tv-casting-app applicationlauncher launch-app '{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 The log below shows the resulting log on the TH (tv-app or all-clusters-app): - [1658530337583] [21469:308294] CHIP: [DMG] InvokeRequestMessage = - [1658530337583] [21469:308294] CHIP: [DMG] { - [1658530337583] [21469:308294] CHIP: [DMG] suppressResponse = false, - [1658530337583] [21469:308294] CHIP: [DMG] timedRequest = false, - [1658530337583] [21469:308294] CHIP: [DMG] InvokeRequests = - [1658530337583] [21469:308294] CHIP: [DMG] [ - [1658530337583] [21469:308294] CHIP: [DMG] CommandDataIB = - [1658530337583] [21469:308294] CHIP: [DMG] { - [1658530337583] [21469:308294] CHIP: [DMG] CommandPathIB = - [1658530337583] [21469:308294] CHIP: [DMG] { - [1658530337583] [21469:308294] CHIP: [DMG] EndpointId = 0x1, - [1658530337583] [21469:308294] CHIP: [DMG] ClusterId = 0x50c, - [1658530337583] [21469:308294] CHIP: [DMG] CommandId = 0x0, - [1658530337583] [21469:308294] CHIP: [DMG] }, - [1658530337583] [21469:308294] CHIP: [DMG] - [1658530337583] [21469:308294] CHIP: [DMG] CommandFields = - [1658530337583] [21469:308294] CHIP: [DMG] { - [1658530337583] [21469:308294] CHIP: [DMG] 0x0 = - [1658530337583] [21469:308294] CHIP: [DMG] { - [1658530337583] [21469:308294] CHIP: [DMG] 0x0 = 123, - [1658530337583] [21469:308294] CHIP: [DMG] 0x1 = "exampleid", - [1658530337583] [21469:308294] CHIP: [DMG] }, - [1658530337583] [21469:308294] CHIP: [DMG] }, - [1658530337583] [21469:308294] CHIP: [DMG] }, - [1658530337583] [21469:308294] CHIP: [DMG] - [1658530337583] [21469:308294] CHIP: [DMG] ], - [1658530337583] [21469:308294] CHIP: [DMG] - [1658530337583] [21469:308294] CHIP: [DMG] InteractionModelRevision = 1 - [1658530337583] [21469:308294] CHIP: [DMG] }, + [1674562560.376993][12550:12550] CHIP:EM: Handling via exchange: 22201r, Delegate: 0x5572d99d2b08 + [1674562560.377026][12550:12550] CHIP:DMG: InvokeRequestMessage = + [1674562560.377033][12550:12550] CHIP:DMG: { + [1674562560.377040][12550:12550] CHIP:DMG: suppressResponse = false, + [1674562560.377049][12550:12550] CHIP:DMG: timedRequest = false, + [1674562560.377056][12550:12550] CHIP:DMG: InvokeRequests = + [1674562560.377068][12550:12550] CHIP:DMG: [ + [1674562560.377075][12550:12550] CHIP:DMG: CommandDataIB = + [1674562560.377083][12550:12550] CHIP:DMG: { + [1674562560.377090][12550:12550] CHIP:DMG: CommandPathIB = + [1674562560.377098][12550:12550] CHIP:DMG: { + [1674562560.377107][12550:12550] CHIP:DMG: EndpointId = 0x1, + [1674562560.377115][12550:12550] CHIP:DMG: ClusterId = 0x50c, + [1674562560.377122][12550:12550] CHIP:DMG: CommandId = 0x0, + [1674562560.377130][12550:12550] CHIP:DMG: }, + [1674562560.377139][12550:12550] CHIP:DMG: + [1674562560.377146][12550:12550] CHIP:DMG: CommandFields = + [1674562560.377154][12550:12550] CHIP:DMG: { + [1674562560.377161][12550:12550] CHIP:DMG: 0x0 = + [1674562560.377169][12550:12550] CHIP:DMG: { + [1674562560.377178][12550:12550] CHIP:DMG: 0x0 = 123, + [1674562560.377188][12550:12550] CHIP:DMG: 0x1 = "exampleid" (9 chars), + [1674562560.377196][12550:12550] CHIP:DMG: }, + [1674562560.377204][12550:12550] CHIP:DMG: }, + [1674562560.377211][12550:12550] CHIP:DMG: }, + [1674562560.377222][12550:12550] CHIP:DMG: + [1674562560.377228][12550:12550] CHIP:DMG: ], + [1674562560.377240][12550:12550] CHIP:DMG: + [1674562560.377247][12550:12550] CHIP:DMG: InteractionModelRevision = 1 + [1674562560.377253][12550:12550] CHIP:DMG: }, + [1674562560.377285][12550:12550] CHIP:DMG: AccessControl: checking f=2 a=c s=0x000000000001B669 t= c=0x0000_050C e=1 p=o Refer to device or application documentation for special argument values to each command, and/or additional steps required to put device into in correct state to exhibit test behavior. disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml index f1e14ec85aa052..b08cec90dc1e2f 100644 --- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml @@ -35,39 +35,40 @@ tests: verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): - ./chip-tool applicationlauncher stop-app "{"catalogVendorId": 123, "applicationId": "exampleid"}" 1 1 - ./chip-tv-casting-app applicationlauncher stop-app "{"catalogVendorId": 123, "applicationId": "exampleid"}" 1 1 + ./chip-tool applicationlauncher stop-app '{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 + ./chip-tv-casting-app applicationlauncher stop-app'{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): - [1658530412627] [21469:308294] CHIP: [DMG] InvokeRequestMessage = - [1658530412627] [21469:308294] CHIP: [DMG] { - [1658530412627] [21469:308294] CHIP: [DMG] suppressResponse = false, - [1658530412627] [21469:308294] CHIP: [DMG] timedRequest = false, - [1658530412627] [21469:308294] CHIP: [DMG] InvokeRequests = - [1658530412628] [21469:308294] CHIP: [DMG] [ - [1658530412628] [21469:308294] CHIP: [DMG] CommandDataIB = - [1658530412628] [21469:308294] CHIP: [DMG] { - [1658530412628] [21469:308294] CHIP: [DMG] CommandPathIB = - [1658530412628] [21469:308294] CHIP: [DMG] { - [1658530412628] [21469:308294] CHIP: [DMG] EndpointId = 0x1, - [1658530412628] [21469:308294] CHIP: [DMG] ClusterId = 0x50c, - [1658530412628] [21469:308294] CHIP: [DMG] CommandId = 0x1, - [1658530412628] [21469:308294] CHIP: [DMG] }, - [1658530412628] [21469:308294] CHIP: [DMG] - [1658530412628] [21469:308294] CHIP: [DMG] CommandFields = - [1658530412628] [21469:308294] CHIP: [DMG] { - [1658530412628] [21469:308294] CHIP: [DMG] 0x0 = - [1658530412628] [21469:308294] CHIP: [DMG] { - [1658530412628] [21469:308294] CHIP: [DMG] 0x0 = 123, - [1658530412628] [21469:308294] CHIP: [DMG] 0x1 = "exampleid", - [1658530412628] [21469:308294] CHIP: [DMG] }, - [1658530412628] [21469:308294] CHIP: [DMG] }, - [1658530412628] [21469:308294] CHIP: [DMG] }, - [1658530412628] [21469:308294] CHIP: [DMG] - [1658530412628] [21469:308294] CHIP: [DMG] ], - [1658530412628] [21469:308294] CHIP: [DMG] - [1658530412628] [21469:308294] CHIP: [DMG] InteractionModelRevision = 1 - [1658530412628] [21469:308294] CHIP: [DMG] }, + The log below shows the resulting log on the TH (tv-app or all-clusters-app): + 74562683.652082][12550:12550] CHIP:DMG: InvokeRequestMessage = + [1674562683.652085][12550:12550] CHIP:DMG: { + [1674562683.652088][12550:12550] CHIP:DMG: suppressResponse = false, + [1674562683.652092][12550:12550] CHIP:DMG: timedRequest = false, + [1674562683.652095][12550:12550] CHIP:DMG: InvokeRequests = + [1674562683.652101][12550:12550] CHIP:DMG: [ + [1674562683.652104][12550:12550] CHIP:DMG: CommandDataIB = + [1674562683.652108][12550:12550] CHIP:DMG: { + [1674562683.652111][12550:12550] CHIP:DMG: CommandPathIB = + [1674562683.652114][12550:12550] CHIP:DMG: { + [1674562683.652117][12550:12550] CHIP:DMG: EndpointId = 0x1, + [1674562683.652121][12550:12550] CHIP:DMG: ClusterId = 0x50c, + [1674562683.652125][12550:12550] CHIP:DMG: CommandId = 0x1, + [1674562683.652128][12550:12550] CHIP:DMG: }, + [1674562683.652131][12550:12550] CHIP:DMG: + [1674562683.652134][12550:12550] CHIP:DMG: CommandFields = + [1674562683.652137][12550:12550] CHIP:DMG: { + [1674562683.652140][12550:12550] CHIP:DMG: 0x0 = + [1674562683.652143][12550:12550] CHIP:DMG: { + [1674562683.652147][12550:12550] CHIP:DMG: 0x0 = 123, + [1674562683.652152][12550:12550] CHIP:DMG: 0x1 = "exampleid" (9 chars), + [1674562683.652156][12550:12550] CHIP:DMG: }, + [1674562683.652159][12550:12550] CHIP:DMG: }, + [1674562683.652162][12550:12550] CHIP:DMG: }, + [1674562683.652167][12550:12550] CHIP:DMG: + [1674562683.652169][12550:12550] CHIP:DMG: ], + [1674562683.652173][12550:12550] CHIP:DMG: + [1674562683.652175][12550:12550] CHIP:DMG: InteractionModelRevision = 1 + [1674562683.652177][12550:12550] CHIP:DMG: }, + [1674562683.652193][12550:12550] CHIP:DMG: AccessControl: checking f=2 a=c s=0x000000000001B669 t= c=0x0000_050C e=1 p=o disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml index a5401907341658..4c4c9cec4f940b 100644 --- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml @@ -35,39 +35,42 @@ tests: verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): - ./chip-tool applicationlauncher hide-app "{"catalogVendorId": 123, "applicationId": "exampleid"}" 1 1 - ./chip-tv-casting-app applicationlauncher hide-app "{"catalogVendorId": 123, "applicationId": "exampleid"}" 1 1 + ./chip-tool applicationlauncher hide-app '{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 + + ./chip-tv-casting-app applicationlauncher hide-app '{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 The log below shows the resulting log on the TH (tv-app or all-clusters-app): - [1658530459438] [21469:308294] CHIP: [DMG] InvokeRequestMessage = - [1658530459438] [21469:308294] CHIP: [DMG] { - [1658530459438] [21469:308294] CHIP: [DMG] suppressResponse = false, - [1658530459438] [21469:308294] CHIP: [DMG] timedRequest = false, - [1658530459438] [21469:308294] CHIP: [DMG] InvokeRequests = - [1658530459438] [21469:308294] CHIP: [DMG] [ - [1658530459438] [21469:308294] CHIP: [DMG] CommandDataIB = - [1658530459438] [21469:308294] CHIP: [DMG] { - [1658530459438] [21469:308294] CHIP: [DMG] CommandPathIB = - [1658530459438] [21469:308294] CHIP: [DMG] { - [1658530459438] [21469:308294] CHIP: [DMG] EndpointId = 0x1, - [1658530459438] [21469:308294] CHIP: [DMG] ClusterId = 0x50c, - [1658530459438] [21469:308294] CHIP: [DMG] CommandId = 0x2, - [1658530459438] [21469:308294] CHIP: [DMG] }, - [1658530459438] [21469:308294] CHIP: [DMG] - [1658530459438] [21469:308294] CHIP: [DMG] CommandFields = - [1658530459438] [21469:308294] CHIP: [DMG] { - [1658530459438] [21469:308294] CHIP: [DMG] 0x0 = - [1658530459438] [21469:308294] CHIP: [DMG] { - [1658530459438] [21469:308294] CHIP: [DMG] 0x0 = 123, - [1658530459438] [21469:308294] CHIP: [DMG] 0x1 = "exampleid", - [1658530459438] [21469:308294] CHIP: [DMG] }, - [1658530459438] [21469:308294] CHIP: [DMG] }, - [1658530459438] [21469:308294] CHIP: [DMG] }, - [1658530459438] [21469:308294] CHIP: [DMG] - [1658530459438] [21469:308294] CHIP: [DMG] ], - [1658530459438] [21469:308294] CHIP: [DMG] - [1658530459438] [21469:308294] CHIP: [DMG] InteractionModelRevision = 1 - [1658530459438] [21469:308294] CHIP: [DMG] }, + [1674562762.318820][12550:12550] CHIP:DMG: InvokeRequestMessage = + [1674562762.318828][12550:12550] CHIP:DMG: { + [1674562762.318834][12550:12550] CHIP:DMG: suppressResponse = false, + [1674562762.318842][12550:12550] CHIP:DMG: timedRequest = false, + [1674562762.318849][12550:12550] CHIP:DMG: InvokeRequests = + [1674562762.318864][12550:12550] CHIP:DMG: [ + [1674562762.318871][12550:12550] CHIP:DMG: CommandDataIB = + [1674562762.318882][12550:12550] CHIP:DMG: { + [1674562762.318888][12550:12550] CHIP:DMG: CommandPathIB = + [1674562762.318896][12550:12550] CHIP:DMG: { + [1674562762.318906][12550:12550] CHIP:DMG: EndpointId = 0x1, + [1674562762.318915][12550:12550] CHIP:DMG: ClusterId = 0x50c, + [1674562762.318924][12550:12550] CHIP:DMG: CommandId = 0x2, + [1674562762.318938][12550:12550] CHIP:DMG: }, + [1674562762.318948][12550:12550] CHIP:DMG: + [1674562762.318954][12550:12550] CHIP:DMG: CommandFields = + [1674562762.318962][12550:12550] CHIP:DMG: { + [1674562762.318970][12550:12550] CHIP:DMG: 0x0 = + [1674562762.318982][12550:12550] CHIP:DMG: { + [1674562762.318992][12550:12550] CHIP:DMG: 0x0 = 123, + [1674562762.319002][12550:12550] CHIP:DMG: 0x1 = "exampleid" (9 chars), + [1674562762.319011][12550:12550] CHIP:DMG: }, + [1674562762.319018][12550:12550] CHIP:DMG: }, + [1674562762.319025][12550:12550] CHIP:DMG: }, + [1674562762.319038][12550:12550] CHIP:DMG: + [1674562762.319044][12550:12550] CHIP:DMG: ], + [1674562762.319057][12550:12550] CHIP:DMG: + [1674562762.319064][12550:12550] CHIP:DMG: InteractionModelRevision = 1 + [1674562762.319072][12550:12550] CHIP:DMG: }, + [1674562762.319104][12550:12550] CHIP:DMG: AccessControl: checking f=2 a=c s=0x000000000001B669 t= c=0x0000_050C e=1 p=o + [1674562762.319118][12550:12550] CHIP:DMG: AccessControl: allowed disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_4.yaml b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_4.yaml index 6a75b321c4996c..4d0253bdf757f0 100644 --- a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_4.yaml @@ -35,8 +35,8 @@ tests: verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): - ./chip-tool audiooutput rename-output 1 "Kitchen Speakers" 1 1 - ./chip-tv-casting-app audiooutput rename-output 1 "Kitchen Speakers" 1 1 + ./chip-tool audiooutput rename-output 1 'Kitchen Speakers' 1 1 + ./chip-tv-casting-app audiooutput rename-output 1 'Kitchen Speakers' 1 1 The log below shows the resulting log on the TH (tv-app or all-clusters-app): diff --git a/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml b/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml index 4ae671a1471a76..170bc9406a8d7b 100644 --- a/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml @@ -31,9 +31,8 @@ tests: disabled: true - label: - "DUT sends a SendInit message to TH + TH sends a SendAccept message - back to DUT + DUT sends a Block message to TH + TH sends a BlockAck - message back to DUT" + "DUT sends the first Block message to TH + TH sends a BlockAck message + back to DUT." verification: | 1. Verify that the OTA Reference Requester App logs show Block message from DUT @@ -53,8 +52,8 @@ tests: disabled: true - label: - "DUT sends a Block message to TH + TH sends a BlockAck message back to - DUT" + "DUT sends further Block messages to TH + TH sends BlockAck messages + back to DUT." verification: | 1. Verify from the OTA Reference Requester App logs that the Blocks are sent in ascending and sequential block counter order. diff --git a/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml b/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml index 631d4c89ac6337..dbdd27bb0293db 100644 --- a/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml @@ -78,7 +78,7 @@ tests: Entry 2: Node = 3 Cluster = 0x0006(onoff) Endpoint = 2 Note: Node 2 corresponds to TH2s Node ID Node 3 corresponds to TH3s Node ID" verification: | - ./chip-tool binding write binding "[{"node" : 2 , "cluster" : "0x0006" , "endpoint" : 1 }, { "node" : 3 , "cluster" : "0x0006" , "endpoint" : 2 }]" 1 1 + ./chip-tool binding write binding '[{"node" : 2 , "cluster" : "0x0006" , "endpoint" : 1 }, { "node" : 3 , "cluster" : "0x0006" , "endpoint" : 2 }]' 1 1 On TH1(Chip-tool), Verify the success response for binding entries @@ -106,7 +106,7 @@ tests: - label: "DUT is triggered to send On command to its binding node entries" PICS: OO.C.C01.Tx verification: | - ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1], "targets": [{"cluster": 6, "endpoint": 1, "deviceType": null}]}]" 2 0 + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1], "targets": [{"cluster": 6, "endpoint": 1, "deviceType": null}]}]' 2 0 on TH1 (Chip-tool), Verify the on command receives success response @@ -116,7 +116,7 @@ tests: [1652330385.328298][3240:3245] CHIP:DMG: }, - ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1], "targets": [{"cluster": 6, "endpoint": 2, "deviceType": null}]}]" 3 0 + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1], "targets": [{"cluster": 6, "endpoint": 2, "deviceType": null}]}]' 3 0 on TH1(Chip-tool), Verify the on command receives success response @@ -246,7 +246,7 @@ tests: - label: "TH1 removes second binding entry corresponding to TH3 from DUT" verification: | - ./chip-tool binding write binding "[{"node" : 2 , "cluster" : "0x0006" , "endpoint" : 1 }]" 1 1 + ./chip-tool binding write binding '[{"node" : 2 , "cluster" : "0x0006" , "endpoint" : 1 }]' 1 1 Verify on TH1(Chip-tool) ,binding entry receives success response diff --git a/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml index 17cd7983968531..22d0109704e94d 100644 --- a/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml @@ -69,12 +69,12 @@ tests: ./chip-tool pairing onnetwork 2 20202021 - On TH(Chip-tool), Verify the success response + On TH1(Chip-tool), Verify the success response [1659104612.592373][62366:62371] CHIP:DMG: SuppressResponse = true, [1659104612.592399][62366:62371] CHIP:DMG: InteractionModelRevision = 1 [1659104612.592432][62366:62371] CHIP:DMG: } - [1659104612.593187][62366:62371] CHIP:CTL: Successfully finished commissioning step "ReadCommissioningInfo" + [1659104612.593187][62366:62371] CHIP:CTL: Successfully finished commissioning step 'ReadCommissioningInfo' disabled: true - label: @@ -92,11 +92,11 @@ tests: Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: - ./chip-tool groupkeymanagement key-set-write "{"groupKeySetID": 42, + ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, "groupKeySecurityPolicy": 0, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": - "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }" 74 0 + "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 74 0 On TH1(Chip-tool), Verify the success response for KeySetWrite @@ -133,11 +133,11 @@ tests: Run this cmmd for lighting app in chip-tool: - ./chip-tool groupkeymanagement key-set-write "{"groupKeySetID": 42, + ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, "groupKeySecurityPolicy": 0, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": - "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }" 2 0 + "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 2 0 On TH1(Chip-tool), Verify the success response for KeySetWrite @@ -182,7 +182,7 @@ tests: verification: | Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: - ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]" 74 0 + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]' 74 0 On TH1(Chip-tool), Verify the success response for GroupKeySetID @@ -195,7 +195,7 @@ tests: Run this cmmd for lighting app in chip-tool: - ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]" 2 0 + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]' 2 0 On TH1(Chip-tool), Verify the success response for GroupKeySetID @@ -265,7 +265,7 @@ tests: Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: - ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]" 74 0 + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 74 0 On TH1(Chip-tool), Verify the success response for Acl: @@ -275,7 +275,7 @@ tests: Run this cmmd for lighting app in chip-tool: - ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]" 2 0 + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 2 0 On TH1(Chip-tool), Verify the success response for Acl: @@ -284,7 +284,7 @@ tests: [1659075680.944116][2687:2692] CHIP:DMG: status = 0x00 (SUCCESS), Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: - ./chip-tool binding write binding "[{"group" : "0x0001"}]" 74 1 + ./chip-tool binding write binding '[{"group" : "0x0001"}]' 74 1 On TH1(chip-tool), Verify the success response for binding entry @@ -320,7 +320,7 @@ tests: verification: | Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: - ./chip-tool binding write binding "[]" 74 1 + ./chip-tool binding write binding '[]' 74 1 On TH1(Chip-tool), Verify the success response for removing binding entry diff --git a/src/app/tests/suites/certification/Test_TC_BOOL_3_1.yaml b/src/app/tests/suites/certification/Test_TC_BOOL_3_1_Simulated.yaml similarity index 74% rename from src/app/tests/suites/certification/Test_TC_BOOL_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_BOOL_3_1_Simulated.yaml index 4d78a3bbbc7d5e..dd6ad529382fc8 100644 --- a/src/app/tests/suites/certification/Test_TC_BOOL_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BOOL_3_1_Simulated.yaml @@ -11,7 +11,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: 68.3.1. [TC-BOOL-3.1] Attributes with Client as DUT @@ -24,131 +23,18 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Boolean State" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Preconditions" - verification: | - Validate these PICS items of attributes which are not allowed in this server cluster implementation - these PICS items should all be FALSE, if any of them is TRUE then FAIL the test - - BRBINFO.S.A0000(DataModelRevision) - - BRBINFO.S.A0004(ProductID) - - BRBINFO.S.A0006(Location) - - BRBINFO.S.A0010(LocalConfigDisabled) + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" - BRBINFO.S.A0013(CapabilityMinima) - disabled: true - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" + - label: "Read attribute: StateValue" PICS: BOOL.C.AM-READ - verification: | - ./chip-tool booleanstate read state-value 1 1 - - Verify read command is received on TH(all-clusters-app) Log successfully - - [1666174663.263846][21481:21481] CHIP:EM: Handling via exchange: 63626r, Delegate: 0xaaaadc070288 - [1666174663.264067][21481:21481] CHIP:IM: Received Read request - [1666174663.264274][21481:21481] CHIP:DMG: ReadRequestMessage = - [1666174663.264361][21481:21481] CHIP:DMG: { - [1666174663.264417][21481:21481] CHIP:DMG: AttributePathIBs = - [1666174663.264482][21481:21481] CHIP:DMG: [ - [1666174663.264565][21481:21481] CHIP:DMG: AttributePathIB = - [1666174663.264645][21481:21481] CHIP:DMG: { - [1666174663.264748][21481:21481] CHIP:DMG: Endpoint = 0x1, - [1666174663.264841][21481:21481] CHIP:DMG: Cluster = 0x45, - [1666174663.264949][21481:21481] CHIP:DMG: Attribute = 0x0000_0000, - [1666174663.265057][21481:21481] CHIP:DMG: } - [1666174663.265138][21481:21481] CHIP:DMG: - [1666174663.265204][21481:21481] CHIP:DMG: ], - [1666174663.265298][21481:21481] CHIP:DMG: - [1666174663.265369][21481:21481] CHIP:DMG: isFabricFiltered = true, - [1666174663.265459][21481:21481] CHIP:DMG: InteractionModelRevision = 1 - [1666174663.265520][21481:21481] CHIP:DMG: }, - [1666174663.265714][21481:21481] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666174663.265995][21481:21481] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666174663.266093][21481:21481] CHIP:DMG: Cluster 45, Attribute 0 is dirty - [1666174663.266147][21481:21481] CHIP:DMG: Reading attribute: Cluster=0x0000_0045 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1666174663.266215][21481:21481] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0045 e=1 p=v - [1666174663.266319][21481:21481] CHIP:DMG: AccessControl: allowed - [1666174663.266439][21481:21481] CHIP:DMG: Sending report (payload has 35 bytes)... - [1666174663.267067][21481:21481] CHIP:EM: <<< [E:63626r M:36969602 (Ack:764247)] (S) Msg TX to 1:000000000001B669 [A7EF] --- Type 0001:05 (IM:ReportData) - [1666174663.267172][21481:21481] CHIP:IN: (S) Sending msg 36969602 on secure session with LSID: 53667 - [1666174663.267928][21481:21481] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:42580 | 36969602 | [Interaction Model (1) / Report Data (0x05) / Session = 58403 / Exchange = 63626] - [1666174663.268026][21481:21481] CHIP:DMG: Header Flags = - [1666174663.268086][21481:21481] CHIP:DMG: { - [1666174663.268175][21481:21481] CHIP:DMG: Exchange (0x06) = - [1666174663.268236][21481:21481] CHIP:DMG: { - [1666174663.268297][21481:21481] CHIP:DMG: AckMsg = 764247 - [1666174663.268352][21481:21481] CHIP:DMG: NeedsAck = true - [1666174663.268408][21481:21481] CHIP:DMG: } - [1666174663.268480][21481:21481] CHIP:DMG: } - [1666174663.268563][21481:21481] CHIP:DMG: - [1666174663.268634][21481:21481] CHIP:DMG: Encrypted Payload (69 bytes) = - [1666174663.268713][21481:21481] CHIP:DMG: { - [1666174663.268770][21481:21481] CHIP:DMG: data = 0023e400821c3402f21cc23126fb0db5a6a36a83d08fcf829d2e297fe7b97436aef3fcc3ebd2ceeeb3a2f101565fadaba18478940bba170ec79c8b64086d7e667b3eedd06c - [1666174663.268828][21481:21481] CHIP:DMG: buffer_ptr = 187651145559328 - [1666174663.268900][21481:21481] CHIP:DMG: } - [1666174663.268954][21481:21481] CHIP:DMG: - [1666174663.269143][21481:21481] CHIP:DMG: ReportDataMessage = - [1666174663.269211][21481:21481] CHIP:DMG: { - [1666174663.269294][21481:21481] CHIP:DMG: AttributeReportIBs = - [1666174663.269375][21481:21481] CHIP:DMG: [ - [1666174663.269437][21481:21481] CHIP:DMG: AttributeReportIB = - [1666174663.269512][21481:21481] CHIP:DMG: { - [1666174663.269584][21481:21481] CHIP:DMG: AttributeDataIB = - [1666174663.269697][21481:21481] CHIP:DMG: { - [1666174663.269794][21481:21481] CHIP:DMG: DataVersion = 0x88a29de9, - [1666174663.269947][21481:21481] CHIP:DMG: AttributePathIB = - [1666174663.270041][21481:21481] CHIP:DMG: { - [1666174663.270148][21481:21481] CHIP:DMG: Endpoint = 0x1, - [1666174663.270244][21481:21481] CHIP:DMG: Cluster = 0x45, - [1666174663.270341][21481:21481] CHIP:DMG: Attribute = 0x0000_0000, - [1666174663.270454][21481:21481] CHIP:DMG: } - [1666174663.270559][21481:21481] CHIP:DMG: - [1666174663.270656][21481:21481] CHIP:DMG: Data = false, - [1666174663.270762][21481:21481] CHIP:DMG: }, - [1666174663.270860][21481:21481] CHIP:DMG: - [1666174663.270968][21481:21481] CHIP:DMG: }, - [1666174663.271054][21481:21481] CHIP:DMG: - [1666174663.271140][21481:21481] CHIP:DMG: ], - [1666174663.271219][21481:21481] CHIP:DMG: - [1666174663.271310][21481:21481] CHIP:DMG: SuppressResponse = true, - [1666174663.271375][21481:21481] CHIP:DMG: InteractionModelRevision = 1 - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: BOOL.C.AM-READ - verification: | - This cluster doesn"t have any optional attribute - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: BOOL.C.AM-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: BOOL.C.AO-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true + wait: "readAttribute" + attribute: "StateValue" - label: "Configure TH such that it implements mandatory and none of the @@ -429,20 +315,42 @@ tests: [1666174757.467505][21506:21506] CHIP:DMG: }, [1666174757.467582][21506:21506] CHIP:DMG: [1666174757.467643][21506:21506] CHIP:DMG: ], - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" - PICS: BOOL.C.AO-READ verification: | - This cluster doesn"t have any optional attribute - disabled: true + This cluster doesn't have any optional attribute + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" - PICS: BOOL.C.AO-WRITE verification: | - This cluster doesn"t have any optional attribute - disabled: true + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml index b1e3e2e9265c39..34a9c2e31d741f 100644 --- a/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml @@ -22,102 +22,198 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 + cluster: "Bridged Device Basic Information" + endpoint: 3 tests: - - label: "Preconditions" - verification: | - Validate these PICS items of attributes which are not allowed in this server cluster implementation - these PICS items should all be FALSE, if any of them is TRUE then FAIL the test - - BRBINFO.S.A0000(DataModelRevision) - - BRBINFO.S.A0004(ProductID) - - BRBINFO.S.A0006(Location) - - BRBINFO.S.A0010(LocalConfigDisabled) - - BRBINFO.S.A0013(CapabilityMinima) - disabled: true - - - label: "Commission DUT to TH (if not already done)" - verification: | - - disabled: true + - label: "Wait for the commissioned device to be retrieved" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId - label: "TH reads the ClusterRevision from DUT" - PICS: "" - verification: | - ./chip-tool bridgeddevicebasicinformation read cluster-revision 1 3 - - On TH(chip-tool), verify DUT responsds ClusterRevision attribute has value 1 - - [1657695910.794487][15411:15416] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_FFFD DataVersion: 2577979325 - [1657695910.794568][15411:15416] CHIP:TOO: ClusterRevision: 1 - disabled: true + command: "readAttribute" + attribute: "ClusterRevision" + response: + value: 1 + constraints: + type: int16u - label: "TH reads the FeatureMap from DUT" - - verification: | - ./chip-tool bridgeddevicebasicinformation read feature-map 1 3 - - On TH(chip-tool), verify DUT responds Featuremap value as 0 - - [1658749277.166884][10254:10259] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_FFFC DataVersion: 3297319126 - [1658749277.166945][10254:10259] CHIP:TOO: FeatureMap: 0 - [1658749277.167033][10254:10259] CHIP:EM: Sending Standalone Ack for MessageCounter:190389852 on exchange 39565i - disabled: true + command: "readAttribute" + attribute: "FeatureMap" + response: + value: 0 + constraints: + type: bitmap32 - label: "TH reads AttributeList from DUT" - - verification: | - ./chip-tool bridgeddevicebasicinformation read attribute-list 1 3 - - Verify " AttributeList "should include the mandatory attributes (value 17) and if DUT supports it lists optional attribute (values 1, 2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18 ) and global attributes (value 65533, 65532, 65531, 65530, 65529 and 65528) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1676277997.061046][3751:3753] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_FFFB DataVersion: 1860081282 - [1676277997.061134][3751:3753] CHIP:TOO: AttributeList: 8 entries - [1676277997.061192][3751:3753] CHIP:TOO: [1]: 5 - [1676277997.061220][3751:3753] CHIP:TOO: [2]: 17 - [1676277997.061245][3751:3753] CHIP:TOO: [3]: 65528 - [1676277997.061274][3751:3753] CHIP:TOO: [4]: 65529 - [1676277997.061306][3751:3753] CHIP:TOO: [5]: 65530 - [1676277997.061337][3751:3753] CHIP:TOO: [6]: 65531 - [1676277997.061367][3751:3753] CHIP:TOO: [7]: 65532 - [1676277997.061399][3751:3753] CHIP:TOO: [8]: 65533 - disabled: true - - - label: "TH reads EventList from DUT" - - verification: | - ./chip-tool bridgeddevicebasicinformation read event-list 1 3 - - On TH(chip-tool), Verify that DUT response contains list of supported events, for this cluster the list is empty(0 enties) - - 1676439985.362352][22002:22004] CHIP:DMG: } - [1676439985.362396][22002:22004] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_FFFA DataVersion: 266846256 - [1676439985.362407][22002:22004] CHIP:TOO: EventList: 0 entries - disabled: true - - - label: "TH reads AcceptedCommandList from DUT" - - verification: | - ./chip-tool bridgeddevicebasicinformation read accepted-command-list 1 3 - - On TH(chip-tool), verify DUT responds as list of Accepted Commands as 0 entries - - [1657696300.165081][15447:15452] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_FFF9 DataVersion: 2577979325 - [1657696300.165174][15447:15452] CHIP:TOO: AcceptedCommandList: 0 entries - disabled: true - - - label: "TH reads GeneratedCommandList from DUT" - - verification: | - ./chip-tool bridgeddevicebasicinformation read generated-command-list 1 3 - - On TH(chip-tool), verify that DUT responds as list of GeneratedCommands as 0 entries - - [1657696328.889936][15454:15459] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_FFF8 DataVersion: 2577979325 - [1657696328.890017][15454:15459] CHIP:TOO: GeneratedCommandList: 0 entries - disabled: true + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [17, 65528, 65529, 65531, 65532, 65533] + + - label: "TH reads optional attribute(VendorName) in AttributeList" + PICS: BRBINFO.S.A0001 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [1] + + - label: "TH reads optional attribute(VendorID) in AttributeList" + PICS: BRBINFO.S.A0002 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [2] + + - label: "TH reads optional attribute(ProductName) in AttributeList" + PICS: BRBINFO.S.A0003 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [3] + + - label: "TH reads optional attribute(NodeLabel) in AttributeList" + PICS: BRBINFO.S.A0005 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [5] + + - label: "TH reads optional attribute(HardwareVersion) in AttributeList" + PICS: BRBINFO.S.A0007 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [7] + + - label: + "TH reads optional attribute(HardwareVersionString) in AttributeList" + PICS: BRBINFO.S.A0008 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [8] + + - label: "TH reads optional attribute(SoftwareVersion) in AttributeList" + PICS: BRBINFO.S.A0009 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [9] + + - label: + "TH reads optional attribute(SoftwareVersionString) in AttributeList" + PICS: BRBINFO.S.A000a + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [10] + + - label: "TH reads optional attribute(ManufacturingDate) in AttributeList" + PICS: BRBINFO.S.A000b + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [11] + + - label: "TH reads optional attribute(PartNumber) in AttributeList" + PICS: BRBINFO.S.A000c + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [12] + + - label: "TH reads optional attribute(ProductURL) in AttributeList" + PICS: BRBINFO.S.A000d + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [13] + + - label: "TH reads optional attribute(ProductLabel) in AttributeList" + PICS: BRBINFO.S.A000e + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [14] + + - label: "TH reads optional attribute(SerialNumber) in AttributeList" + PICS: BRBINFO.S.A000f + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [15] + + - label: "TH reads optional attribute(UniqueID) in AttributeList" + PICS: BRBINFO.S.A0012 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [18] + + #Commenting out the step EventList attribute which is out of scope for matter V1.0 + #- label: + # "Read EventList attribute from the DUT and Verify that the DUT + # response provides a list of supported events." + # verification: | + # Not implemented in chip-tool + # cluster: "LogCommands" + # command: "UserPrompt" + # PICS: PICS_USER_PROMPT + # arguments: + # values: + # - name: "message" + # value: "Please enter 'y' for success" + # - name: "expectedValue" + # value: "y" + + - label: "TH1 reads AcceptedCommandList from DUT" + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + value: [] + constraints: + type: list + + - label: "TH1 reads GeneratedCommandList from DUT" + command: "readAttribute" + attribute: "GeneratedCommandList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml index 35a8f0b2ea658e..eab05599ed5d52 100644 --- a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml @@ -20,125 +20,126 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 + cluster: "Bridged Device Basic Information" + endpoint: 3 tests: + - label: "Wait for the commissioned device to be retrieved" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + - label: "TH reads VendorName from the DUT." PICS: BRBINFO.S.A0001 - verification: | - ./chip-tool bridgeddevicebasicinformation read vendor-name 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656495199.434300][2158:2163] CHIP:TOO: VendorName: TEST_VENDOR - disabled: true - - - label: "TH writes VendorName as sample" + command: "readAttribute" + attribute: "VendorName" + response: + saveAs: VendorNameValue + constraints: + type: char_string + maxLength: 32 + + - label: "TH writes VendorName from the DUT." PICS: BRBINFO.S.A0001 - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 1 ""vendor-name sample"" 1 3 + command: "writeAttribute" + attribute: "VendorName" + arguments: + value: "sample" + response: + error: UNSUPPORTED_WRITE - Verify response has UNSUPPORTED_WRITE write on TH(chip-tool) Log: - - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads VendorName" + - label: "TH reads VendorName from the DUT." PICS: BRBINFO.S.A0001 - verification: | - ./chip-tool bridgeddevicebasicinformation read vendor-name 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656495199.434300][2158:2163] CHIP:TOO: VendorName: TEST_VENDOR - disabled: true + command: "readAttribute" + attribute: "VendorName" + response: + value: VendorNameValue - label: "TH reads VendorID from the DUT." PICS: BRBINFO.S.A0002 - verification: | - ./chip-tool bridgeddevicebasicinformation read vendor-id 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE + command: "readAttribute" + attribute: "VendorID" + response: + saveAs: VendorIDValue + constraints: + type: vendor_id + minValue: 1 + maxValue: 65521 - Example Log: - [1656495322.252171][2177:2182] CHIP:TOO: VendorID: 65521 - disabled: true - - - label: "TH writes VendorID as 0x0011" + - label: + "Verify that VendorID matches the value assigned to this manufacturer" + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && BRBINFO.S.A0002 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: "TH writes VendorID from the DUT." PICS: BRBINFO.S.A0002 - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 2 5 1 3 + command: "writeAttribute" + attribute: "VendorID" + arguments: + value: 0x0011 + response: + error: UNSUPPORTED_WRITE - Verify DUT responds with unsupported write on TH(chip-tool) Log: - - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads VendorID" + - label: "TH reads VendorID from the DUT." PICS: BRBINFO.S.A0002 - verification: | - ./chip-tool bridgeddevicebasicinformation read vendor-id 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE + command: "readAttribute" + attribute: "VendorID" + response: + value: VendorIDValue - Example Log: - [1656495322.252171][2177:2182] CHIP:TOO: VendorID: 65521 - disabled: true - - - label: "TH reads ProductName from the DUT." + - label: "TH reads ProductName from the DUT" PICS: BRBINFO.S.A0003 - verification: | - ./chip-tool bridgeddevicebasicinformation read product-name 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656495708.412745][2200:2205] CHIP:TOO: ProductName: TEST_PRODUCT - disabled: true - - - label: "TH writes ProductName as newproduct" + command: "readAttribute" + attribute: "ProductName" + response: + saveAs: ProductNameValue + constraints: + type: char_string + maxLength: 32 + + - label: "TH writes ProductName from the DUT." PICS: BRBINFO.S.A0003 - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 3 ""newproduct"" 1 3 - - Verify DUT responds with unsupported write on TH(chip-tool) Log: - - NOTE the quotes: single-quote/double-quote/string/double-quote/single-quote - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads ProductName" + command: "writeAttribute" + attribute: "ProductName" + arguments: + value: "newproduct" + response: + error: UNSUPPORTED_WRITE + + - label: "TH reads ProductName from the DUT" PICS: BRBINFO.S.A0003 - verification: | - ./chip-tool bridgeddevicebasicinformation read product-name 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656495708.412745][2200:2205] CHIP:TOO: ProductName: TEST_PRODUCT - disabled: true + command: "readAttribute" + attribute: "ProductName" + response: + value: ProductNameValue - label: "TH reads NodeLabel from the DUT" PICS: BRBINFO.S.A0005 - verification: | - ./chip-tool bridgeddevicebasicinformation read node-label 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE + command: "readAttribute" + attribute: "NodeLabel" + response: + saveAs: NodeLabelValue + constraints: + type: char_string + maxLength: 32 - Example Log: - [1657696463.081741][15476:15481] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 2577979325 - [1657696463.081791][15476:15481] CHIP:TOO: NodeLabel: Light 1 - disabled: true - - - label: "TH writes newnode to NodeLabel" - PICS: BRBINFO.S.A0005 + #Issue https://github.com/project-chip/connectedhomeip/issues/23509 + - label: "TH writes NodeLabel from the DUT." + PICS: BRBINFO.S.A0005 && PICS_USER_PROMPT verification: | - ./chip-tool bridgeddevicebasicinformation write node-label ""newnode"" 1 3 + ./chip-tool bridgeddevicebasicinformation write node-label '"newnode"' 1 3 - Verify response has UNSUPPORTED_WRITE on TH(chip-tool) Log: + Verify response has unsupported write on TH(chip-tool) Log: NOTE the quotes: single-quote/double-quote/string/double-quote/single-quote @@ -151,380 +152,360 @@ tests: [1660839701.840827][2444:2449] CHIP:DMG: }, [1660839701.840905][2444:2449] CHIP:DMG: [1660839701.840973][2444:2449] CHIP:DMG: }, - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + arguments: + values: + - name: "message" + value: "Please enter 'y' after success" + - name: "expectedValue" + value: "y" - - label: "TH reads NodeLabel" - PICS: BRBINFO.S.A0005 + - label: "TH reads NodeLabel from the DUT" + PICS: BRBINFO.S.A0005 && PICS_USER_PROMPT verification: | ./chip-tool bridgeddevicebasicinformation read node-label 1 3 Verify the value of node-label is type of string and contains length between 0 and 32 in TH(chip-tool) Log: - Note: If the write access is implemented then the value of the of the Nodelabel will be changed into "newnode" [1657696463.081741][15476:15481] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 2577979325 - [1657696463.081791][15476:15481] CHIP:TOO: NodeLabel: Light 1 - disabled: true - - - label: "TH reads HardwareVersion from the DUT." + [1657696463.081791][15476:15481] CHIP:TOO: NodeLabel: newnode + cluster: "LogCommands" + command: "UserPrompt" + arguments: + values: + - name: "message" + value: "Please enter 'y' after success" + - name: "expectedValue" + value: "y" + + - label: "TH reads HardwareVersion from the DUT" PICS: BRBINFO.S.A0007 - verification: | - ./chip-tool bridgeddevicebasicinformation read hardware-version 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656496175.564718][2302:2307] CHIP:TOO: HardwareVersion: 0 - disabled: true - - - label: "TH writes HardwareVersion as 0x4531" + command: "readAttribute" + attribute: "HardwareVersion" + response: + saveAs: HardwareVersionValue + constraints: + type: int16u + minValue: 0 + maxValue: 65534 + + - label: "TH writes HardwareVersion from the DUT." PICS: BRBINFO.S.A0007 - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 7 ""hardware-version 0x4531"" 1 3 - - Verify DUT responds with unsupported write on TH(chip-tool) Log: - - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads HardwareVersion" + command: "writeAttribute" + attribute: "HardwareVersion" + arguments: + value: 0x4531 + response: + error: UNSUPPORTED_WRITE + + - label: "TH reads HardwareVersion from the DUT" PICS: BRBINFO.S.A0007 - verification: | - ./chip-tool bridgeddevicebasicinformation read hardware-version 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656496175.564718][2302:2307] CHIP:TOO: HardwareVersion: 0 - disabled: true + command: "readAttribute" + attribute: "HardwareVersion" + response: + value: HardwareVersionValue - label: "TH reads HardwareVersionString from the DUT." PICS: BRBINFO.S.A0008 - verification: | - ./chip-tool bridgeddevicebasicinformation read hardware-version-string 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656496257.298675][2315:2320] CHIP:TOO: HardwareVersionString: TEST_VERSION - disabled: true - - - label: "TH writes HardwareVersionString as newhardwareversion" + command: "readAttribute" + attribute: "HardwareVersionString" + response: + saveAs: HardwareVersionStringValue + constraints: + type: char_string + minLength: 1 + maxLength: 64 + + - label: "TH writes HardwareVersionString from the DUT." PICS: BRBINFO.S.A0008 - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 8 ""hardware-version-string newhardwareversion"" 1 3 + command: "writeAttribute" + attribute: "HardwareVersionString" + arguments: + value: "newhardwareversion" + response: + error: UNSUPPORTED_WRITE - Verify response has unsupported write on TH(chip-tool) Log: - - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads HardwareVersionString" + - label: "TH reads HardwareVersionString from the DUT." PICS: BRBINFO.S.A0008 - verification: | - ./chip-tool bridgeddevicebasicinformation read hardware-version-string 1 3 + command: "readAttribute" + attribute: "HardwareVersionString" + response: + value: HardwareVersionStringValue - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656496257.298675][2315:2320] CHIP:TOO: HardwareVersionString: TEST_VERSION - disabled: true - - - label: "TH reads SoftwareVersion from the DUT." + - label: "TH reads SoftwareVersion from the DUT" PICS: BRBINFO.S.A0009 - verification: | - ./chip-tool bridgeddevicebasicinformation read software-version 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656496411.609866][2348:2353] CHIP:TOO: SoftwareVersion: 1 - disabled: true - - - label: "TH writes SoftwareVersion as 0x8213" + command: "readAttribute" + attribute: "SoftwareVersion" + response: + saveAs: SoftwareVersionValue + constraints: + minValue: 0 + maxValue: 4294967294 + + - label: "TH writes SoftwareVersion from the DUT." PICS: BRBINFO.S.A0009 - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 9 ""software-version 0x8213"" 1 3 - - Verify DUT responds with unsupported write on TH(chip-tool) Log: - - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads SoftwareVersion" + command: "writeAttribute" + attribute: "SoftwareVersion" + arguments: + value: 0x8213 + response: + error: UNSUPPORTED_WRITE + + - label: "TH reads SoftwareVersion from the DUT" PICS: BRBINFO.S.A0009 - verification: | - ./chip-tool bridgeddevicebasicinformation read software-version 1 3 + command: "readAttribute" + attribute: "SoftwareVersion" + response: + value: SoftwareVersionValue - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656496411.609866][2348:2353] CHIP:TOO: SoftwareVersion: 1 - disabled: true - - - label: "TH reads SoftwareVersionString from the DUT." + - label: "TH reads SoftwareVersionString from the DUT" PICS: BRBINFO.S.A000a - verification: | - ./chip-tool bridgeddevicebasicinformation read software-version-string 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656496498.568951][2362:2367] CHIP:TOO: SoftwareVersionString: 1.0 - disabled: true - - - label: "TH writes SoftwareVersionString as 1.0" + command: "readAttribute" + attribute: "SoftwareVersionString" + response: + saveAs: SoftwareVersionStringValue + constraints: + minLength: 1 + maxLength: 64 + + - label: "TH writes SoftwareVersionString from the DUT." PICS: BRBINFO.S.A000a - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 10 ""software-version-string 1.0"" 1 3 - - Verify response has unsupported write on TH(chip-tool) Log: - - - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads SoftwareVersionString" + command: "writeAttribute" + attribute: "SoftwareVersionString" + arguments: + value: "1.0" + response: + error: UNSUPPORTED_WRITE + + - label: "TH reads SoftwareVersionString from the DUT" PICS: BRBINFO.S.A000a - verification: | - ./chip-tool bridgeddevicebasicinformation read software-version-string 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656496498.568951][2362:2367] CHIP:TOO: SoftwareVersionString: 1.0 - disabled: true + command: "readAttribute" + attribute: "SoftwareVersionString" + response: + value: SoftwareVersionStringValue - label: "TH reads ManufacturingDate from the DUT." PICS: BRBINFO.S.A000b - verification: | - ./chip-tool bridgeddevicebasicinformation read manufacturing-date 1 3 + command: "readAttribute" + attribute: "ManufacturingDate" + response: + saveAs: ManufacturingDateValue + constraints: + type: char_string + minLength: 8 + maxLength: 16 - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656496661.777852][2388:2393] CHIP:TOO: ManufacturingDate: 20200101 - disabled: true - - - label: "TH writes ManufacturingDate as 20210814789452IN" + - label: + "Verify if the first 8 characters specify date according to ISO 8601, + i.e, YYYYMMDD." + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && BRBINFO.S.A000b + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: "TH writes ManufacturingDate from the DUT." PICS: BRBINFO.S.A000b - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 11 ""manufacturing-date 20210814789452IN"" 1 3 - - Verify DUT responds with unsupported write on TH(chip-tool) Log: + command: "writeAttribute" + attribute: "ManufacturingDate" + arguments: + value: "20210814789452IN" + response: + error: UNSUPPORTED_WRITE - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads ManufacturingDate" + - label: "TH reads ManufacturingDate from the DUT." PICS: BRBINFO.S.A000b - verification: | - ./chip-tool bridgeddevicebasicinformation read manufacturing-date 1 3 + command: "readAttribute" + attribute: "ManufacturingDate" + response: + value: ManufacturingDateValue - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656496661.777852][2388:2393] CHIP:TOO: ManufacturingDate: 20200101 - disabled: true - - - label: "TH reads PartNumber from the DUT." + - label: "TH reads PartNumber from the DUT" PICS: BRBINFO.S.A000c - verification: | - ./chip-tool bridgeddevicebasicinformation read part-number 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1656496800.941788][2405:2410] CHIP:TOO: PartNumber: 1234 - disabled: true - - - label: "TH writes PartNumber as newpart" + command: "readAttribute" + attribute: "PartNumber" + response: + saveAs: PartNumberValue + constraints: + type: char_string + maxLength: 32 + + - label: "TH writes PartNumber from the DUT." PICS: BRBINFO.S.A000c - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 12 ""part-number newpart"" 1 3 - - Verify response has unsupported write on TH(chip-tool) Log: - - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads PartNumber" + command: "writeAttribute" + attribute: "PartNumber" + arguments: + value: "newpart" + response: + error: UNSUPPORTED_WRITE + + - label: "TH reads PartNumber from the DUT" PICS: BRBINFO.S.A000c - verification: | - ./chip-tool bridgeddevicebasicinformation read part-number 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE + command: "readAttribute" + attribute: "PartNumber" + response: + value: PartNumberValue - Example Log: - [1656496800.941788][2405:2410] CHIP:TOO: PartNumber: 1234 - disabled: true - - - label: "TH reads ProductURL from the DUT." + - label: "TH reads ProductURL from the DUT" PICS: BRBINFO.S.A000d - verification: | - ./chip-tool bridgeddevicebasicinformation read product-url 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1656497181.118653][2436:2441] CHIP:TOO: ProductURL: https://example.com/myproduct - disabled: true + command: "readAttribute" + attribute: "ProductURL" + response: + saveAs: ProductURLValue + constraints: + type: long_char_string + maxLength: 256 - - label: "TH writes ProductURL as https://www.example.com" + - label: + "Verify that it specifies a link to a specific web page, Verify that + it follows the syntax rules specified in RFC 3986." + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && BRBINFO.S.A000d + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: "TH writes ProductURL from the DUT." PICS: BRBINFO.S.A000d - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 13 ""product-url https://www.example.com"" 1 3 - - Verify response has unsupported write on TH(chip-tool) Log: - - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads ProductURL" + command: "writeAttribute" + attribute: "ProductURL" + arguments: + value: "https://www.example.com" + response: + error: UNSUPPORTED_WRITE + + - label: "TH reads ProductURL from the DUT" PICS: BRBINFO.S.A000d - verification: | - ./chip-tool bridgeddevicebasicinformation read product-url 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656497181.118653][2436:2441] CHIP:TOO: ProductURL: https://example.com/myproduct - disabled: true + command: "readAttribute" + attribute: "ProductURL" + response: + value: ProductURLValue - label: "TH reads ProductLabel from the DUT." PICS: BRBINFO.S.A000e - verification: | - ./chip-tool bridgeddevicebasicinformation read product-label 1 3 + command: "readAttribute" + attribute: "ProductLabel" + response: + saveAs: ProductLabelValue + constraints: + type: char_string + maxLength: 64 - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1656501313.811305][2602:2607] CHIP:TOO: ProductLabel: ABCD - disabled: true - - - label: "TH writes ProductLabel as newproductlabel" + - label: + "Verify that it does not include the name of the vendor as defined + within the VendorName attribute" + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && BRBINFO.S.A000e + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: "TH writes ProductLabel from the DUT." PICS: BRBINFO.S.A000e - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 14 ""product-label newproductlabel"" 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE + command: "writeAttribute" + attribute: "ProductLabel" + arguments: + value: "newproductlabel" + response: + error: UNSUPPORTED_WRITE - Example Log: - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads ProductLabel" + - label: "TH reads ProductLabel from the DUT." PICS: BRBINFO.S.A000e - verification: | - ./chip-tool bridgeddevicebasicinformation read product-label 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656501313.811305][2602:2607] CHIP:TOO: ProductLabel: ABCD - disabled: true + command: "readAttribute" + attribute: "ProductLabel" + response: + value: ProductLabelValue - label: "TH reads SerialNumber from the DUT." PICS: BRBINFO.S.A000f - verification: | - ./chip-tool bridgeddevicebasicinformation read serial-number 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1656501452.183890][2624:2630] CHIP:TOO: SerialNumber: 5678 - disabled: true - - - label: "TH writes SerialNumber_test as newserialnumber" + command: "readAttribute" + attribute: "SerialNumber" + response: + saveAs: SerialNumberValue + constraints: + type: char_string + maxLength: 32 + + - label: "TH writes SerialNumber from the DUT." PICS: BRBINFO.S.A000f - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 15 ""serial-number newserialnumber"" 1 3 + command: "writeAttribute" + attribute: "SerialNumber" + arguments: + value: "newserialnumber" + response: + error: UNSUPPORTED_WRITE - Verify DUT responds with unsupported write on TH(chip-tool) Log: - - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads SerialNumber" + - label: "TH reads SerialNumber from the DUT." PICS: BRBINFO.S.A000f - verification: | - ./chip-tool bridgeddevicebasicinformation read serial-number 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656501452.183890][2624:2630] CHIP:TOO: SerialNumber: 5678 - disabled: true + command: "readAttribute" + attribute: "SerialNumber" + response: + value: SerialNumberValue - label: "TH reads Reachable from the DUT." PICS: BRBINFO.S.A0011 - verification: | - ./chip-tool bridgeddevicebasicinformation read reachable 1 3 - - Verify the value of reachable is of type of bool and its true in TH Log: - - [1659012746.234251][8169:8174] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0011 DataVersion: 1363291551 - [1659012746.234309][8169:8174] CHIP:TOO: Reachable: TRUE - [1659012746.234420][8169:8174] CHIP:EM: Sending Standalone Ack for MessageCounter:92645971 on exchange 389i - disabled: true + command: "readAttribute" + attribute: "Reachable" + response: + value: true + constraints: + type: boolean - label: "TH sends Write request message to DUT to change value of Reachable to - false." + false" PICS: BRBINFO.S.A0011 - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 17 false 1 3 - - Verify DUT responds with unsupported write on TH(chip-tool) Log: - [1656496372.884955][2340:2345] CHIP:DMG: } - [1656496372.885085][2340:2345] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1656496372.885148][2340:2345] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - [1656496372.885242][2340:2345] CHIP:EM: Sending Standalone Ack for MessageCounter:201795946 on exchange 27637ihe attribute is optional so no example log can be provided. - disabled: true + command: "writeAttribute" + attribute: "Reachable" + arguments: + value: false + response: + error: UNSUPPORTED_WRITE - label: "TH reads Reachable from the DUT." PICS: BRBINFO.S.A0011 - verification: | - ./chip-tool bridgeddevicebasicinformation read reachable 1 3 - On TH(Chip tool), verify that the value of reachable is type is same as step 51 - - [1659012746.234251][8169:8174] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0011 DataVersion: 1363291551 - [1659012746.234309][8169:8174] CHIP:TOO: Reachable: TRUE - [1659012746.234420][8169:8174] CHIP:EM: Sending Standalone Ack for MessageCounter:92645971 on exchange 389i - disabled: true + command: "readAttribute" + attribute: "Reachable" + response: + value: true + constraints: + type: boolean - label: "TH reads UniqueID from the DUT." PICS: BRBINFO.S.A0012 - verification: | - ./chip-tool bridgeddevicebasicinformation read unique-id 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1656501734.253827][2673:2679] CHIP:TOO: UniqueID: 30789FE4FCF832C9 - disabled: true - - - label: "TH writes UniqueID as newid" + command: "readAttribute" + attribute: "UniqueID" + response: + saveAs: UniqueIDValue + constraints: + type: char_string + maxLength: 32 + + - label: "TH writes UniqueID from the DUT." PICS: BRBINFO.S.A0012 - verification: | - ./chip-tool bridgeddevicebasicinformation write-by-id 18 ""unique-id newid"" 1 3 - - Verify response has unsupported write on TH(chip-tool) Log: + command: "writeAttribute" + attribute: "UniqueID" + arguments: + value: "newid" + response: + error: UNSUPPORTED_WRITE - [1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - disabled: true - - - label: "TH reads UniqueID" + - label: "TH reads UniqueID from the DUT." PICS: BRBINFO.S.A0012 - verification: | - ./chip-tool bridgeddevicebasicinformation read unique-id 1 3 - - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1656501734.253827][2673:2679] CHIP:TOO: UniqueID: 30789FE4FCF832C9 - disabled: true + command: "readAttribute" + attribute: "UniqueID" + response: + value: UniqueIDValue diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml index 1900bc2dc6e57b..450b804aca1489 100644 --- a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml @@ -60,13 +60,13 @@ tests: 1. ./chip-tool interactive start 2. bridgeddevicebasicinformation subscribe reachable 1 60 1 4 - 3. press "u" on bridge-app to change reachable to false for endpoint 4 and see the reachable value has been changed compared with precondition + 3. press 'u' on bridge-app to change reachable to false for endpoint 4 and see the reachable value has been changed compared with precondition [1659441181.388547][2392:2397] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0039 Attribute 0x0000_0011 DataVersion: 2189020906 [1659441181.388600][2392:2397] CHIP:TOO: Reachable: FALSE [1659441181.388651][2392:2397] CHIP:DMG: MoveToState ReadClient[0xffff7c005ac0]: Moving to [AwaitingSu] - 4. press "v" on bridge-app to change reachable to true for endpoint 4 + 4. press 'v' on bridge-app to change reachable to true for endpoint 4 [1659441193.443232][2392:2397] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0039 Attribute 0x0000_0011 DataVersion: 2189020907 [1659441193.443267][2392:2397] CHIP:TOO: Reachable: TRUE diff --git a/src/app/tests/suites/certification/Test_TC_BR_1.yaml b/src/app/tests/suites/certification/Test_TC_BR_1.yaml index a0d8a4985d252d..6b096d4b246bd6 100644 --- a/src/app/tests/suites/certification/Test_TC_BR_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BR_1.yaml @@ -462,9 +462,10 @@ tests: perform the tests for Bridged Device Basic Information cluster" PICS: MCORE.BRIDGE verification: | - For Bridged Device Basic Information cluster, ref the test plan (https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/cluster/bridged_device_basic_information.adoc) + For Bridged Device Basic Information cluster, ref the test plan + (https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/cluster/bridged_device_basic_information.adoc) - ./chip-tool bridgeddevicebasicinformation read reachable 1 3 + ./chip-tool bridgeddevicebasicinformation read reachable 1 3 Verify reachable attribute is read successfully in TH(chip-tool) Log @@ -476,7 +477,7 @@ tests: Verify Node-label is read sucessfully in TH(chip-tool) Log [1657003598.573764][4552:4557] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 3722118563 - [1657003598.573811][4552:4557] CHIP:TOO: NodeLabel: Switch 1 + [1657003598.573811][4552:4557] CHIP:TOO: NodeLabel: TempSensor 1 disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_BR_2.yaml b/src/app/tests/suites/certification/Test_TC_BR_2.yaml index 000aba16a21066..32481bf96243d0 100644 --- a/src/app/tests/suites/certification/Test_TC_BR_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BR_2.yaml @@ -509,7 +509,7 @@ tests: "Read the PartsList and DeviceTypeList attributes of the Descriptor cluster on endpoint 0" verification: | - Verify DeviceTypeList has not changed compared to step 1a and PartsList contains exactly one endpoint which previously was not present which is higher than the previously used highest endpoint and also make sure the previously listed endpoint doesn"t change + Verify DeviceTypeList has not changed compared to step 1a and PartsList contains exactly one endpoint which previously was not present which is higher than the previously used highest endpoint and also make sure the previously listed endpoint doesn't change ./chip-tool descriptor read parts-list 1 0 @@ -959,7 +959,7 @@ tests: [1659351487.005831][12201:12207] CHIP:TOO: MeasuredValue: 100 [1659351487.005924][12201:12207] CHIP:EM: Sending Standalone Ack for MessageCounter:236763897 on exchange 8128i - 3) Press a key "tbd" on bridge-app to change the simulated temperature + 3) Press a key 't' on bridge-app to change the simulated temperature Verify on bridge-app @@ -1687,7 +1687,7 @@ tests: - /chip-tool descriptor read device-type-list 1 14 + ./chip-tool descriptor read device-type-list 1 14 Verify the DeviceTypeList entries with endpoint 14 On TH(chip-tool) Log 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 33470fdfa0d5c6..fd650f7795107a 100644 --- a/src/app/tests/suites/certification/Test_TC_BR_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_BR_4.yaml @@ -6826,11 +6826,11 @@ tests: - label: "Use TH/bridge-app to change the simulated temperature level of the - simulated temperature sensors (use key '' in the console to + simulated temperature sensors (use key 't' in the console to bridge-app)" PICS: MCORE.DEVLIST.UseDeviceState verification: | - Press a key 'tbd' on bridge-app to change the simulated temperature + Press a key 't' on bridge-app to change the simulated temperature ./chip-tool temperaturemeasurement read measured-value 1 4 diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml index dc92fa0d20775b..8002a8c64ff71d 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml @@ -212,9 +212,9 @@ tests: ./chip-tool basicinformation read node-label 2 0 --commissioner-name beta - Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter - [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2 - [1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53 + [1678876803.495007][714337:714339] CHIP:SC: Received error (protocol code 1) during pairing process: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1727: CHIP Error 0x000000C9: No shared trusted root + [1678876803.495018][714337:714339] CHIP:IN: SecureSession[0x7f2764026220]: Released - Type:2 LSID:16528 + [1678876803.495040][714337:714339] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1727: CHIP Error 0x000000C9: No shared trusted root at ../../commands/clusters/ModelCommand.cpp:62 cluster: "LogCommands" command: "UserPrompt" arguments: diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml index 08f9483b6c61aa..bcd7cdee8cfe3e 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_4_5.yaml @@ -124,7 +124,7 @@ tests: - After 30 Seconds, Verify response contains an CurrentSaturation value in TH(all-clusters-app) Logs: + After 30 Seconds, Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: ReportDataMessage = [1666948964.837074][53014:53014] CHIP:DMG: { [1666948964.837078][53014:53014] CHIP:DMG: AttributeReportIBs = @@ -200,7 +200,7 @@ tests: ./chip-tool colorcontrol read current-saturation 1 1 - After 10 seconds, Verify response contains an CurrentSaturation value in TH(all-clusters-app) Logs: + After 10 seconds, Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: ReportDataMessage = [1666949021.698047][53014:53014] CHIP:DMG: { @@ -275,7 +275,7 @@ tests: verification: | ./chip-tool colorcontrol read current-saturation 1 1 - After 20 Seconds, Verify response contains an CurrentSaturation value in TH(all-clusters-app) Logs: + After 20 Seconds, Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: ReportDataMessage = [1666949085.456270][53014:53014] CHIP:DMG: { [1666949085.456272][53014:53014] CHIP:DMG: AttributeReportIBs = @@ -350,7 +350,7 @@ tests: verification: | ./chip-tool colorcontrol read current-hue 1 1 - After 20 Seconds, Verify response contains an CurrentHue value in TH(all-clusters-app) Logs: + After 20 Seconds, Verify response contains CurrentHue value in TH(all-clusters-app) Logs: ReportDataMessage = [1666949242.902165][53014:53014] CHIP:DMG: { @@ -455,7 +455,8 @@ tests: verification: | ./chip-tool colorcontrol read current-saturation 1 1 - Verify response contains an CurrentSaturation value in TH(all-clusters-app) Logs: + + Verify response contains CurrentSaturation value in TH(all-clusters-app) Logs: ReportDataMessage = [1667371661.960880][9339:9339] CHIP:DMG: { [1667371661.960882][9339:9339] CHIP:DMG: AttributeReportIBs = diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml index b534592dcae890..7f56af96c79ea2 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml @@ -88,7 +88,7 @@ tests: ./chip-tool colorcontrol read color-temp-physical-min-mireds 1 1 - Verify response contains an ColorTempPhysicalMinMireds in TH(all-clusters-app) Logs: + Verify response contains ColorTempPhysicalMinMireds in TH(all-clusters-app) Logs: ReportDataMessage = [1666938560.591915][48087:48087] CHIP:DMG: { [1666938560.591917][48087:48087] CHIP:DMG: AttributeReportIBs = @@ -154,7 +154,7 @@ tests: ./chip-tool colorcontrol move-to-color-temperature 150 300 0 0 1 1 - Verify response contains an ColorTemperatureMireds in TH(all-clusters-app) Logs: + Verify response contains ColorTemperatureMireds in TH(all-clusters-app) Logs: InvokeRequestMessage = [1666938707.093236][48087:48087] CHIP:DMG: { [1666938707.093240][48087:48087] CHIP:DMG: suppressResponse = false, @@ -193,7 +193,7 @@ tests: ./chip-tool colorcontrol read color-temperature-mireds 1 1 - After 30s, Verify response contains an ColorTemperatureMireds value same as step 2a in TH(all-clusters-app) Logs: + After 30s, Verify response contains ColorTemperatureMireds value same as step 2a in TH(all-clusters-app) Logs: ReportDataMessage = [1666947907.661931][52495:52495] CHIP:DMG: { [1666947907.661934][52495:52495] CHIP:DMG: AttributeReportIBs = @@ -227,7 +227,7 @@ tests: verification: | ./chip-tool colorcontrol move-color-temperature 1 16319 0 65279 0 0 1 1 - Verify response contains an ColorTemperatureMireds in TH(all-clusters-app) Logs: + Verify response contains ColorTemperatureMireds in TH(all-clusters-app) Logs: InvokeRequestMessage = [1666947955.621548][52495:52495] CHIP:DMG: { @@ -268,7 +268,7 @@ tests: verification: | ./chip-tool colorcontrol read color-temperature-mireds 1 1 - After 10 Seconds, Verify response contains an ColorTemperatureMireds value same as step 3a in TH(all-clusters-app) Logs: + After 10 Seconds, Verify response contains ColorTemperatureMireds value same as step 3a in TH(all-clusters-app) Logs: [ReportDataMessage = [1666947999.628386][52495:52495] CHIP:DMG: { [1666947999.628389][52495:52495] CHIP:DMG: AttributeReportIBs = diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml index 04cf84c81df1a4..b37d3b5fa7ec88 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_7_5.yaml @@ -122,7 +122,7 @@ tests: ./chip-tool colorcontrol read enhanced-current-hue 1 1 - After 20s, Verify response contains a EnhancedCurrentHue value in TH(all-clusters-app) Logs: + After 20s, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: ReportDataMessage = [1666943789.581293][50952:50952] CHIP:DMG: { [1666943789.581297][50952:50952] CHIP:DMG: AttributeReportIBs = @@ -196,7 +196,7 @@ tests: verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - After 10 Seconds, Verify response contains a EnhancedCurrentHue value in TH(all-clusters-app) Logs: + After 10 Seconds, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: ReportDataMessage = [1666947043.201089][52174:52174] CHIP:DMG: { [1666947043.201091][52174:52174] CHIP:DMG: AttributeReportIBs = @@ -270,7 +270,7 @@ tests: verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - After 20 Seconds, Verify response contains a EnhancedCurrentHue value in TH(all-clusters-app) Logs: + After 20 Seconds, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: ReportDataMessage = [1666947270.561812][52174:52174] CHIP:DMG: { [1666947270.561820][52174:52174] CHIP:DMG: AttributeReportIBs = @@ -345,7 +345,7 @@ tests: ./chip-tool colorcontrol read enhanced-current-hue 1 1 - After 20 Seconds, Verify response contains a EnhancedCurrentHue value in TH(all-clusters-app) Logs: + After 20 Seconds, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: ReportDataMessage = [1666947536.315693][52174:52174] CHIP:DMG: { [1666947536.315696][52174:52174] CHIP:DMG: AttributeReportIBs = @@ -448,7 +448,7 @@ tests: ./chip-tool colorcontrol read enhanced-current-hue 1 1 - Verify response contains a EnhancedCurrentHue value in TH(all-clusters-app) Logs: + Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: ReportDataMessage = [1666947687.412287][52174:52174] CHIP:DMG: { [1666947687.412291][52174:52174] CHIP:DMG: AttributeReportIBs = diff --git a/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml index a902918714be65..33e064b8c35b0a 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_9_4.yaml @@ -119,7 +119,7 @@ tests: verification: | ./chip-tool colorcontrol read color-loop-active 1 1 - Verify response contains a value consistent in TH(all-clusters-app) Logs: + Verify response contains colorLoopActive value in TH(all-clusters-app) Logs: ReportDataMessage = [1666943470.409724][50787:50787] CHIP:DMG: { [1666943470.409725][50787:50787] CHIP:DMG: AttributeReportIBs = @@ -153,7 +153,7 @@ tests: verification: | ./chip-tool colorcontrol read color-loop-direction 1 1 - Verify response contains a value consistent in TH(all-clusters-app) Logs: + Verify response contains ColorLoopDirection value in TH(all-clusters-app) Logs: ReportDataMessage = [1666943502.981937][50787:50787] CHIP:DMG: { [1666943502.981940][50787:50787] CHIP:DMG: AttributeReportIBs = @@ -187,7 +187,7 @@ tests: verification: | ./chip-tool colorcontrol read color-loop-time 1 1 - Verify response contains a value consistent in TH(all-clusters-app) Logs: + Verify response contains ColorLoopTime value in TH(all-clusters-app) Logs: ReportDataMessage = [1666943523.885364][50787:50787] CHIP:DMG: { [1666943523.885366][50787:50787] CHIP:DMG: AttributeReportIBs = @@ -220,7 +220,7 @@ tests: PICS: CC.C.A4005 verification: | ./chip-tool colorcontrol read color-loop-start-enhanced-hue 1 1 - Verify response contains a value consistent in TH(all-clusters-app) Logs: + Verify response contains ColorLoopStartEnhancedHue value in TH(all-clusters-app) Logs: ReportDataMessage = [1666943561.448178][50787:50787] CHIP:DMG: { [1666943561.448181][50787:50787] CHIP:DMG: AttributeReportIBs = @@ -255,7 +255,8 @@ tests: PICS: CC.C.A4000 verification: | ./chip-tool colorcontrol read enhanced-current-hue 1 1 - Verify response contains a value consistent in TH(all-clusters-app) Logs: + + After 30s, Verify response contains EnhancedCurrentHue value in TH(all-clusters-app) Logs: [ReportDataMessage = [1666943589.470649][50787:50787] CHIP:DMG: { [1666943589.470651][50787:50787] CHIP:DMG: AttributeReportIBs = diff --git a/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml b/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml index 579280c0f4c963..d8ec4cf6c51bb3 100644 --- a/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml @@ -63,7 +63,7 @@ tests: PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | ./chip-tool generalcommissioning arm-fail-safe 60 1 1 0 - On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as "OK"(0) and DebugText argument is of type string with max length 512 or empty + On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as 'OK'(0) and DebugText argument is of type string with max length 512 or empty [1658482454.092676][27036:27041] CHIP:DMG: }, [1658482454.092739][27036:27041] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 @@ -213,7 +213,7 @@ tests: PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | ./chip-tool generalcommissioning arm-fail-safe 0 1 1 0 - On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as "OK"(0) and DebugText argument is of type string with max length 512 or empty + On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as 'OK'(0) and DebugText argument is of type string with max length 512 or empty [1658483503.637026][27397:27402] CHIP:DMG: }, [1658483503.637054][27397:27402] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1658483503.637074][27397:27402] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -453,7 +453,7 @@ tests: For Attestation - To get attestation nonce give below command Raspi platform on TH - echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) Use the above generated Nonce to send below mentioned request @@ -469,7 +469,7 @@ tests: For CSR-To get csr nonce give below command 2 times - echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) Use the above generated Nonce to send below mentioned request operationalcredentials csrrequest hex:C11D6EAA00A54066220DA7F3FC5DC0F684C13D8B8FD3758B51163C2AEDD6F10F 2 0 --commissioner-name beta --IsForUpdateNOC 0 @@ -585,9 +585,9 @@ tests: While pairing between DUT and TH2, On TH2 verify that commissioning completes successfully [1660748637.271112][21572:21577] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 [1660748637.271128][21572:21577] CHIP:CTL: Received CommissioningComplete response, errorCode=0 - [1660748637.271139][21572:21577] CHIP:CTL: Successfully finished commissioning step "SendComplete" - [1660748637.271146][21572:21577] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup" - [1660748637.271156][21572:21577] CHIP:CTL: Performing next commissioning step "Cleanup" + [1660748637.271139][21572:21577] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + [1660748637.271146][21572:21577] CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1660748637.271156][21572:21577] CHIP:CTL: Performing next commissioning step 'Cleanup' disabled: true - label: @@ -650,7 +650,7 @@ tests: PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0 - On TH1 Verify that DUT responds with ArmFailSafeResponse with ErrorCode as "OK"(0) and DebugText argument is of type string with max length 512 or empty + On TH1 Verify that DUT responds with ArmFailSafeResponse with ErrorCode as 'OK'(0) and DebugText argument is of type string with max length 512 or empty [1658485224.066397][28732:28737] CHIP:DMG: InteractionModelRevision = 1 [1658485224.066407][28732:28737] CHIP:DMG: }, [1658485224.066441][28732:28737] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 @@ -787,7 +787,7 @@ tests: PICS: CGEN.S.C00.Rsp verification: | ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0 - On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as "OK"(0) and DebugText argument is of type string with max length 512 or empty + On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as 'OK'(0) and DebugText argument is of type string with max length 512 or empty [1658486418.024554][29343:29348] CHIP:DMG: InteractionModelRevision = 1 [1658486418.024559][29343:29348] CHIP:DMG: }, [1658486418.024588][29343:29348] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 @@ -860,7 +860,7 @@ tests: PICS: CGEN.S.C00.Rsp verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 - On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as "OK"(0) and DebugText argument is of type string with max length 512 or empty + On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as 'OK'(0) and DebugText argument is of type string with max length 512 or empty [1658487663.593485][30268:30273] CHIP:DMG: InteractionModelRevision = 1 [1658487663.593506][30268:30273] CHIP:DMG: }, diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_4.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_4.yaml index 2055f4cfaa59c2..84495540d36863 100644 --- a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_4.yaml @@ -68,4 +68,7 @@ tests: [1665567814.599714][111029:111029] CHIP:DMG: InteractionModelRevision = 1 [1665567814.599716][111029:111029] CHIP:DMG: }, [1665567814.599733][111029:111029] CHIP:DMG: AccessControl: checking f=2 a=c s=0x000000000001B669 t= c=0x0000_0504 e=1 p=o + + + Enter the below command to read the current input. ./chip-tool channel read current-channel 1 1 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml index 2c369aebcd7bb0..b2cd2ab3320ade 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml @@ -99,7 +99,7 @@ tests: - label: "TH reads Networks attribute from the DUT and saves the number of - entries as NumNetworks" + entries as 'NumNetworks'" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 @@ -115,7 +115,8 @@ tests: - label: "TH finds the index of the Networks list entry with NetworkID for - PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and saves it as Userwifi_netidx" + PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and saves it as + 'Userwifi_netidx'" verification: | disabled: true @@ -163,7 +164,7 @@ tests: [1657288838.208068][2455:2460] CHIP:TOO: } disabled: true - - label: "TH reads Networks attribute from the DUT" + - label: "TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 @@ -209,8 +210,8 @@ tests: disabled: true - label: - "TH discovers and connects to DUT on - the PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID operational network" + "TH discovers and connects to DUT on the PIXIT.CNET.WIFI_ + 2ND_ACCESSPOIN T_SSID operational network" verification: | ./chip-tool networkcommissioning read networks 1 0 @@ -225,8 +226,8 @@ tests: disabled: true - label: - "TH reads Breadcrumb attribute from - the General Commissioning cluster of the DUT" + "TH reads Breadcrumb attribute from the General Commissioning cluster + of the DUT" PICS: CNET.S.C06.Rsp verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 @@ -238,10 +239,10 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT - with ExpiryLengthSeco nds set to 0. This forcibly disarms the - fail-safe and is expected to cause the changes of configuration - to NetworkCommissi oning cluster done so far to be reverted." + "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set + to 0. This forcibly disarms the fail-safe and is expected to cause the + changes of configuration to NetworkCommissi oning cluster done so far + to be reverted." verification: | Mark as not applicable and proceed to next step @@ -258,8 +259,8 @@ tests: disabled: true - label: - "TH changes its WiFi connection - to PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID" + "TH changes its WiFi connection to PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT + _SSID" verification: | Mark as not applicable and proceed to next step disabled: true @@ -280,8 +281,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT - with ExpiryLengthSeco nds set to 900" + "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set + to 900" verification: | Mark as not applicable and proceed to next step @@ -298,9 +299,8 @@ tests: disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID - field set to PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID - and Breadcrumb field set to 1" + "TH sends RemoveNetwork Command to the DUT with NetworkID field set to + PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and Breadcrumb field set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | Mark as not applicable and proceed to next step @@ -321,11 +321,10 @@ tests: disabled: true - label: - "TH sends AddOrUpdateWiFi Network command to the DUT with - SSID field set - to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID, Credentials field set - to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_CREDENTIALS and - Breadcrumb field set to 1" + "TH sends AddOrUpdateWiFi Network command to the DUT with SSID field + set to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID, Credentials field set + to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_CREDENTIALS and Breadcrumb field + set to 1" PICS: CNET.S.C02.Rsp && CNET.S.C05.Tx verification: | Mark as not applicable and proceed to next step @@ -345,9 +344,9 @@ tests: disabled: true - label: - "TH sends ConnectNetwork command to the DUT with NetworkID - field set to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID - and Breadcrumb field set to 3" + "TH sends ConnectNetwork command to the DUT with NetworkID field set + to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID and Breadcrumb field set to + 3" PICS: CNET.S.C06.Rsp && CNET.S.C07.Tx verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 @@ -363,15 +362,15 @@ tests: disabled: true - label: - "TH changes its WiFi connection - to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID" + "TH changes its WiFi connection to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN + T_SSID" verification: | disabled: true - label: - "TH discovers and connects to DUT on - the PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID operational network" + "TH discovers and connects to DUT on the PIXIT.CNET.WIFI_ + 2ND_ACCESSPOIN T_SSID operational network" verification: | ./chip-tool networkcommissioning read networks 1 0 @@ -385,7 +384,7 @@ tests: disabled: true - label: - "TH reads Breadcrumb attribute from the General Commissioning cluster + "TH reads Breadcrumb attribute from the General Commissioning cluster of the DUT" PICS: CNET.S.C06.Rsp verification: | @@ -398,7 +397,7 @@ tests: [1657734757.740140][7793:7798] CHIP:TOO: Breadcrumb: 3 disabled: true - - label: "TH sends the CommissioningCo mplete command to the DUT" + - label: "TH sends the CommissioningCo mplete command to the DUT" verification: | ./chip-tool generalcommissioning commissioning-complete 1 0 @@ -411,7 +410,7 @@ tests: [1657734803.411356][7802:7808] CHIP:TOO: } disabled: true - - label: "TH reads Networks attribute from the DUT" + - label: "TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml index d5f3fc74af4cdd..f3e80dc813f6fb 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml @@ -66,13 +66,17 @@ tests: Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: - [1650392982.606392][10188:10193] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0007 - [1650392982.606501][10188:10193] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007 - [1650392982.606653][10188:10193] CHIP:TOO: ConnectNetworkResponse: { - [1650392982.606753][10188:10193] CHIP:TOO: networkingStatus: 3 - [1650392982.606815][10188:10193] CHIP:TOO: errorValue: 0 - [1650392982.606872][10188:10193] CHIP:TOO: } - [1650392982.606960][10188:10193] CHIP:DMG: ICR moving to [AwaitingDe] + [1683268296.896031][12131:12134] CHIP:DMG: InteractionModelRevision = 1 + [1683268296.896239][12131:12134] CHIP:DMG: }, + [1683268296.896474][12131:12134] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005 + [1683268296.897219][12131:12134] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 + [1683268296.897526][12131:12134] CHIP:TOO: NetworkConfigResponse: { + [1683268296.897745][12131:12134] CHIP:TOO: networkingStatus: 3 + [1683268296.898546][12131:12134] CHIP:TOO: } + [1683268296.898769][12131:12134] CHIP:DMG: ICR moving to [AwaitingDe] + [1683268296.901995][12131:12134] CHIP:EM: <<< [E:60271i S:53927 M:99281930 (Ack:250739545)] (S) Msg TX to 1:0000000000000036 [345E] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1683268296.903001][12131:12134] CHIP:IN: (S) Sending msg 99281930 on secure session with LSID: 53927 + [1683268296.905843][12131:12134] CHIP:EM: Flushed pending ack for MessageCounter:250739545 on exchange 60271i disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml index e5197cb1a8eab1..09671ee034175e 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml @@ -218,6 +218,6 @@ tests: [1645773318.752861][3938:3943] CHIP:DMG: InteractionModelRevision = 1 [1645773318.753043][3938:3943] CHIP:DMG: } [1645773318.753543][3938:3943] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0007DataVersion: 92121563 - [1645773318.753724][3938:3943] CHIP:TOO: LastConnectErrorValue: 0 + [1645773318.753724][3938:3943] CHIP:TOO: LastConnectErrorValue: null [1645773318.753985][3938:3943] CHIP:EM: Sending Standalone Ack for MessageCounter:15303417 on exchange 41937i disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml index 4c1d0c9b079438..2aa7b6a19e3c65 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml @@ -40,7 +40,7 @@ tests: - label: "The FeatureMap attribute value is 1" verification: | - "./chip-tool networkcommissioning read feature-map 1 0 + ./chip-tool networkcommissioning read feature-map 1 0 Verify the "feature-map" on the TH(Chip-tool) Log: @@ -51,8 +51,9 @@ tests: - label: "TH sends the AddOrUpdateWiFiNetwork command to the DUT with the - following argument: SSID argument value as Userwifi_ssid Credentials - argument value as Userwifi_Credentials Breadcrumb argument value as 1" + following fields: 1. SSID field set to PIXIT.CNET.WIFI_1S + T_ACCESSPOINT_SSI D 2. Credentials field set to PIXIT.CNET.WIFI_1S + T_ACCESSPOINT_CRE DENTIALS 3. Breadcrumb field set to 1" PICS: CNET.S.C02.Rsp verification: | ./chip-tool networkcommissioning add-or-update-wi-fi-network hex: 1 0 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 964fcfc8dba8e0..8ff36373386e74 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 @@ -45,8 +45,8 @@ tests: - label: "TH sends the AddOrUpdateThreadNetwork command to the DUT with the - following argument: OperationalDataset argument value as Userth_op - Breadcrumb argument value as 1" + following fields: 1. OperationalDataset field set to PIXIT.CNET.THREAD + _1ST_OPERATIONAL DATASET 2. Breadcrumb field set to 1" PICS: CNET.S.C03.Rsp verification: | ./chip-tool networkcommissioning add-or-update-thread-network-network hex: 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml index 18aae2565d7ff4..00bb5368ffc102 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml @@ -125,7 +125,9 @@ tests: [1653478311.640901][30368:30373] CHIP:EM: Sending Standalone Ack for MessageCounter:8633037 on exchange 20698i disabled: true - - label: "TH reads the Networks attribute list from the DUT" + - label: + "TH reads Networks attribute from the DUT and saves the number of + entries as 'NumNetworks'" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_3.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_3.yaml index d3e48a11944073..99920cfb23a99c 100644 --- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_3.yaml @@ -30,8 +30,8 @@ tests: PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 0, "value": "exampleString", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 0, "value": "exampleString", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 0, "value": "exampleString", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 0, "value": "exampleString", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651062794.114531][157317:157322] CHIP:TOO: LaunchResponse: { @@ -46,8 +46,8 @@ tests: PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 0, "value": "exampleString", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 1 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 0, "value": "exampleString", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 1 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 0, "value": "exampleString", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 1 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 0, "value": "exampleString", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 1 1 1 On TH verify the success response (value 0) received from DUT [1651062895.695667][157343:157348] CHIP:TOO: LaunchResponse: { diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_4.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_4.yaml index 1e6bf798f3eb44..9441e7ecef1933 100644 --- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_4.yaml @@ -37,7 +37,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): ./chip-tool contentlauncher launch-content '{"parameterList": []}' 1 1 1 - ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": []}'' 1 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": []}' 1 1 1 The log below shows the resulting log on the TH (tv-app or all-clusters-app): diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_6.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_6.yaml index 41aa580cc06c55..58758107316431 100644 --- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_6.yaml @@ -34,8 +34,8 @@ tests: verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): - ./chip-tool contentlauncher launch-url "https://www.foo.com" "{"providerName": "provider"}" 1 1 - ./chip-tv-casting-app contentlauncher launch-url "https://www.foo.com" "{"providerName": "provider"}" 1 1 + ./chip-tool contentlauncher launch-url 'https://www.foo.com' '{"providerName": "provider"}' 1 1 + ./chip-tv-casting-app contentlauncher launch-url 'https://www.foo.com' '{"providerName": "provider"}' 1 1 The log below shows the resulting log on the TH (tv-app or all-clusters-app): diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_7.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_7.yaml index ea38cb5930b920..7c4aa59c6f86a6 100644 --- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_7.yaml @@ -26,13 +26,13 @@ config: tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Actor and Value as An Actors name, for example, - Gaby sHoffman" + consisting of Type As 'Actor' and Value as An Actors name, for + example, Gaby sHoffman" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 0, "value": "Gaby sHoffman", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 0, "value": "Gaby sHoffman", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 0, "value": "Gaby sHoffman", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 0, "value": "Gaby sHoffman", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651225059.893636][4190:4195] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002 @@ -48,13 +48,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Channel and Value as Channel Name name, for - example, PBS" + consisting of Type As 'Channel' and Value as Channel Name name, for + example, 'PBS'" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 1, "value": "PBS", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 1, "value": "PBS", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 1, "value": "PBS", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 1, "value": "PBS", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651225141.737648][4203:4209] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002 @@ -70,13 +70,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Character and Value as Characters name,for + consisting of Type As 'Character' and Value as Characters name,for example, Snow White" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 2, "value": "Snow White", "externalIDList": [ { "name": "foo", "value": "2"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 2, "value": "Snow White", "externalIDList": [ { "name": "foo", "value": "2"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 2, "value": "Snow White", "externalIDList": [ { "name": "foo", "value": "2"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 2, "value": "Snow White", "externalIDList": [ { "name": "foo", "value": "2"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651578539.231066][9699:9704] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002 @@ -92,13 +92,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Director and Value as Directors name, for + consisting of Type As 'Director' and Value as Directors name, for example, Spike Lee" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 3, "value": "Spike Lee", "externalIDList": [ { "name": "Spike Lee", "value": "3"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 3, "value": "Spike Lee", "externalIDList": [ { "name": "Spike Lee", "value": "3"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 3, "value": "Spike Lee", "externalIDList": [ { "name": "Spike Lee", "value": "3"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 3, "value": "Spike Lee", "externalIDList": [ { "name": "Spike Lee", "value": "3"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651578561.129609][9706:9711] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002 @@ -114,13 +114,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Event and Value as An Events name , for example - Football games" + consisting of Type As 'Event' and Value as An Events name , for + example 'Football games'" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 4, "value": "Football games", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 4, "value": "Football games", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 4, "value": "Football games", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 4, "value": "Football games", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651578612.348295][9717:9722] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002 @@ -136,13 +136,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Franchise and Value as Franchises name,for - example Star Wars" + consisting of Type As 'Franchise' and Value as Franchises name,for + example 'Star Wars'" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 5, "value": "Star Wars", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 5, "value": "Star Wars", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 5, "value": "Star Wars", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 5, "value": "Star Wars", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT @@ -159,13 +159,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Genre and Value as Genres name, for example - Horror" + consisting of Type As 'Genre' and Value as Genres name, for example + 'Horror'" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 6, "value": "Horror", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 6, "value": "Horror", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 6, "value": "Horror", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 6, "value": "Horror", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1652091775.613303][9916:9922] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_050A Command=0x0000_0002 @@ -182,13 +182,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As League and Value as Leagues name, for example - NCAA" + consisting of Type As 'League' and Value as Leagues name, for example + 'NCAA'" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 7, "value": "NCAA", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 7, "value": "NCAA", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 7, "value": "NCAA", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 7, "value": "NCAA", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT @@ -205,12 +205,12 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Popularity and Value as Popularitys name" + consisting of Type As 'Popularity' and Value as Popularitys name" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 8, "value": "Popularity", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 8, "value": "Popularity", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 8, "value": "Popularity", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 8, "value": "Popularity", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651578680.236952][9740:9745] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002 @@ -226,13 +226,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Provider and Value as Providers name, for - example Netflix" + consisting of Type As 'Provider' and Value as Providers name, for + example 'Netflix'" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 9, "value": "Netflix", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 9, "value": "Netflix", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 9, "value": "Netflix", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 9, "value": "Netflix", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651578697.912544][9750:9755] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002 @@ -248,13 +248,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Sport and Value as Sports name, for example, + consisting of Type As 'Sport' and Value as Sports name, for example, football" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 10, "value": "football", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 10, "value": "football", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 10, "value": "football", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 10, "value": "football", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651578716.145536][9757:9762] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002 @@ -270,13 +270,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As SportsTeam and Value as SportTeams name , for - example Arsenel" + consisting of Type As 'SportsTeam' and Value as SportTeams name , for + example 'Arsenel'" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 11, "value": "Arsenel", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 11, "value": "Arsenel", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 11, "value": "Arsenel", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 11, "value": "Arsenel", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651578735.341387][9764:9769] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002 @@ -292,13 +292,13 @@ tests: - label: "TH sends a LaunchContent command to the DUT with search parameter - consisting of Type As Type and Value as Types name, for example - TVSeries," + consisting of Type As 'Type' and Value as Types name, for example + 'TVSeries'" PICS: CONTENTLAUNCHER.S.C00.Rsp verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool contentlauncher launch-content "{"parameterList": [ { "type": 12, "value": "TVSeries", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 - ./chip-tv-casting-app contentlauncher launch-content "{"parameterList": [ { "type": 12, "value": "TVSeries", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }" 0 1 1 + ./chip-tool contentlauncher launch-content '{"parameterList": [ { "type": 12, "value": "TVSeries", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 + ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": [ { "type": 12, "value": "TVSeries", "externalIDList": [ { "name": "exampleName", "value": "exampleValue"} ] } ] }' 0 1 1 On TH verify the success response (value 0) received from DUT [1651578755.904379][9773:9778] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_050A Command 0x0000_0002 diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_1.yaml index ba84f41f6c908d..a506ce442ecf49 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_1.yaml @@ -84,8 +84,8 @@ tests: sudo rm -rf /tmp/chip_* After factory reset put the DUT into commissionable state and verify commissionable state. - This step is same in couple of other cases (like DD) so use the same verification method here too i.e. if your DUT is discoverable over mDNS then use "chiptool discover commissionables" to discover mDNS adv and provision the device using "chip-tool pairing code node-id payload". - otherwise if your DUT is advertising over BLE , pls use the "/chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1" command to discover and provision the device (BTW the SSID , passwd, descriminator ..etc are configurable parameters for your DUT) + This step is same in couple of other cases (like DD) so use the same verification method here too i.e. if your DUT is discoverable over mDNS then use 'chiptool discover commissionables' to discover mDNS adv and provision the device using 'chip-tool pairing code node-id payload'. + otherwise if your DUT is advertising over BLE , pls use the '/chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1' command to discover and provision the device (BTW the SSID , passwd, descriminator ..etc are configurable parameters for your DUT) Using RPI, executed the below command to verify this step, Pls use equivalent command on the respective DUT ./chip-all-clusters-app @@ -106,7 +106,7 @@ tests: verification: | ./chip-tool operationalcredentials read fabrics 2 0 --commissioner-name beta --fabric-filtered 0 - On TH2(chip-tool) Verify that there is only one entry in the "Fabrics" List and Verify that the FabricID is the same as the TH2’s Fabric ID and Verify that the entry saved in Step 2 for TH1" Fabric does not appear in the list + On TH2(chip-tool) Verify that there is only one entry in the 'Fabrics' List and Verify that the FabricID is the same as the TH2’s Fabric ID and Verify that the entry saved in Step 2 for TH1' Fabric does not appear in the list [1662390246.660954][17644:17649] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2805160061 @@ -127,7 +127,7 @@ tests: verification: | ./chip-tool operationalcredentials read nocs 2 0 --commissioner-name beta --fabric-filtered 0 - On TH2(chip-tool) Verify that there is only one entry in the "NOCs" List and the NOC for that entry is different than the NOC entry in noc_th1 + On TH2(chip-tool) Verify that there is only one entry in the 'NOCs' List and the NOC for that entry is different than the NOC entry in noc_th1 [1662390133.555554][17626:17631] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 2805160061 [1662390133.555588][17626:17631] CHIP:TOO: NOCs: 1 entries diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_5.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_5.yaml index c10edf860dddd0..392fc33f64ad12 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_5.yaml @@ -82,7 +82,7 @@ tests: saved as csr_nonce" verification: | To get csr nonce give below command 2 times - echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) ./chip-tool operationalcredentials csrrequest hex:AFB3070A828B7A9CABEE888688F867683C084E6E4B3F13CDEDF17EEF05A9F352 1 0 @@ -229,10 +229,10 @@ tests: Verify TH2 is commissioned successfully on TH2(chip-tool) log: [1658394409.242162][2474:2479] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 [1658394409.242204][2474:2479] CHIP:CTL: Received CommissioningComplete response, errorCode=0 - [1658394409.242237][2474:2479] CHIP:CTL: Successfully finished commissioning step "SendComplete" - [1658394409.242256][2474:2479] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup" - [1658394409.242284][2474:2479] CHIP:CTL: Performing next commissioning step "Cleanup" - [1658394409.242352][2474:2479] CHIP:CTL: Successfully finished commissioning step "Cleanup" + [1658394409.242237][2474:2479] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + [1658394409.242256][2474:2479] CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1658394409.242284][2474:2479] CHIP:CTL: Performing next commissioning step 'Cleanup' + [1658394409.242352][2474:2479] CHIP:CTL: Successfully finished commissioning step 'Cleanup' [1658394409.242379][2474:2479] CHIP:TOO: Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml index 92a737907e5600..718cb13488a939 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml @@ -40,7 +40,7 @@ tests: verification: | Veriy attestation request is sent on TH(all-clusters-app) - [1655374218.114327][35023:35028] CHIP:CTL: Performing next commissioning step "SendAttestationRequest" + [1655374218.114327][35023:35028] CHIP:CTL: Performing next commissioning step 'SendAttestationRequest' [1655374218.114378][35023:35028] CHIP:CTL: Sending Attestation Request to the device. [1655374218.114556][35023:35028] CHIP:CTL: Sending Attestation request to 0xffff74000b60 device [1655374218.114675][35023:35028] CHIP:DMG: ICR moving to [AddingComm] @@ -275,7 +275,7 @@ tests: [1655374218.462118][35023:35028] CHIP:DMG: }, [1655374218.462220][35023:35028] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 [1655374218.462275][35023:35028] CHIP:CTL: Received Attestation Information from the device - [1655374218.462320][35023:35028] CHIP:CTL: Successfully finished commissioning step "SendAttestationRequest" + [1655374218.462320][35023:35028] CHIP:CTL: Successfully finished commissioning step 'SendAttestationRequest' disabled: true - label: @@ -284,7 +284,7 @@ tests: verification: | Send the below command 2 times to create CSR NONCE value in TH - echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) The generated CSRNONCE value is hex:F707BFC795117AAD94D5D95586B3B33984B475E00FFB5950BA21736FFB0FAFDE ./chip-tool generalcommissioning arm-fail-safe 500 900 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml index 15723da98bd466..821e7905d073eb 100644 --- a/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml @@ -42,7 +42,7 @@ tests: PICS: DESC.S.A0000 && DESC.S.A0003 verification: | Send a read request to the DUT using chip-tool to read the partsList attribute in the descriptor cluster on Endpoint 0. - Make a note of all the items(Endpoint id’s) in the list. In the below example there are 2 endpoint id"s listed [1,2] + Make a note of all the items(Endpoint id’s) in the list. In the below example there are 2 endpoint id's listed [1,2] ./chip-tool descriptor read parts-list 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml index 9a6ad83de61abe..c42de650a5f2b6 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml @@ -176,7 +176,7 @@ tests: verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool generaldiagnostics read boot-reasons 1 0 + ./chip-tool generaldiagnostics read boot-reason 1 0 verify that bootreason attribute data type must match the value listed in Table 105 BootReason ENUM table in spec on TH(all-clusters-app). 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 e67235545e6881..6b8dcc182a7ec8 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 @@ -224,6 +224,16 @@ tests: contains: [58] - label: "TH reads AcceptedCommandList from DUT" + PICS: " !DGTHREAD.S.F01 " + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + value: [] + constraints: + type: list + + - label: "TH reads AcceptedCommandList from DUT" + PICS: DGTHREAD.S.F01 command: "readAttribute" attribute: "AcceptedCommandList" response: diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_1.yaml index 1c77e9f164e00a..971f85b19aa1a9 100644 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_1.yaml @@ -178,7 +178,7 @@ tests: value: "y" - label: "TH reads OverrunCount attribute value from DUT" - PICS: DGTHREAD.S.A0006 + PICS: DGTHREAD.S.A0006 && DGTHREAD.S.F01 command: "readAttribute" attribute: "OverrunCount" response: @@ -335,7 +335,7 @@ tests: maxValue: 255 - label: "TH reads DetachedRoleCount attribute value from DUT" - PICS: DGTHREAD.S.A000e + PICS: DGTHREAD.S.A000e && DGTHREAD.S.F02 command: "readAttribute" attribute: "DetachedRoleCount" response: @@ -345,7 +345,7 @@ tests: maxValue: 65535 - label: "TH reads ChildRoleCount attribute value from DUT" - PICS: DGTHREAD.S.A000f + PICS: DGTHREAD.S.A000f && DGTHREAD.S.F02 command: "readAttribute" attribute: "ChildRoleCount" response: @@ -355,7 +355,7 @@ tests: maxValue: 65535 - label: "TH reads RouterRoleCount attribute value from DUT" - PICS: DGTHREAD.S.A0010 + PICS: DGTHREAD.S.A0010 && DGTHREAD.S.F02 command: "readAttribute" attribute: "RouterRoleCount" response: @@ -365,7 +365,7 @@ tests: maxValue: 65535 - label: "TH reads LeaderRoleCount attribute value from DUT" - PICS: DGTHREAD.S.A0011 + PICS: DGTHREAD.S.A0011 && DGTHREAD.S.F02 command: "readAttribute" attribute: "LeaderRoleCount" response: @@ -375,7 +375,7 @@ tests: maxValue: 65535 - label: "TH reads AttachAttemptCount attribute value from DUT" - PICS: DGTHREAD.S.A0012 + PICS: DGTHREAD.S.A0012 && DGTHREAD.S.F02 command: "readAttribute" attribute: "AttachAttemptCount" response: @@ -385,7 +385,7 @@ tests: maxValue: 65535 - label: "TH reads PartitionIdChangeCount attribute value from DUT" - PICS: DGTHREAD.S.A0013 + PICS: DGTHREAD.S.A0013 && DGTHREAD.S.F02 command: "readAttribute" attribute: "PartitionIdChangeCount" response: @@ -396,7 +396,7 @@ tests: - label: "TH reads BetterPartitionAttachAttemptCount attribute value from DUT" - PICS: DGTHREAD.S.A0014 + PICS: DGTHREAD.S.A0014 && DGTHREAD.S.F02 command: "readAttribute" attribute: "BetterPartitionAttachAttemptCount" response: @@ -406,7 +406,7 @@ tests: maxValue: 65535 - label: "TH reads ParentChangeCount attribute value from DUT" - PICS: DGTHREAD.S.A0015 + PICS: DGTHREAD.S.A0015 && DGTHREAD.S.F02 command: "readAttribute" attribute: "ParentChangeCount" response: diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_2.yaml index 962a4b287a13e1..f69150ae0b54e4 100644 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_2.yaml @@ -16,6 +16,7 @@ name: 50.2.2. [TC-DGTHREAD-2.2] Attributes-Tx [DUT- Server] PICS: - DGTHREAD.S + - DGTHREAD.S.F03 config: nodeId: 0x12344321 diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_3.yaml index 5e68e90ba5be47..ad95f6dcc17dbb 100644 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_3.yaml @@ -16,6 +16,7 @@ name: 50.2.3. [TC-DGTHREAD-2.3] Attributes-Rx [DUT- Server] PICS: - DGTHREAD.S + - DGTHREAD.S.F03 config: nodeId: 0x12344321 @@ -161,29 +162,17 @@ tests: minValue: 0x0 maxValue: 0xFFFFFFFF - #Issue #18335 - label: - "TH reads RxErrInvalidScrAddrCount attribute value from DUT and verify + "TH reads RxErrInvalidSrcAddrCount attribute value from DUT and verify data type" - verification: | - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. - ./chip-tool threadnetworkdiagnostics read rx-err-invalid-src-addr-count 54 0 - Verify "RxErrInvalidSrcAddrCount value is unit32" on the TH(Chip-tool) Log: - - [1649826953.827775][3727:3732] CHIP:DMG: SuppressResponse = true, - [1649826953.827837][3727:3732] CHIP:DMG: InteractionModelRevision = 1 - [1649826953.827894][3727:3732] CHIP:DMG: } - [1649826953.828197][3727:3732] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_0034 DataVersion: 2758196590 - [1649826953.828346][3727:3732] CHIP:TOO: RxErrInvalidSrcAddrCount: 0 - cluster: "LogCommands" - command: "UserPrompt" - PICS: PICS_USER_PROMPT && DGTHREAD.S.A0034 - arguments: - values: - - name: "message" - value: "Please enter 'y' for success" - - name: "expectedValue" - value: "y" + PICS: DGTHREAD.S.A0034 + command: "readAttribute" + attribute: "RxErrInvalidSrcAddrCount" + response: + constraints: + type: int32u + minValue: 0x0 + maxValue: 0xFFFFFFFF - label: "TH reads RxErrSecCount attribute value from DUT" PICS: DGTHREAD.S.A0035 diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_4.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_4.yaml index dd540c44d8a962..dc78f758aacc18 100644 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_4.yaml @@ -16,6 +16,7 @@ name: 50.2.4. [TC-DGTHREAD-2.4] ResetCounts Command[DUT- Server] PICS: - DGTHREAD.S + - DGTHREAD.S.F01(ERRCNT) config: nodeId: 0x12344321 diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_1.yaml index 8cba962fc4069d..726178c2f0ec99 100644 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_1.yaml @@ -155,7 +155,7 @@ tests: - label: "DUT reads NeighborTable attribute value from TH." PICS: DGTHREAD.C.A0007 verification: | - ./chip-tool threadnetworkdiagnostics read neighbor-table-list 54 0 + ./chip-tool threadnetworkdiagnostics read neighbor-table 54 0 Verify "NeighborTableList response" on the TH(All-cluster-app) Log: @@ -173,7 +173,7 @@ tests: - label: "DUT reads RouteTable attribute value from TH." PICS: DGTHREAD.C.A0008 verification: | - ./chip-tool threadnetworkdiagnostics read route-table-list 54 0 + ./chip-tool threadnetworkdiagnostics read route-table 54 0 Verify "RouteTableList response" on the TH(All-cluster-app) Log: diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_5.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_5.yaml deleted file mode 100644 index 2c4609170190c7..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_5.yaml +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: - 50.3.5. [TC-DGTHREAD-3.5] Thread Network Diagnostics Cluster Events [DUT as - Client] - -PICS: - - DGTHREAD.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Precondition" - verification: | - 1.Commission TH to DUT - 2.DUT subscribes to NetworkFaultChange, ConnectionStatus events on the Thread Network Diagnostics cluster of the TH - disabled: true - - - label: "Simulate an Unspecified failure on TH" - PICS: DGTHREAD.C.E01 - verification: | - Optional Event so it is not mandatory to verify in v1.0. Pls mark as Not Applicable. - disabled: true - - - label: "Simulate a LinkDown failure on TH" - PICS: DGTHREAD.C.E01 - verification: | - Optional Event so it is not mandatory to verify in v1.0. Pls mark as Not Applicable. - disabled: true - - - label: "Simulate a HardwareFailure on TH" - PICS: DGTHREAD.C.E01 - verification: | - Optional Event so it is not mandatory to verify in v1.0. Pls mark as Not Applicable. - disabled: true - - - label: "Simulate a NetworkJammed Failure on TH" - PICS: DGTHREAD.C.E01 - verification: | - Optional Event so it is not mandatory to verify in v1.0. Pls mark as Not Applicable. - disabled: true - - - label: "Simulate an Unspecified failure on TH" - PICS: DGTHREAD.C.E01 - verification: | - Optional Event so it is not mandatory to verify in v1.0. Pls mark as Not Applicable. - disabled: true - - - label: "Simulate a LinkDown failure on TH" - PICS: DGTHREAD.C.E01 - verification: | - Optional Event so it is not mandatory to verify in v1.0. Pls mark as Not Applicable. - disabled: true - - - label: "Simulate a HardwareFailure on TH" - PICS: DGTHREAD.C.E01 - verification: | - Optional Event so it is not mandatory to verify in v1.0. Pls mark as Not Applicable. - disabled: true - - - label: "Simulate a NetworkJammed Failure on TH" - PICS: DGTHREAD.C.E01 - verification: | - Optional Event so it is not mandatory to verify in v1.0. Pls mark as Not Applicable. - disabled: true - - - label: "Simulate disconnecting and reconnecting to a Thread network on TH" - PICS: DGTHREAD.C.E00 - verification: | - Optional Event so it is not mandatory to verify in v1.0. Pls mark as Not Applicable. - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml index a322d877a4b2ea..d45ed6be8b4679 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml @@ -116,16 +116,14 @@ tests: [1656497453.684077][25847:25853] CHIP:DMG: status = 0x00 (SUCCESS), - ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1 , "credentialIndex" : 1 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 + ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1 , "credentialIndex" : 2 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: [1656497508.814196][25858:25863] CHIP:TOO: SetCredentialResponse: { [1656497508.814257][25858:25863] CHIP:TOO: status: 0 [1656497508.814301][25858:25863] CHIP:TOO: userIndex: null - [1656497508.814343][25858:25863] CHIP:TOO: nextCredentialIndex: 2 - - + [1656497508.814343][25858:25863] CHIP:TOO: nextCredentialIndex: 3 ./chip-tool doorlock lock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 @@ -170,7 +168,7 @@ tests: [1659777214.883675][3089:3094] CHIP:TOO: Credentials: 1 entries [1659777214.883722][3089:3094] CHIP:TOO: [1]: { [1659777214.883744][3089:3094] CHIP:TOO: CredentialType: 1 - [1659777214.883764][3089:3094] CHIP:TOO: CredentialIndex: 1 + [1659777214.883764][3089:3094] CHIP:TOO: CredentialIndex: 2 [1659777214.883784][3089:3094] CHIP:TOO: } [1659777214.883804][3089:3094] CHIP:TOO: } disabled: true @@ -221,7 +219,7 @@ tests: [1659777667.226707][3222:3227] CHIP:TOO: Credentials: 1 entries [1659777667.226758][3222:3227] CHIP:TOO: [1]: { [1659777667.226780][3222:3227] CHIP:TOO: CredentialType: 1 - [1659777667.226800][3222:3227] CHIP:TOO: CredentialIndex: 1 + [1659777667.226800][3222:3227] CHIP:TOO: CredentialIndex: 2 [1659777667.226820][3222:3227] CHIP:TOO: } [1659777667.226841][3222:3227] CHIP:TOO: } [1659777667.226944][3222:3227] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0002 @@ -237,7 +235,7 @@ tests: [1659777667.227167][3222:3227] CHIP:TOO: Credentials: 1 entries [1659777667.227193][3222:3227] CHIP:TOO: [1]: { [1659777667.227213][3222:3227] CHIP:TOO: CredentialType: 1 - [1659777667.227232][3222:3227] CHIP:TOO: CredentialIndex: 1 + [1659777667.227232][3222:3227] CHIP:TOO: CredentialIndex: 2 [1659777667.227251][3222:3227] CHIP:TOO: } [1659777667.227325][3222:3227] CHIP:TOO: } disabled: true @@ -284,14 +282,10 @@ tests: [1659777833.227407][3243:3248] CHIP:TOO: LockOperationType: 0 [1659777833.227431][3243:3248] CHIP:TOO: OperationSource: 7 [1659777833.227453][3243:3248] CHIP:TOO: OperationError: 1 - [1659777833.227476][3243:3248] CHIP:TOO: UserIndex: 0 + [1659777833.227476][3243:3248] CHIP:TOO: UserIndex: null [1659777833.227498][3243:3248] CHIP:TOO: FabricIndex: 1 [1659777833.227523][3243:3248] CHIP:TOO: SourceNode: 112233 - [1659777833.227553][3243:3248] CHIP:TOO: Credentials: 1 entries - [1659777833.227604][3243:3248] CHIP:TOO: [1]: { - [1659777833.227629][3243:3248] CHIP:TOO: CredentialType: 1 - [1659777833.227651][3243:3248] CHIP:TOO: CredentialIndex: 0 - [1659777833.227673][3243:3248] CHIP:TOO: } + [1659777833.227553][3243:3248] CHIP:TOO: Credentials: null [1659777833.227696][3243:3248] CHIP:TOO: } disabled: true @@ -338,11 +332,7 @@ tests: [1659777937.334170][3260:3265] CHIP:TOO: UserIndex: 0 [1659777937.334197][3260:3265] CHIP:TOO: FabricIndex: 1 [1659777937.334226][3260:3265] CHIP:TOO: SourceNode: 112233 - [1659777937.334261][3260:3265] CHIP:TOO: Credentials: 1 entries - [1659777937.334371][3260:3265] CHIP:TOO: [1]: { - [1659777937.334402][3260:3265] CHIP:TOO: CredentialType: 1 - [1659777937.334429][3260:3265] CHIP:TOO: CredentialIndex: 0 - [1659777937.334456][3260:3265] CHIP:TOO: } + [1659777937.334261][3260:3265] CHIP:TOO: Credentials: null [1659777937.334484][3260:3265] CHIP:TOO: } [1659777937.334614][3260:3265] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0003 [1659777937.334642][3260:3265] CHIP:TOO: Event number: 9 @@ -355,17 +345,12 @@ tests: [1659777937.334846][3260:3265] CHIP:TOO: UserIndex: 0 [1659777937.334873][3260:3265] CHIP:TOO: FabricIndex: 1 [1659777937.334899][3260:3265] CHIP:TOO: SourceNode: 112233 - [1659777937.334970][3260:3265] CHIP:TOO: Credentials: 1 entries - [1659777937.335008][3260:3265] CHIP:TOO: [1]: { - [1659777937.335036][3260:3265] CHIP:TOO: CredentialType: 1 - [1659777937.335063][3260:3265] CHIP:TOO: CredentialIndex: 0 - [1659777937.335089][3260:3265] CHIP:TOO: } - [1659777937.335116][3260:3265] CHIP:TOO: } + [1659777937.334970][3260:3265] CHIP:TOO: Credentials: null disabled: true - label: "TH sends Set User Command to DUT with the following values: - OperationType as 0-Add UserIndex as 2( Different from an existing + OperationType as 0-Add UserIndex as 4( Different from an existing UserIndex) UserName as xxx UserUniqueID as 6452 UserStatus as 1-OccupiedEnabled UserType as 0-UnrestrictedUser CredentialRule as 0-Single" @@ -533,7 +518,7 @@ tests: 123456 UserIndex as 1 UserStatus as 0 UserType as 0" PICS: DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx verification: | - ./chip-tool doorlock clear-credential '{ "credentialType" : 1 , "credentialIndex" : 1 }' 1 1 --timedInteractionTimeoutMs 1000 + ./chip-tool doorlock clear-credential '{ "credentialType" : 1 , "credentialIndex" : 2 }' 1 1 --timedInteractionTimeoutMs 1000 Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml index d0208975307ad5..45df632606a5e3 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 @@ -325,6 +325,15 @@ tests: response: error: FAILURE + - label: "Wait for UserCodeTemporaryDisableTime expires" + cluster: "DelayCommands" + command: "WaitForMs" + PICS: DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0031 + arguments: + values: + - name: "ms" + value: 15000 + - label: "TH writes AutoRelockTime attribute value as 10 seconds on the DUT" PICS: DRLK.S.A0023 && PICS_SDK_CI_ONLY command: "writeAttribute" @@ -374,58 +383,38 @@ tests: - label: "TH sends the unlock Door command to the DUT with valid PINCode and Verify that DUT sends SUCCESS response to the TH" - verification: | - ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 - - - Verify " DUT sends SUCCESS response" on the TH(Chip-tool) Log: - - [1657868999.441424][2857:2862] CHIP:DMG: StatusIB = - [1657868999.441478][2857:2862] CHIP:DMG: { - [1657868999.441531][2857:2862] CHIP:DMG: status = 0x00 (SUCCESS), - [1657868999.441581][2857:2862] CHIP:DMG: }, - [1657868999.441630][2857:2862] CHIP:DMG: - [1657868999.441673][2857:2862] CHIP:DMG: }, - [1657868999.441716][2857:2862] CHIP:DMG: - [1657868999.441747][2857:2862] CHIP:DMG: }, - [1657868999.441784][2857:2862] CHIP:DMG: - [1657868999.441813][2857:2862] CHIP:DMG: ], - [1657868999.441847][2857:2862] CHIP:DMG: - [1657868999.441874][2857:2862] CHIP:DMG: InteractionModelRevision = 1 - [1657868999.441900][2857:2862] CHIP:DMG: }, - [1657868999.441965][2857:2862] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0001 Status=0x0 - cluster: "LogCommands" - command: "UserPrompt" - PICS: PICS_USER_PROMPT && DRLK.S.C01.Rsp + PICS: DRLK.S.C01.Rsp + command: "UnlockDoor" + timedInteractionTimeoutMs: 1000 arguments: values: - - name: "message" - value: "Please enter 'y' for success" - - name: "expectedValue" - value: "y" + - name: "PINCode" + value: "123456" - - label: - "TH reads LockState attribute after AutoRelockTime Expires and Verify - that the DUT is locked." - verification: | - ./chip-tool doorlock read lock-state 1 1 - - Verify " DUT is locked" on the TH(Chip-tool) Log: - - [1657869083.649102][2871:2876] CHIP:DMG: SuppressResponse = true, - [1657869083.649136][2871:2876] CHIP:DMG: InteractionModelRevision = 1 - [1657869083.649169][2871:2876] CHIP:DMG: } - [1657869083.649336][2871:2876] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Attribute 0x0000_0000 DataVersion: 2082875966 - [1657869083.649446][2871:2876] CHIP:TOO: LockState: 1 - cluster: "LogCommands" - command: "UserPrompt" - PICS: PICS_USER_PROMPT && DRLK.S.A0000 + - label: "Wait for AutoRelockTime Expires" + cluster: "DelayCommands" + command: "WaitForMs" + PICS: DRLK.S.A0023 && PICS_SDK_CI_ONLY + arguments: + values: + - name: "ms" + value: 10000 + + - label: "Wait for AutoRelockTime Expires" + cluster: "DelayCommands" + command: "WaitForMs" + PICS: DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP arguments: values: - - name: "message" - value: "Please enter 'y' for success" - - name: "expectedValue" - value: "y" + - name: "ms" + value: 60000 + + - label: "TH reads LockState attribute" + PICS: DRLK.S.A0000 && DRLK.S.C01.Rsp + command: "readAttribute" + attribute: "LockState" + response: + value: 1 - label: "Cleanup the created user" command: "ClearUser" diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml index 22e1489713fe11..c2a3f26a82d510 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml @@ -67,7 +67,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) and TH as lock-app. To generate the event give below command - echo "{"Cmd": "SendDoorLockAlarm", "Params": { "EndpointId": 1, "AlarmCode": 0 } }" > /tmp/chip_lock_app_fifo- (PID of lock app) + echo '{"Cmd": "SendDoorLockAlarm", "Params": { "EndpointId": 1, "AlarmCode": 0 } }' > /tmp/chip_lock_app_fifo- (PID of lock app) ./chip-tool doorlock read-event door-lock-alarm 1 1 @@ -251,7 +251,7 @@ tests: [1667212365.336681][14571:14571] CHIP:DMG: }, - ./chip-tool doorlock set-credential 0 "{ "credentialType" : 1 , "credentialIndex" : 1 }" 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 + ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1 , "credentialIndex" : 1 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 Verify "DUT receives the set-credential response " on the TH(Lock-app) Log: @@ -498,7 +498,7 @@ tests: PICS: DRLK.C.F05 && DRLK.C.E01 verification: | To trigger the event give below command in another terminal of DUT - echo "{"Cmd": "SetDoorState", "Params": { "EndpointId": 1, "DoorState": 1 } }" > /tmp/chip_lock_app_fifo- (PID of lock-app) + echo '{"Cmd": "SetDoorState", "Params": { "EndpointId": 1, "DoorState": 1 } }' > /tmp/chip_lock_app_fifo- (PID of lock-app) ./chip-tool doorlock read-event door-state-change 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_FLW_3_1.yaml b/src/app/tests/suites/certification/Test_TC_FLW_3_1_Simulated.yaml similarity index 69% rename from src/app/tests/suites/certification/Test_TC_FLW_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_FLW_3_1_Simulated.yaml index ac626bd2ccb14e..24db2438da578c 100644 --- a/src/app/tests/suites/certification/Test_TC_FLW_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_FLW_3_1_Simulated.yaml @@ -11,7 +11,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: 31.3.1. [TC-FLW-3.1] Attributes with Client as DUT @@ -24,182 +23,33 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Flow Measurement" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - - Commission TH(all-clusters-app) to TH(chip-tool) using below command - - TH(all-clusters-app) : sudo ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 - disabled: true + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order." + - label: "Read attribute: MeasuredValue" PICS: FLW.C.AM-READ - verification: | - TH receives the read command and knows this attribute for this cluster and provides a plausable value, DUT processes the values and operates normally - - - ./chip-tool flowmeasurement read measured-value 1 1 - - Verify Measured-value attribute response on the TH(all-clusters-app) Log: - - ReportDataMessage = - [1666851206.054413][18793:18793] CHIP:DMG: { - [1666851206.054416][18793:18793] CHIP:DMG: AttributeReportIBs = - [1666851206.054421][18793:18793] CHIP:DMG: [ - [1666851206.054424][18793:18793] CHIP:DMG: AttributeReportIB = - [1666851206.054429][18793:18793] CHIP:DMG: { - [1666851206.054432][18793:18793] CHIP:DMG: AttributeDataIB = - [1666851206.054435][18793:18793] CHIP:DMG: { - [1666851206.054439][18793:18793] CHIP:DMG: DataVersion = 0x8435d808, - [1666851206.054442][18793:18793] CHIP:DMG: AttributePathIB = - [1666851206.054447][18793:18793] CHIP:DMG: { - [1666851206.054451][18793:18793] CHIP:DMG: Endpoint = 0x1, - [1666851206.054459][18793:18793] CHIP:DMG: Cluster = 0x404, - [1666851206.054462][18793:18793] CHIP:DMG: Attribute = 0x0000_0000, - [1666851206.054465][18793:18793] CHIP:DMG: } - [1666851206.054470][18793:18793] CHIP:DMG: - [1666851206.054473][18793:18793] CHIP:DMG: Data = 0, - [1666851206.054476][18793:18793] CHIP:DMG: }, - [1666851206.054480][18793:18793] CHIP:DMG: - [1666851206.054483][18793:18793] CHIP:DMG: }, - [1666851206.054487][18793:18793] CHIP:DMG: - [1666851206.054490][18793:18793] CHIP:DMG: ], - [1666851206.054495][18793:18793] CHIP:DMG: - [1666851206.054498][18793:18793] CHIP:DMG: SuppressResponse = true, - [1666851206.054501][18793:18793] CHIP:DMG: InteractionModelRevision = 1 - [1666851206.054503][18793:18793] CHIP:DMG: } - [1666851206.054507][18793:18793] CHIP:DMG: - - - + wait: "readAttribute" + attribute: "MeasuredValue" - ./chip-tool flowmeasurement read min-measured-value 1 1 - - Verify Min-measured-value attribute response on the TH(all-clusters-app) Log: - - ReportDataMessage = - [1666851246.809057][18793:18793] CHIP:DMG: { - [1666851246.809059][18793:18793] CHIP:DMG: AttributeReportIBs = - [1666851246.809065][18793:18793] CHIP:DMG: [ - [1666851246.809068][18793:18793] CHIP:DMG: AttributeReportIB = - [1666851246.809073][18793:18793] CHIP:DMG: { - [1666851246.809076][18793:18793] CHIP:DMG: AttributeDataIB = - [1666851246.809079][18793:18793] CHIP:DMG: { - [1666851246.809083][18793:18793] CHIP:DMG: DataVersion = 0x8435d808, - [1666851246.809086][18793:18793] CHIP:DMG: AttributePathIB = - [1666851246.809089][18793:18793] CHIP:DMG: { - [1666851246.809093][18793:18793] CHIP:DMG: Endpoint = 0x1, - [1666851246.809096][18793:18793] CHIP:DMG: Cluster = 0x404, - [1666851246.809100][18793:18793] CHIP:DMG: Attribute = 0x0000_0001, - [1666851246.809103][18793:18793] CHIP:DMG: } - [1666851246.809107][18793:18793] CHIP:DMG: - [1666851246.809111][18793:18793] CHIP:DMG: Data = 0, - [1666851246.809114][18793:18793] CHIP:DMG: }, - [1666851246.809119][18793:18793] CHIP:DMG: - [1666851246.809122][18793:18793] CHIP:DMG: }, - [1666851246.809128][18793:18793] CHIP:DMG: - [1666851246.809130][18793:18793] CHIP:DMG: ], - [1666851246.809134][18793:18793] CHIP:DMG: - [1666851246.809138][18793:18793] CHIP:DMG: SuppressResponse = true, - [1666851246.809141][18793:18793] CHIP:DMG: InteractionModelRevision = 1 - [1666851246.809143][18793:18793] CHIP:DMG: } - - - - ./chip-tool flowmeasurement read max-measured-value 1 1 - - Verify Max-measured-value attribute response on the TH(all-clusters-app) Log: + - label: "Read attribute: MinMeasuredValue" + PICS: FLW.C.AM-READ + wait: "readAttribute" + attribute: "MinMeasuredValue" - ReportDataMessage = - [1666851281.851991][18793:18793] CHIP:DMG: { - [1666851281.851994][18793:18793] CHIP:DMG: AttributeReportIBs = - [1666851281.851999][18793:18793] CHIP:DMG: [ - [1666851281.852002][18793:18793] CHIP:DMG: AttributeReportIB = - [1666851281.852007][18793:18793] CHIP:DMG: { - [1666851281.852010][18793:18793] CHIP:DMG: AttributeDataIB = - [1666851281.852013][18793:18793] CHIP:DMG: { - [1666851281.852018][18793:18793] CHIP:DMG: DataVersion = 0x8435d808, - [1666851281.852021][18793:18793] CHIP:DMG: AttributePathIB = - [1666851281.852024][18793:18793] CHIP:DMG: { - [1666851281.852028][18793:18793] CHIP:DMG: Endpoint = 0x1, - [1666851281.852032][18793:18793] CHIP:DMG: Cluster = 0x404, - [1666851281.852036][18793:18793] CHIP:DMG: Attribute = 0x0000_0002, - [1666851281.852039][18793:18793] CHIP:DMG: } - [1666851281.852042][18793:18793] CHIP:DMG: - [1666851281.852046][18793:18793] CHIP:DMG: Data = 0, - [1666851281.852049][18793:18793] CHIP:DMG: }, - [1666851281.852054][18793:18793] CHIP:DMG: - [1666851281.852057][18793:18793] CHIP:DMG: }, - [1666851281.852061][18793:18793] CHIP:DMG: - [1666851281.852064][18793:18793] CHIP:DMG: ], - [1666851281.852068][18793:18793] CHIP:DMG: - [1666851281.852071][18793:18793] CHIP:DMG: SuppressResponse = true, - [1666851281.852074][18793:18793] CHIP:DMG: InteractionModelRevision = 1 - [1666851281.852076][18793:18793] CHIP:DMG: } - disabled: true + - label: "Read attribute: MaxMeasuredValue" + PICS: FLW.C.AM-READ + wait: "readAttribute" + attribute: "MaxMeasuredValue" - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." + - label: "Read attribute: Tolerance" PICS: FLW.C.AO-READ - verification: | - TH receives the read command and knows this attribute for this cluster and provides a plausable value, DUT processes the values and operates normally - - ./chip-tool flowmeasurement read tolerance 1 1 - - Verify Tolerence attribute response on the TH(all-clusters-app) Log: - - ReportDataMessage = - [1666851350.358919][18793:18793] CHIP:DMG: { - [1666851350.358921][18793:18793] CHIP:DMG: AttributeReportIBs = - [1666851350.358925][18793:18793] CHIP:DMG: [ - [1666851350.358928][18793:18793] CHIP:DMG: AttributeReportIB = - [1666851350.358933][18793:18793] CHIP:DMG: { - [1666851350.358936][18793:18793] CHIP:DMG: AttributeDataIB = - [1666851350.358939][18793:18793] CHIP:DMG: { - [1666851350.358943][18793:18793] CHIP:DMG: DataVersion = 0x8435d808, - [1666851350.358946][18793:18793] CHIP:DMG: AttributePathIB = - [1666851350.358949][18793:18793] CHIP:DMG: { - [1666851350.358953][18793:18793] CHIP:DMG: Endpoint = 0x1, - [1666851350.358956][18793:18793] CHIP:DMG: Cluster = 0x404, - [1666851350.358960][18793:18793] CHIP:DMG: Attribute = 0x0000_0003, - [1666851350.358963][18793:18793] CHIP:DMG: } - [1666851350.358967][18793:18793] CHIP:DMG: - [1666851350.358971][18793:18793] CHIP:DMG: Data = 0, - [1666851350.358974][18793:18793] CHIP:DMG: }, - [1666851350.358979][18793:18793] CHIP:DMG: - [1666851350.358982][18793:18793] CHIP:DMG: }, - [1666851350.358986][18793:18793] CHIP:DMG: - [1666851350.358989][18793:18793] CHIP:DMG: ], - [1666851350.358994][18793:18793] CHIP:DMG: - [1666851350.358997][18793:18793] CHIP:DMG: SuppressResponse = true, - [1666851350.359000][18793:18793] CHIP:DMG: InteractionModelRevision = 1 - [1666851350.359003][18793:18793] CHIP:DMG: } - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order." - PICS: FLW.C.AM-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: FLW.C.AO-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true + wait: "readAttribute" + attribute: "Tolerance" - label: "Configure TH such that it implements mandatory and none of the @@ -421,8 +271,6 @@ tests: [1666851643.847294][18927:18927] CHIP:DMG: } - - ./chip-tool flowmeasurement read measured-value 1 1 Verify MeasuredValue response on the TH(all-clusters-minimal-app) Log: @@ -456,8 +304,6 @@ tests: - - ./chip-tool flowmeasurement read min-measured-value 1 1 Verify MinMeasuredValue response on the TH(all-clusters-minimal-app) Log: @@ -490,7 +336,6 @@ tests: [1666851700.451681][18927:18927] CHIP:DMG: } - ./chip-tool flowmeasurement read max-measured-value 1 1 Verify MaxMeasured Value response on the TH(all-clusters-minimal-app) Log: @@ -521,12 +366,19 @@ tests: [1666851727.140290][18927:18927] CHIP:DMG: SuppressResponse = true, [1666851727.140295][18927:18927] CHIP:DMG: InteractionModelRevision = 1 [1666851727.140298][18927:18927] CHIP:DMG: } - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." - PICS: FLW.C.AO-READ + a manufacturer specific order" verification: | Verify TH(all-clusters-minimal-app) receives the read command, and responds that this attribute is not available and also DUT is aware that the optional attributes are not available, and does not issue read requests for the attributes which it did read in step 2 @@ -536,13 +388,28 @@ tests: Verify Tolerance response on the TH(all-clusters-minimal-app) Log: on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && FLW.C.AO-READ + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: FLW.C.AO-WRITE + the TH one at a time in a manufacturer specific order" verification: | - This cluster doesn"t have any writable attributes - disabled: true + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_G_3_2.yaml b/src/app/tests/suites/certification/Test_TC_G_3_2.yaml index 986aeb731ff5b3..6279015e7118ee 100644 --- a/src/app/tests/suites/certification/Test_TC_G_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_3_2.yaml @@ -310,7 +310,7 @@ tests: verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool groups get-group-membership "[0002]" 1 1 + ./chip-tool groups get-group-membership '[0002]' 1 1 Verify the "GetGroupMembership command response" on the TH(Allcluster-app) Log: 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 c03f9ead12008a..7352a8f1f9c292 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 @@ -76,7 +76,9 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster/attribute/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 ACL cluster command if user 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 + [1659419722.669629][1915:1920] CHIP:DMG: WriteResponseMessage = [1659419722.669657][1915:1920] CHIP:DMG: { [1659419722.669687][1915:1920] CHIP:DMG: AttributeStatusIBs = @@ -124,6 +126,7 @@ tests: ./chip-tool onoff on 1 1 + On TH(chip-tool), verify DUT responds 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 @@ -146,6 +149,7 @@ tests: 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 ACL 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 + [1659419722.669629][1915:1920] CHIP:DMG: WriteResponseMessage = [1659419722.669657][1915:1920] CHIP:DMG: { [1659419722.669687][1915:1920] CHIP:DMG: AttributeStatusIBs = @@ -192,7 +196,9 @@ tests: ./chip-tool generalcommissioning commissioning-complete 1 0 + On TH(chip-tool), verify DUT responds 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) @@ -273,6 +279,7 @@ tests: 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 ACL 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 + [1659419722.669629][1915:1920] CHIP:DMG: WriteResponseMessage = [1659419722.669657][1915:1920] CHIP:DMG: { [1659419722.669687][1915:1920] CHIP:DMG: AttributeStatusIBs = @@ -319,7 +326,9 @@ tests: ./chip-tool onoff on 1 1 --timedInteractionTimeoutMs 100 + On TH(chip-tool), verify DUT responds 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: }, 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 873f16629f694d..ee617bce301186 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 @@ -106,11 +106,12 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response + [1657881584.166241][2584:2589] CHIP:DMG: } [1657881584.166599][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 4079829024 - [1657881584.166672][2584:2589] CHIP:TOO: IdentifyTime: 0 + [1657881584.166672][2584:2589] CHIP:TOO: identify time: 0 [1657881584.166734][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657881584.166761][2584:2589] CHIP:TOO: IdentifyType: 2 + [1657881584.166761][2584:2589] CHIP:TOO: identify type: 2 [1657881584.166817][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 4079829024 [1657881584.166844][2584:2589] CHIP:TOO: FeatureMap: 0 [1657881584.166900][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 4079829024 @@ -154,6 +155,7 @@ tests: send a report data action with the attribute value to the DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFD 1 0xFFFF verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command @@ -187,6 +189,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool any read-by-id 0x03 0xFFFFFFFF 1 0xFFFF + verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command [1655721586.587649][10909:10909] CHIP:EM: Handling via exchange: 14559r, Delegate: 0xaaaac37ce418 @@ -211,9 +214,9 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values [1657881729.900518][2608:2613] CHIP:DMG: } [1657881729.901108][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 4079829024 - [1657881729.901182][2608:2613] CHIP:TOO: IdentifyTime: 0 + [1657881729.901182][2608:2613] CHIP:TOO: identify time: 0 [1657881729.901245][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657881729.901273][2608:2613] CHIP:TOO: IdentifyType: 2 + [1657881729.901273][2608:2613] CHIP:TOO: identify type: 2 [1657881729.901331][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 4079829024 [1657881729.901359][2608:2613] CHIP:TOO: FeatureMap: 0 [1657881729.901431][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 4079829024 @@ -234,9 +237,9 @@ tests: [1657881729.902426][2608:2613] CHIP:TOO: [6]: 65532 [1657881729.902451][2608:2613] CHIP:TOO: [7]: 65533 [1657881729.902474][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3999381333 - [1657881729.902500][2608:2613] CHIP:TOO: IdentifyTime: 0 + [1657881729.902500][2608:2613] CHIP:TOO: identify time: 0 [1657881729.902556][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3999381333 - [1657881729.902583][2608:2613] CHIP:TOO: IdentifyType: 2 + [1657881729.902583][2608:2613] CHIP:TOO: identify type: 2 [1657881729.902640][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 3999381333 [1657881729.902665][2608:2613] CHIP:TOO: FeatureMap: 0 [1657881729.902721][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3999381333 @@ -293,9 +296,9 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values [1657881792.350417][2616:2621] CHIP:DMG: } [1657881792.350641][2616:2621] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657881792.350742][2616:2621] CHIP:TOO: IdentifyType: 2 + [1657881792.350742][2616:2621] CHIP:TOO: identify type: 2 [1657881792.350845][2616:2621] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3999381333 - [1657881792.350891][2616:2621] CHIP:TOO: IdentifyType: 2 + [1657881792.350891][2616:2621] CHIP:TOO: identify type: 2 [1657881792.351000][2616:2621] CHIP:EM: Sending Standalone Ack for MessageCounter:222990264 on exchange 23721i disabled: true @@ -471,6 +474,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool modeselect read description 1 1 + verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command [1655722750.452237][10909:10909] CHIP:EM: Handling via exchange: 31886r, Delegate: 0xaaaac37ce418 @@ -536,7 +540,7 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values [1657882043.053353][2648:2653] CHIP:DMG: } [1657882043.053561][2648:2653] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657882043.053662][2648:2653] CHIP:TOO: IdentifyType: 2 + [1657882043.053662][2648:2653] CHIP:TOO: identify type: 2 [1657882043.053774][2648:2653] CHIP:EM: Sending Standalone Ack for MessageCounter:228608905 on exchange 11019i disabled: true @@ -586,7 +590,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -771,7 +775,7 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values [1657882403.876372][2715:2720] CHIP:DMG: } [1657882403.876514][2715:2720] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0406 Attribute 0x0000_0001 DataVersion: 737072536 - [1657882403.876595][2715:2720] CHIP:TOO: OccupancySensorType: 0 + [1657882403.876595][2715:2720] CHIP:TOO: occupancy sensor type: 0 [1657882403.876679][2715:2720] CHIP:EM: Sending Standalone Ack for MessageCounter:153370776 on exchange 37640i disabled: true 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 979b5b719272ee..4f0fb6b8245d4b 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,6 +34,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool identify read identify-time 1 1 + On the TH(chip-tool) verify the received report data message has the right attribute value for above command [1655727338.260966][5267:5272] CHIP:DMG: ReportDataMessage = @@ -63,7 +64,7 @@ tests: [1655727338.262145][5267:5272] CHIP:DMG: InteractionModelRevision = 1 [1655727338.262182][5267:5272] CHIP:DMG: } [1655727338.262379][5267:5272] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 236949823 - [1655727338.262475][5267:5272] CHIP:TOO: IdentifyTime: 0 + [1655727338.262475][5267:5272] CHIP:TOO: identify time: 0 [1655727338.262588][5267:5272] CHIP:EM: Sending Standalone Ack for MessageCounter:9195311 on exchange 32586i disabled: true @@ -85,9 +86,9 @@ tests: [1655727546.354538][5286:5291] CHIP:DMG: InteractionModelRevision = 1 [1655727546.354580][5286:5291] CHIP:DMG: } [1655727546.355252][5286:5291] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 1545325355 - [1655727546.355324][5286:5291] CHIP:TOO: IdentifyTime: 0 + [1655727546.355324][5286:5291] CHIP:TOO: identify time: 0 [1655727546.355386][5286:5291] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 1545325355 - [1655727546.355414][5286:5291] CHIP:TOO: IdentifyType: 2 + [1655727546.355414][5286:5291] CHIP:TOO: identify type: 2 [1655727546.355470][5286:5291] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 1545325355 [1655727546.355524][5286:5291] CHIP:TOO: FeatureMap: 0 [1655727546.355606][5286:5291] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 1545325355 @@ -167,9 +168,9 @@ tests: [1655727602.119897][5301:5306] CHIP:DMG: InteractionModelRevision = 1 [1655727602.119933][5301:5306] CHIP:DMG: } [1655727602.120134][5301:5306] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 1545325355 - [1655727602.120223][5301:5306] CHIP:TOO: IdentifyTime: 0 + [1655727602.120223][5301:5306] CHIP:TOO: identify time: 0 [1655727602.120315][5301:5306] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 236949823 - [1655727602.120356][5301:5306] CHIP:TOO: IdentifyTime: 0 + [1655727602.120356][5301:5306] CHIP:TOO: identify time: 0 [1655727602.120460][5301:5306] CHIP:EM: Sending Standalone Ack for MessageCounter:192238779 on exchange 58891i disabled: true @@ -263,7 +264,9 @@ tests: the clusters to the DUT." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFD 1 0xFFFF + Here Verifying cluster revision global attribute from all cluster for all endpoint. On the TH(chip-tool) verify the received report data message has all the right attribute values for above command disabled: true @@ -275,15 +278,16 @@ tests: action with the attribute value from all the Endpoints to the DUT." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + ./chip-tool any read-by-id 0x03 0xFFFFFFFF 1 0xFFFF On the TH(chip-tool) verify the received report data message has all the right attribute values 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 - [1653629930.058788][8778:8783] CHIP:TOO: IdentifyTime: 0 + [1653629930.058788][8778:8783] CHIP:TOO: identify time: 0 [1653629930.058889][8778:8783] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 2065044836 - [1653629930.058919][8778:8783] CHIP:TOO: IdentifyType: 2 + [1653629930.058919][8778:8783] CHIP:TOO: identify type: 2 [1653629930.058980][8778:8783] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 2065044836 [1653629930.058998][8778:8783] CHIP:TOO: ClusterRevision: 4 [1653629930.059191][8778:8783] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 2065044836 @@ -303,9 +307,9 @@ tests: [1653629930.060048][8778:8783] CHIP:TOO: [5]: 65531 [1653629930.060064][8778:8783] CHIP:TOO: [6]: 65533 [1653629930.060077][8778:8783] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 - [1653629930.060095][8778:8783] CHIP:TOO: IdentifyTime: 0 + [1653629930.060095][8778:8783] CHIP:TOO: identify time: 0 [1653629930.060151][8778:8783] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435651 - [1653629930.060167][8778:8783] CHIP:TOO: IdentifyType: 2 + [1653629930.060167][8778:8783] CHIP:TOO: identify type: 2 [1653629930.060224][8778:8783] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3620435651 [1653629930.060240][8778:8783] CHIP:TOO: ClusterRevision: 4 [1653629930.060411][8778:8783] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 3620435651 @@ -349,6 +353,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool onoff read on-off 1 1 + On the TH(chip-tool) verify the received report data message has the right attribute value for above command [1653630222.692433][8886:8891] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 312829505 @@ -414,7 +419,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -424,6 +429,7 @@ tests: PICS: MCORE.IDM.S.Attribute.DataType_OctetString verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + ./chip-tool operationalcredentials read trusted-root-certificates 1 0 On the TH(chip-tool) verify the received report data message has the right attribute value for above command @@ -460,6 +466,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool timeformatlocalization read supported-calendar-types 1 0 + On the TH(chip-tool) verify the received report data message has the right attribute values for above command [1653630857.535521][9171:9176] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0002 DataVersion: 139938310 @@ -486,7 +493,9 @@ tests: PICS: MCORE.IDM.S.Attribute.DataType_Enum verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + ./chip-tool occupancysensing read occupancy-sensor-type 1 1 + On the TH(chip-tool) verify the received report data message has the 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 @@ -500,7 +509,8 @@ tests: PICS: MCORE.IDM.S.Attribute.DataType_Bitmap verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - ./chip-tool levelcontrol read options 1 1 + + ./chip-tool levelcontrol read options 1 1 On the TH(chip-tool) verify the received report data message has the right attribute value for above command [1653631017.039079][9211:9216] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_000F DataVersion: 199562416 @@ -537,7 +547,9 @@ tests: an unsupported cluster. DUT responds with the report data action." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + ./chip-tool any read-by-id 0x3 0x1 1 2 + On TH(chip-tool) verify that the DUT sends the status code UNSUPPORTED_CLUSTER for above command [1653631187.121757][9257:9262] CHIP:DMG: SuppressResponse = true, @@ -554,6 +566,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool thermostat read outdoor-temperature 1 1 + On TH(chip-tool) verify that the DUT sends the status code UNSUPPORTED_ATTRIBUTE for above command [1653631289.755681][9274:9279] CHIP:DMG: SuppressResponse = true, @@ -568,7 +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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -582,6 +595,7 @@ tests: 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 ACL 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 + [1659419722.669629][1915:1920] CHIP:DMG: WriteResponseMessage = [1659419722.669657][1915:1920] CHIP:DMG: { [1659419722.669687][1915:1920] CHIP:DMG: AttributeStatusIBs = @@ -629,7 +643,9 @@ tests: ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + On TH(chip-tool) verify that the DUT sends the status code UNSUPPORTED_ACCESS(0x7E) for above command + [1659422202.429460][2021:2027] CHIP:DMG: [1659422202.429488][2021:2027] CHIP:DMG: SuppressResponse = true, [1659422202.429516][2021:2027] CHIP:DMG: InteractionModelRevision = 1 @@ -640,7 +656,7 @@ tests: 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 + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233], "targets":null}]' 1 0 disabled: true - label: @@ -653,17 +669,17 @@ tests: ./chip-tool identify read identify-time 1 1 [1653631418.770328][9322:9327] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 - [1653631418.770402][9322:9327] CHIP:TOO: IdentifyTime: 0 + [1653631418.770402][9322:9327] CHIP:TOO: identify time: 0 [1653631418.770491][9322:9327] CHIP:EM: Sending Standalone Ack for MessageCounter:12532212 on exchange 36485i ./chip-tool identify read identify-time 1 1 [1653631479.556292][9357:9362] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 - [1653631479.556345][9357:9362] CHIP:TOO: IdentifyTime: 0 + [1653631479.556345][9357:9362] CHIP:TOO: identify time: 0 [1653631479.556418][9357:9362] CHIP:EM: Sending Standalone Ack for MessageCounter:7220061 on exchange 60774i ./chip-tool identify read identify-time 1 1 [1653632941.731096][9571:9576] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 - [1653632941.731146][9571:9576] CHIP:TOO: IdentifyTime: 0 + [1653632941.731146][9571:9576] CHIP:TOO: identify time: 0 [1653632941.731258][9571:9576] CHIP:EM: Sending Standalone Ack for MessageCounter:578130 on exchange 46565i disabled: true @@ -677,6 +693,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool identify read identify-time 1 1 + [1653633746.447923][9791:9796] CHIP:DMG: ReportDataMessage = [1653633746.447944][9791:9796] CHIP:DMG: { [1653633746.447955][9791:9796] CHIP:DMG: AttributeReportIBs = @@ -704,12 +721,13 @@ tests: [1653633746.448375][9791:9796] CHIP:DMG: InteractionModelRevision = 1 [1653633746.448389][9791:9796] CHIP:DMG: } [1653633746.448532][9791:9796] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435654 - [1653633746.448576][9791:9796] CHIP:TOO: IdentifyTime: 0 + [1653633746.448576][9791:9796] CHIP:TOO: identify time: 0 [1653633746.448656][9791:9796] CHIP:EM: Sending Standalone Ack for MessageCounter:16255130 on exchange 13134i TH sends a below mentioned second read request to the same cluster with the DataVersionFilter Field set with the dataversion value received before. ./chip-tool identify read identify-time 1 1 --data-version 0xd7cb76c6 + Verify on TH(chip-tool) that DUT should not send a report data action with the attribute value to the TH [1653633771.729259][9806:9811] CHIP:DMG: ReportDataMessage = @@ -762,12 +780,13 @@ tests: [1653632941.730858][9571:9576] CHIP:DMG: InteractionModelRevision = 1 [1653632941.730912][9571:9576] CHIP:DMG: } [1653632941.731096][9571:9576] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435651 - [1653632941.731146][9571:9576] CHIP:TOO: IdentifyTime: 0 + [1653632941.731146][9571:9576] CHIP:TOO: identify time: 0 [1653632941.731258][9571:9576] CHIP:EM: Sending Standalone Ack for MessageCounter:578130 on exchange 46565i ./chip-tool identify write identify-time 2 1 1 + On the TH(chip-tool) verify the succes status response received from DUT [1653633154.992424][9645:9650] CHIP:DMG: StatusIB = [1653633154.992448][9645:9650] CHIP:DMG: { @@ -776,10 +795,11 @@ tests: [1653633154.992499][9645:9650] CHIP:DMG: TH sends a below mentioned second read request to read an attribute from the same cluster with the DataVersionFilter Field set with the dataversion value received before, and verify that DUT should send a report data action with the attribute value to the TH. + ./chip-tool identify read identify-time 1 1 --data-version 0xd7cb76c3 [1653633215.246620][9664:9669] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435654 - [1653633215.246671][9664:9669] CHIP:TOO: IdentifyTime: 0 + [1653633215.246671][9664:9669] CHIP:TOO: identify time: 0 [1653633215.246786][9664:9669] CHIP:EM: Sending Standalone Ack for MessageCounter:3995786 on exchange 44935i disabled: true @@ -800,9 +820,9 @@ tests: [1653633965.092996][9835:9840] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435654 - [1653633965.093041][9835:9840] CHIP:TOO: IdentifyTime: 0 + [1653633965.093041][9835:9840] CHIP:TOO: identify time: 0 [1653633965.093120][9835:9840] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435654 - [1653633965.093140][9835:9840] CHIP:TOO: IdentifyType: 2 + [1653633965.093140][9835:9840] CHIP:TOO: identify type: 2 [1653633965.093202][9835:9840] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3620435654 [1653633965.093221][9835:9840] CHIP:TOO: ClusterRevision: 4 [1653633965.093411][9835:9840] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 3620435654 @@ -825,6 +845,7 @@ tests: ./chip-tool any write-by-id 0x03 0x00 2 1 1 + [1653634024.367171][9851:9856] CHIP:DMG: WriteResponseMessage = [1653634024.367181][9851:9856] CHIP:DMG: { [1653634024.367189][9851:9856] CHIP:DMG: AttributeStatusIBs = @@ -858,9 +879,9 @@ tests: [1653634117.935268][9878:9883] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435657 - [1653634117.935294][9878:9883] CHIP:TOO: IdentifyTime: 0 + [1653634117.935294][9878:9883] CHIP:TOO: identify time: 0 [1653634117.935322][9878:9883] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435657 - [1653634117.935331][9878:9883] CHIP:TOO: IdentifyType: 2 + [1653634117.935331][9878:9883] CHIP:TOO: identify type: 2 [1653634117.935357][9878:9883] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3620435657 [1653634117.935366][9878:9883] CHIP:TOO: ClusterRevision: 4 [1653634117.935452][9878:9883] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 3620435657 @@ -904,6 +925,7 @@ tests: TH sends a below mentioned read request to the same cluster to read any attribute with the right DataVersion(received in the previous step) and also an older DataVersion. The Read Request Message should have 2 DataVersionIB filters and verify that DUT should send a report data action with the attribute value to the TH. + ./chip-tool identify read identify-type 1 1 --data-version 0xd7cb76cc,0xd7cb76c9 [1653634371.474553][9936:9941] CHIP:DMG: ReportDataMessage = @@ -950,9 +972,9 @@ tests: [1653634371.475517][9936:9941] CHIP:DMG: InteractionModelRevision = 1 [1653634371.475531][9936:9941] CHIP:DMG: } [1653634371.475692][9936:9941] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435660 - [1653634371.475731][9936:9941] CHIP:TOO: IdentifyType: 2 + [1653634371.475731][9936:9941] CHIP:TOO: identify type: 2 [1653634371.475818][9936:9941] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435660 - [1653634371.475837][9936:9941] CHIP:TOO: IdentifyType: 2 + [1653634371.475837][9936:9941] CHIP:TOO: identify type: 2 [1653634371.475907][9936:9941] CHIP:EM: Sending Standalone Ack for MessageCounter:16704146 on exchange 6313i disabled: true @@ -973,9 +995,9 @@ tests: ./chip-tool any read-by-id 0x03 0xFFFFFFFF 1 1 [1653634446.678378][9962:9967] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3620435660 - [1653634446.678404][9962:9967] CHIP:TOO: IdentifyTime: 0 + [1653634446.678404][9962:9967] CHIP:TOO: identify time: 0 [1653634446.678437][9962:9967] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3620435660 - [1653634446.678447][9962:9967] CHIP:TOO: IdentifyType: 2 + [1653634446.678447][9962:9967] CHIP:TOO: identify type: 2 [1653634446.678474][9962:9967] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3620435660 [1653634446.678483][9962:9967] CHIP:TOO: ClusterRevision: 4 [1653634446.678570][9962:9967] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 3620435660 @@ -1030,7 +1052,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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -1063,6 +1085,7 @@ tests: The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool any read-by-id 0xFFFFFFFF 0x0 1 0xFFFF + On the TH(chip-tool) verify that the DUT sends an error message and not the value of the attribute. [1656503822.388967][2787:2792] CHIP:DMG: StatusResponseMessage = [1656503822.389027][2787:2792] CHIP:DMG: { @@ -1086,7 +1109,8 @@ tests: 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 ACL 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 + ./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 = @@ -1133,7 +1157,9 @@ tests: ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0 + Verify that there are no errors sent back for attributes the TH has no access to. + [1659422360.478947][2049:2054] CHIP:DMG: } [1659422360.479556][2049:2054] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 3949809681 [1659422360.479619][2049:2054] CHIP:TOO: ACL: 1 entries @@ -1185,7 +1211,7 @@ tests: 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 + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233], "targets":null}]' 1 0 disabled: true - label: 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 dfcdc7dca0854c..f232c6a45a1106 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 @@ -68,6 +68,7 @@ tests: [1655795552.552686][7331:7331] CHIP:DMG: }, If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response + [1657883782.721742][2796:2801] CHIP:DMG: WriteResponseMessage = [1657883782.721783][2796:2801] CHIP:DMG: { [1657883782.721819][2796:2801] CHIP:DMG: AttributeStatusIBs = @@ -97,7 +98,9 @@ tests: ./chip-tool levelcontrol read on-level 1 1 + verify on TH(reference app) receives the right write Request Message for the data sent in the above command + [1657883808.062792][2457:2457] CHIP:IM: Received Read request [1657883808.062871][2457:2457] CHIP:DMG: ReadRequestMessage = [1657883808.062900][2457:2457] CHIP:DMG: { @@ -118,6 +121,7 @@ tests: [1657883808.063369][2457:2457] CHIP:DMG: IM RH moving to [GeneratingReports] If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response + [1655795604.755214][6880:6885] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 737039636 [1655795604.755363][6880:6885] CHIP:TOO: on level: 2 [1655795604.755460][6880:6885] CHIP:EM: Sending Standalone Ack for MessageCounter:83198098 on exchange 53763iOn TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command @@ -206,6 +210,7 @@ tests: ./chip-tool basicinformation read local-config-disabled 1 0 verify on TH(reference app) receives the right write Request Message for the data sent in the above command + [1657884119.522809][2748:2748] CHIP:IM: Received Read request [1657884119.522885][2748:2748] CHIP:DMG: ReadRequestMessage = [1657884119.522911][2748:2748] CHIP:DMG: { @@ -226,6 +231,7 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response + [1655795843.336042][6902:6907] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 1263909562 [1655795843.336093][6902:6907] CHIP:TOO: LocalConfigDisabled: TRUE [1655795843.336251][6902:6907] CHIP:EM: Sending Standalone Ack for MessageCounter:108030495 on exchange 43207i @@ -271,7 +277,9 @@ tests: [1655796035.023656][7331:7331] CHIP:DMG: }, [1655796035.023791][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=m [1655796035.023851][7331:7331] CHIP:DMG: AccessControl: allowed + If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response + [1657884155.221193][2865:2870] CHIP:DMG: WriteResponseMessage = [1657884155.221246][2865:2870] CHIP:DMG: { [1657884155.221292][2865:2870] CHIP:DMG: AttributeStatusIBs = @@ -302,6 +310,7 @@ tests: ./chip-tool basicinformation read node-label 1 0 verify on TH(reference app) receives the right write Request Message for the data sent in the above command + [1657884173.738798][2748:2748] CHIP:IM: Received Read request [1657884173.738877][2748:2748] CHIP:DMG: ReadRequestMessage = [1657884173.738904][2748:2748] CHIP:DMG: { @@ -369,6 +378,7 @@ tests: If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response + [1657884204.951658][2878:2883] CHIP:DMG: WriteResponseMessage = [1657884204.951700][2878:2883] CHIP:DMG: { [1657884204.951736][2878:2883] CHIP:DMG: AttributeStatusIBs = @@ -400,6 +410,7 @@ tests: ./chip-tool any read-by-id 0x0008 0x0010 1 1 verify on TH(reference app) receives the read Request Message for the data sent in the above command + [1657884227.859836][2748:2748] CHIP:IM: Received Read request [1657884227.859916][2748:2748] CHIP:DMG: ReadRequestMessage = [1657884227.859942][2748:2748] CHIP:DMG: { @@ -420,6 +431,7 @@ tests: [1657884227.860413][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports] If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response + [1655796192.032715][6931:6936] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0010 DataVersion: 737039637 [1655796192.032807][6931:6936] CHIP:TOO: on off transition time: 1 [1655796192.032908][6931:6936] CHIP:EM: Sending Standalone Ack for MessageCounter:249349258 on exchange 7433i @@ -432,7 +444,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -442,7 +454,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -452,7 +464,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -462,7 +474,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -472,7 +484,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -517,6 +529,7 @@ tests: [1655796297.609403][7331:7331] CHIP:DMG: AccessControl: allowed If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response + [1657884258.383116][2892:2897] CHIP:DMG: WriteResponseMessage = [1657884258.383157][2892:2897] CHIP:DMG: { [1657884258.383192][2892:2897] CHIP:DMG: AttributeStatusIBs = @@ -546,15 +559,18 @@ tests: ./chip-tool any read-by-id 0x0204 0 1 1 + verify on TH (reference app) receives the right write Request Message for the data sent in the above command + [1657884282.303557][2898:2903] CHIP:DMG: } [1657884282.303695][2898:2903] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 2387607084 - [1657884282.303778][2898:2903] CHIP:TOO: TemperatureDisplayMode: 1 + [1657884282.303778][2898:2903] CHIP:TOO: temperature display mode: 1 [1657884282.303862][2898:2903] CHIP:EM: Sending Standalone Ack for MessageCounter:147756485 on exchange 42871i If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response + [1655796341.132655][6946:6951] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 3165945391 - [1655796341.132864][6946:6951] CHIP:TOO: TemperatureDisplayMode: 1 + [1655796341.132864][6946:6951] CHIP:TOO: temperature display mode: 1 [1655796341.132973][6946:6951] CHIP:EM: Sending Standalone Ack for MessageCounter:245498041 on exchange 51992i disabled: true @@ -633,6 +649,7 @@ tests: ./chip-tool colorcontrol read-by-id 0x000f 1 1 verify on TH (reference app) receives the right write Request Message for the data sent in the above command + [1657884334.613535][2748:2748] CHIP:IM: Received Read request [1657884334.613615][2748:2748] CHIP:DMG: ReadRequestMessage = [1657884334.613641][2748:2748] CHIP:DMG: { @@ -653,6 +670,7 @@ tests: [1657884334.614128][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports] If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response + [1655796493.233673][6961:6966] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_000F DataVersion: 2788050502 [1655796493.233761][6961:6966] CHIP:TOO: Options: 1 [1655796493.233865][6961:6966] CHIP:EM: Sending Standalone Ack for MessageCounter:185730221 on exchange 37136i @@ -667,7 +685,7 @@ tests: Here is an example command to verify the write functionality. User must choose an attribute which has large list of attribute data. ./chip-tool basicinformation write node-label node 1 0 - If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -709,6 +727,7 @@ tests: [1655796724.512344][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=o If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response + [1657884369.932192][2923:2928] CHIP:DMG: WriteResponseMessage = [1657884369.932226][2923:2928] CHIP:DMG: { [1657884369.932255][2923:2928] CHIP:DMG: AttributeStatusIBs = @@ -740,7 +759,9 @@ tests: ./chip-tool any read-by-id 0x0204 0 1 1 + verify on TH (reference app) receives the right write Request Message for the data sent in the above command + [1657884399.502355][2748:2748] CHIP:IM: Received Read request [1657884399.502442][2748:2748] CHIP:DMG: ReadRequestMessage = [1657884399.502473][2748:2748] CHIP:DMG: { @@ -761,8 +782,9 @@ tests: [1657884399.502989][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports] If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response + [1655796786.513406][6976:6981] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 3165945392 - [1655796786.513496][6976:6981] CHIP:TOO: TemperatureDisplayMode: 1 + [1655796786.513496][6976:6981] CHIP:TOO: temperature display mode: 1 [1655796786.513593][6976:6981] CHIP:EM: Sending Standalone Ack for MessageCounter:190446058 on exchange 28240i 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 c9d949ddf2f1d7..f4eeed4e542c74 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 @@ -33,7 +33,8 @@ tests: ./chip-tool levelcontrol write on-level 2 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. + On TH(Reference app), 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 = @@ -61,7 +62,9 @@ tests: ./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.825157][3523:3528] CHIP:EM: Sending Standalone Ack for MessageCounter:244110098 on exchange 12829i @@ -116,7 +119,9 @@ tests: ./chip-tool basicinformation 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.564812][3556:3561] CHIP:EM: Sending Standalone Ack for MessageCounter:57487809 on exchange 1016i @@ -162,6 +167,7 @@ tests: [1655806131.664372][7241:7246] CHIP:DMG: WriteClient moving to [AwaitingDe] ./chip-tool basicinformation 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 @@ -179,6 +185,7 @@ tests: ./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 = @@ -206,7 +213,9 @@ tests: ./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.054941][3608:3613] CHIP:EM: Sending Standalone Ack for MessageCounter:21225916 on exchange 58998i @@ -219,7 +228,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -229,7 +238,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -239,7 +248,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -249,7 +258,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -259,7 +268,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -299,8 +308,9 @@ tests: [1649152707.515374][16226:16231] CHIP:DMG: WriteClient moving to [AwaitingDe] ./chip-tool any read-by-id 0x0204 0 1 1 + [1655201353.941835][3634:3639] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 263686993 - [1655201353.941926][3634:3639] CHIP:TOO: TemperatureDisplayMode: 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 @@ -343,7 +353,9 @@ tests: ./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.606772][3665:3670] CHIP:EM: Sending Standalone Ack for MessageCounter:247256099 on exchange 33946i @@ -391,7 +403,6 @@ tests: [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) - [1649152811.554055][16246:16251] CHIP:DMG: }, disabled: true @@ -522,6 +533,7 @@ tests: 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 + [1659419722.669629][1915:1920] CHIP:DMG: WriteResponseMessage = [1659419722.669657][1915:1920] CHIP:DMG: { [1659419722.669687][1915:1920] CHIP:DMG: AttributeStatusIBs = @@ -569,7 +581,9 @@ tests: ./chip-tool thermostatuserinterfaceconfiguration write temperature-display-mode 2 1 1 + 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) @@ -619,7 +633,9 @@ tests: [1653028376.100167][6518:6523] CHIP:DMG: } ./chip-tool levelcontrol read on-level 1 1 + On TH, verify the attribute value that was modified in above step + [1666869501.888524][36718:36723] CHIP:DMG: InteractionModelRevision = 1 [1666869501.888527][36718:36723] CHIP:DMG: } [1666869501.888551][36718:36723] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 675908054 @@ -632,7 +648,9 @@ tests: ./chip-tool levelcontrol write on-level 3 1 1 + 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. + [1666869547.034233][36726:36731] CHIP:DMG: WriteResponseMessage = [1666869547.034242][36726:36731] CHIP:DMG: { [1666869547.034249][36726:36731] CHIP:DMG: AttributeStatusIBs = @@ -660,7 +678,9 @@ tests: [1666869547.034566][36726:36731] CHIP:DMG: WriteClient moving to [AwaitingDe] ./chip-tool levelcontrol read on-level 1 1 + On TH, verify the attribute value that was modified in above step + [1666869620.770718][36742:36747] CHIP:DMG: InteractionModelRevision = 1 [1666869620.770726][36742:36747] CHIP:DMG: } [1666869620.770797][36742:36747] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 675908055 @@ -670,7 +690,9 @@ tests: ./chip-tool levelcontrol write on-level 1 1 1 + 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. + [1666869670.727210][36753:36758] CHIP:DMG: WriteClient moving to [ResponseRe] [1666869670.727233][36753:36758] CHIP:DMG: WriteResponseMessage = [1666869670.727241][36753:36758] CHIP:DMG: { @@ -702,7 +724,9 @@ tests: ./chip-tool levelcontrol read on-level 1 1 + On TH, verify the attribute value that was modified in above step + [1666869679.964919][36761:36766] CHIP:DMG: } [1666869679.964987][36761:36766] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 675908056 [1666869679.965005][36761:36766] CHIP:TOO: OnLevel: 1 @@ -755,6 +779,7 @@ tests: ./chip-tool levelcontrol read on-level 1 1 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 = @@ -785,9 +810,11 @@ tests: [1653028897.526763][6605:6611] CHIP:TOO: on level: 2 TH sends below mentioned WriteRequestMessage to the DUT to modify the value of one attribute with the DataVersion field set to the one received in the prior step. + ./chip-tool levelcontrol write on-level 3 1 1 --data-version 0xc4c9d7ae 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 = @@ -856,7 +883,9 @@ tests: [1653029055.885219][6643:6648] CHIP:DMG: TH sends below mentioned second WriteRequestMessage to the DUT to modify the value of an attribute with the dataversion field set to the value received earlier. + ./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 = @@ -894,5 +923,5 @@ tests: 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" + 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 44ca84df3a8dab..cff33edcb3b48d 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 @@ -293,9 +293,6 @@ tests: In the case of chip tool as a client, here is an example command the client can write an attribute in the basic cluster in the TH to change the value that the client subscribed in the above command. - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - basicinformation subscribe node-label 30 200 1 0 On TH (On the reference app) Verify if DUT is responding with the below status response for the above command @@ -358,6 +355,7 @@ tests: [1657884902.176833][2938:2943] CHIP:TOO: NodeLabel: label [1657884902.176910][2938:2943] CHIP:DMG: Refresh LivenessCheckTime for 225000 milliseconds with SubscriptionId = 0x6a6457a1 Peer = 01:0000000000000001 + Verify the above command multiple times by changing attribute value(3 times) disabled: true @@ -492,7 +490,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -506,7 +504,7 @@ tests: - If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -520,7 +518,7 @@ tests: - If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "Not Applicable" + 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 86a50d0fb643ef..84ba664bae896e 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 @@ -165,8 +165,9 @@ tests: AttributePath = [[Attribute = Attribute, Cluster = ClusterID, Endpoint = EndpointID ]]." verification: | - Out of scope for V1.0 - https://github.com/CHIP-Specifications/chip-test-plans/issues/1984 + As per Spec, there is no access control to specifically enable/disable access to an attribute, so the wording of the test plan need to be modified + + https://github.com/CHIP-Specifications/chip-test-plans/issues/2366 disabled: true - label: @@ -175,8 +176,93 @@ tests: subscribe to all attributes for which it does not have access. AttributePath = [[Cluster = ClusterID, Endpoint = EndpointID ]]." verification: | - Out of scope for V1.0 - https://github.com/CHIP-Specifications/chip-test-plans/issues/1984 + The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + #1:- Please run this test in chip tool interactive mode + + #1:- ./chip-tool interactive start + + #2:- To Setup the TH2(chip-tool) such that it should not have access to all attributes on a specific cluster and endpoint, 1st we need to send below mentioned ACL command and Here by sending below mentioned ACL command giving access for access to all attributes on a specific cluster and endpoint. + + accesscontrol write acl '[{ "fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null} , {"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[4], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]' 1 0 + + [1683772555.196371][5065:5067] CHIP:DMG: WriteClient moving to [ResponseRe] + [1683772555.196398][5065:5067] CHIP:DMG: WriteResponseMessage = + [1683772555.196406][5065:5067] CHIP:DMG: { + [1683772555.196412][5065:5067] CHIP:DMG: AttributeStatusIBs = + [1683772555.196425][5065:5067] CHIP:DMG: [ + [1683772555.196431][5065:5067] CHIP:DMG: AttributeStatusIB = + [1683772555.196439][5065:5067] CHIP:DMG: { + [1683772555.196445][5065:5067] CHIP:DMG: AttributePathIB = + [1683772555.196454][5065:5067] CHIP:DMG: { + [1683772555.196462][5065:5067] CHIP:DMG: Endpoint = 0x0, + [1683772555.196470][5065:5067] CHIP:DMG: Cluster = 0x1f, + [1683772555.196478][5065:5067] CHIP:DMG: Attribute = 0x0000_0000, + [1683772555.196484][5065:5067] CHIP:DMG: } + [1683772555.196495][5065:5067] CHIP:DMG: + [1683772555.196501][5065:5067] CHIP:DMG: StatusIB = + [1683772555.196509][5065:5067] CHIP:DMG: { + [1683772555.196517][5065:5067] CHIP:DMG: status = 0x00 (SUCCESS), + [1683772555.196523][5065:5067] CHIP:DMG: }, + [1683772555.196531][5065:5067] CHIP:DMG: + [1683772555.196537][5065:5067] CHIP:DMG: }, + [1683772555.196550][5065:5067] CHIP:DMG: + [1683772555.196556][5065:5067] CHIP:DMG: AttributeStatusIB = + [1683772555.196563][5065:5067] CHIP:DMG: { + [1683772555.196569][5065:5067] CHIP:DMG: AttributePathIB = + [1683772555.196575][5065:5067] CHIP:DMG: { + [1683772555.196583][5065:5067] CHIP:DMG: Endpoint = 0x0, + [1683772555.196590][5065:5067] CHIP:DMG: Cluster = 0x1f, + [1683772555.196598][5065:5067] CHIP:DMG: Attribute = 0x0000_0000, + [1683772555.196605][5065:5067] CHIP:DMG: ListIndex = Null, + [1683772555.196611][5065:5067] CHIP:DMG: } + [1683772555.196620][5065:5067] CHIP:DMG: + [1683772555.196627][5065:5067] CHIP:DMG: StatusIB = + [1683772555.196634][5065:5067] CHIP:DMG: { + [1683772555.196640][5065:5067] CHIP:DMG: status = 0x00 (SUCCESS), + [1683772555.196647][5065:5067] CHIP:DMG: }, + [1683772555.196654][5065:5067] CHIP:DMG: + [1683772555.196660][5065:5067] CHIP:DMG: }, + [1683772555.196672][5065:5067] CHIP:DMG: + [1683772555.196678][5065:5067] CHIP:DMG: AttributeStatusIB = + [1683772555.196685][5065:5067] CHIP:DMG: { + [1683772555.196691][5065:5067] CHIP:DMG: AttributePathIB = + [1683772555.196696][5065:5067] CHIP:DMG: { + [1683772555.196703][5065:5067] CHIP:DMG: Endpoint = 0x0, + [1683772555.196705][5065:5067] CHIP:DMG: Cluster = 0x1f, + [1683772555.196707][5065:5067] CHIP:DMG: Attribute = 0x0000_0000, + [1683772555.196709][5065:5067] CHIP:DMG: ListIndex = Null, + [1683772555.196711][5065:5067] CHIP:DMG: } + [1683772555.196714][5065:5067] CHIP:DMG: + [1683772555.196715][5065:5067] CHIP:DMG: StatusIB = + [1683772555.196717][5065:5067] CHIP:DMG: { + [1683772555.196719][5065:5067] CHIP:DMG: status = 0x00 (SUCCESS), + [1683772555.196721][5065:5067] CHIP:DMG: }, + [1683772555.196723][5065:5067] CHIP:DMG: + [1683772555.196725][5065:5067] CHIP:DMG: }, + [1683772555.196728][5065:5067] CHIP:DMG: + [1683772555.196729][5065:5067] CHIP:DMG: ], + [1683772555.196734][5065:5067] CHIP:DMG: + [1683772555.196736][5065:5067] CHIP:DMG: InteractionModelRevision = 1 + [1683772555.196737][5065:5067] CHIP:DMG: } + [1683772555.196761][5065:5067] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1683772555.196784][5065:5067] CHIP:EM: <<< [E:5727i S:25604 M:4589604 (Ack:173939662)] (S) Msg TX to 1:0000000000000001 [4847] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1683772555.196788][5065:5067] CHIP:IN: (S) Sending msg 4589604 on secure session with LSID: 25604 + + #3 TH2(Chip-Tool) sends a subscription request to subscribe to all attributes for which it does not have access. + AttributePath = [[Cluster = ClusterID, Endpoint = EndpointID ]]. + levelcontrol subscribe current-frequency 2 10 1 1 --commissioner-nodeid 4 + [1683772664.847709][5084:5086] CHIP:DMG: StatusResponseMessage = + [1683772664.847717][5084:5086] CHIP:DMG: { + [1683772664.847724][5084:5086] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1683772664.847731][5084:5086] CHIP:DMG: InteractionModelRevision = 1 + [1683772664.847737][5084:5086] CHIP:DMG: } + [1683772664.847744][5084:5086] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1683772664.847780][5084:5086] CHIP:EM: <<< [E:13809i S:6932 M:220785589 (Ack:32119470)] (S) Msg TX to 2:0000000000000001 [4847] --- Type 0001:01 (IM:StatusResponse) + [1683772664.847791][5084:5086] CHIP:IN: (S) Sending msg 220785589 on secure session with LSID: 6932 + + + With the ACL command in step-2, we are overwriting the default privilege that chip-tool has an admin. After this step-3 you need to send below mentioned command to Grant access to all clusters again. + accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233,4], "targets":null}]' 1 0 disabled: true - label: @@ -185,8 +271,89 @@ tests: on a specific Endpoint for which it does not have access. AttributePath = [[ Endpoint = EndpointID ]]." verification: | - Out of scope for V1.0 - https://github.com/CHIP-Specifications/chip-test-plans/issues/1984 + The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + #1:- Please run this test in chip tool interactive mode + + #1:- ./chip-tool interactive start + + #2:- To Setup the TH2(chip-tool) such that it should not have access to an Endpoint, 1st we need to send below mentioned ACL command and Here by sending below mentioned ACL command giving only access to an Endpoint. + + accesscontrol write acl '[{ "fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null} , {"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[4], "targets": [{ "cluster":null, "endpoint":0, "deviceType":null }]}]' 1 0 + [1683775112.601728][5932:5934] CHIP:DMG: WriteResponseMessage = + [1683775112.601731][5932:5934] CHIP:DMG: { + [1683775112.601733][5932:5934] CHIP:DMG: AttributeStatusIBs = + [1683775112.601737][5932:5934] CHIP:DMG: [ + [1683775112.601740][5932:5934] CHIP:DMG: AttributeStatusIB = + [1683775112.601742][5932:5934] CHIP:DMG: { + [1683775112.601744][5932:5934] CHIP:DMG: AttributePathIB = + [1683775112.601749][5932:5934] CHIP:DMG: { + [1683775112.601753][5932:5934] CHIP:DMG: Endpoint = 0x0, + [1683775112.601756][5932:5934] CHIP:DMG: Cluster = 0x1f, + [1683775112.601760][5932:5934] CHIP:DMG: Attribute = 0x0000_0000, + [1683775112.601763][5932:5934] CHIP:DMG: } + [1683775112.601768][5932:5934] CHIP:DMG: + [1683775112.601771][5932:5934] CHIP:DMG: StatusIB = + [1683775112.601775][5932:5934] CHIP:DMG: { + [1683775112.601779][5932:5934] CHIP:DMG: status = 0x00 (SUCCESS), + [1683775112.601782][5932:5934] CHIP:DMG: }, + [1683775112.601785][5932:5934] CHIP:DMG: + [1683775112.601788][5932:5934] CHIP:DMG: }, + [1683775112.601794][5932:5934] CHIP:DMG: + [1683775112.601796][5932:5934] CHIP:DMG: AttributeStatusIB = + [1683775112.601799][5932:5934] CHIP:DMG: { + [1683775112.601801][5932:5934] CHIP:DMG: AttributePathIB = + [1683775112.601804][5932:5934] CHIP:DMG: { + [1683775112.601807][5932:5934] CHIP:DMG: Endpoint = 0x0, + [1683775112.601810][5932:5934] CHIP:DMG: Cluster = 0x1f, + [1683775112.601814][5932:5934] CHIP:DMG: Attribute = 0x0000_0000, + [1683775112.601816][5932:5934] CHIP:DMG: ListIndex = Null, + [1683775112.601819][5932:5934] CHIP:DMG: } + [1683775112.601823][5932:5934] CHIP:DMG: + [1683775112.601826][5932:5934] CHIP:DMG: StatusIB = + [1683775112.601828][5932:5934] CHIP:DMG: { + [1683775112.601832][5932:5934] CHIP:DMG: status = 0x00 (SUCCESS), + [1683775112.601834][5932:5934] CHIP:DMG: }, + [1683775112.601837][5932:5934] CHIP:DMG: + [1683775112.601839][5932:5934] CHIP:DMG: }, + [1683775112.601845][5932:5934] CHIP:DMG: + [1683775112.601847][5932:5934] CHIP:DMG: AttributeStatusIB = + [1683775112.601850][5932:5934] CHIP:DMG: { + [1683775112.601853][5932:5934] CHIP:DMG: AttributePathIB = + [1683775112.601856][5932:5934] CHIP:DMG: { + [1683775112.601859][5932:5934] CHIP:DMG: Endpoint = 0x0, + [1683775112.601861][5932:5934] CHIP:DMG: Cluster = 0x1f, + [1683775112.601864][5932:5934] CHIP:DMG: Attribute = 0x0000_0000, + [1683775112.601867][5932:5934] CHIP:DMG: ListIndex = Null, + [1683775112.601870][5932:5934] CHIP:DMG: } + [1683775112.601874][5932:5934] CHIP:DMG: + [1683775112.601877][5932:5934] CHIP:DMG: StatusIB = + [1683775112.601880][5932:5934] CHIP:DMG: { + [1683775112.601883][5932:5934] CHIP:DMG: status = 0x00 (SUCCESS), + [1683775112.601886][5932:5934] CHIP:DMG: }, + [1683775112.601888][5932:5934] CHIP:DMG: + [1683775112.601891][5932:5934] CHIP:DMG: }, + [1683775112.601895][5932:5934] CHIP:DMG: + [1683775112.601897][5932:5934] CHIP:DMG: ], + [1683775112.601903][5932:5934] CHIP:DMG: + [1683775112.601905][5932:5934] CHIP:DMG: InteractionModelRevision = 1 + [1683775112.601907][5932:5934] CHIP:DMG: } + [1683775112.601932][5932:5934] CHIP:DMG: WriteClient moving to [AwaitingDe] + + #3. TH2 sends a subscription request to subscribe to all attributes on all clusters on a specific Endpoint for which it does not have access. + AttributePath = [[ Endpoint = EndpointID ]]. + any subscribe-by-id 0xFFFFFFFF 0xFFFFFFFF 10 100 1 1 --commissioner-nodeid 4 + [1683775488.708071][5932:5934] CHIP:EM: Rxd Ack; Removing MessageCounter:62779651 from Retrans Table on exchange 50806i + [1683775488.708083][5932:5934] CHIP:DMG: StatusResponseMessage = + [1683775488.708086][5932:5934] CHIP:DMG: { + [1683775488.708089][5932:5934] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1683775488.708093][5932:5934] CHIP:DMG: InteractionModelRevision = 1 + [1683775488.708095][5932:5934] CHIP:DMG: } + [1683775488.708098][5932:5934] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1683775488.708117][5932:5934] CHIP:EM: <<< [E:50806i S:51174 M:62779652 (Ack:125024288)] (S) Msg TX to 2:0000000000000001 [C380] --- Type 0001:01 (IM:StatusResponse) + [1683775488.708121][5932:5934] CHIP:IN: (S) Sending msg 62779652 on secure session with LSID: 51174 + + With the ACL command in step-2, we are overwriting the default privilege that chip-tool has an admin. After this step-3 you need to send below mentioned command to Grant access to all clusters again. + accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233, 4], "targets":null}]' 1 0 disabled: true - label: @@ -195,8 +362,92 @@ tests: all endpoints on a Node for which it does not have access. AttributePath = [[ ]]." verification: | - Out of scope for V1.0 - https://github.com/CHIP-Specifications/chip-test-plans/issues/1984 + The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + #1:- Please run this test in chip tool interactive mode + + ./chip-tool interactive start + + + #2:- To Setup the TH2(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 and Here by sending below mentioned ACL command giving only access for specific Node + + accesscontrol write acl '[{ "fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null} , {"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[4], "targets": [{ "cluster":null, "endpoint":0, "deviceType":null }]}]' 1 0 + [1683776952.246779][6312:6314] CHIP:DMG: WriteClient moving to [ResponseRe] + [1683776952.246805][6312:6314] CHIP:DMG: WriteResponseMessage = + [1683776952.246814][6312:6314] CHIP:DMG: { + [1683776952.246820][6312:6314] CHIP:DMG: AttributeStatusIBs = + [1683776952.246830][6312:6314] CHIP:DMG: [ + [1683776952.246837][6312:6314] CHIP:DMG: AttributeStatusIB = + [1683776952.246845][6312:6314] CHIP:DMG: { + [1683776952.246851][6312:6314] CHIP:DMG: AttributePathIB = + [1683776952.246859][6312:6314] CHIP:DMG: { + [1683776952.246868][6312:6314] CHIP:DMG: Endpoint = 0x0, + [1683776952.246875][6312:6314] CHIP:DMG: Cluster = 0x1f, + [1683776952.246883][6312:6314] CHIP:DMG: Attribute = 0x0000_0000, + [1683776952.246890][6312:6314] CHIP:DMG: } + [1683776952.246900][6312:6314] CHIP:DMG: + [1683776952.246906][6312:6314] CHIP:DMG: StatusIB = + [1683776952.246914][6312:6314] CHIP:DMG: { + [1683776952.246922][6312:6314] CHIP:DMG: status = 0x00 (SUCCESS), + [1683776952.246929][6312:6314] CHIP:DMG: }, + [1683776952.246936][6312:6314] CHIP:DMG: + [1683776952.246942][6312:6314] CHIP:DMG: }, + [1683776952.246955][6312:6314] CHIP:DMG: + [1683776952.246961][6312:6314] CHIP:DMG: AttributeStatusIB = + [1683776952.246968][6312:6314] CHIP:DMG: { + [1683776952.246974][6312:6314] CHIP:DMG: AttributePathIB = + [1683776952.246982][6312:6314] CHIP:DMG: { + [1683776952.246989][6312:6314] CHIP:DMG: Endpoint = 0x0, + [1683776952.246996][6312:6314] CHIP:DMG: Cluster = 0x1f, + [1683776952.247004][6312:6314] CHIP:DMG: Attribute = 0x0000_0000, + [1683776952.247012][6312:6314] CHIP:DMG: ListIndex = Null, + [1683776952.247018][6312:6314] CHIP:DMG: } + [1683776952.247028][6312:6314] CHIP:DMG: + [1683776952.247035][6312:6314] CHIP:DMG: StatusIB = + [1683776952.247039][6312:6314] CHIP:DMG: { + [1683776952.247041][6312:6314] CHIP:DMG: status = 0x00 (SUCCESS), + [1683776952.247043][6312:6314] CHIP:DMG: }, + [1683776952.247045][6312:6314] CHIP:DMG: + [1683776952.247047][6312:6314] CHIP:DMG: }, + [1683776952.247050][6312:6314] CHIP:DMG: + [1683776952.247052][6312:6314] CHIP:DMG: AttributeStatusIB = + [1683776952.247054][6312:6314] CHIP:DMG: { + [1683776952.247056][6312:6314] CHIP:DMG: AttributePathIB = + [1683776952.247058][6312:6314] CHIP:DMG: { + [1683776952.247060][6312:6314] CHIP:DMG: Endpoint = 0x0, + [1683776952.247063][6312:6314] CHIP:DMG: Cluster = 0x1f, + [1683776952.247065][6312:6314] CHIP:DMG: Attribute = 0x0000_0000, + [1683776952.247067][6312:6314] CHIP:DMG: ListIndex = Null, + [1683776952.247069][6312:6314] CHIP:DMG: } + [1683776952.247072][6312:6314] CHIP:DMG: + [1683776952.247074][6312:6314] CHIP:DMG: StatusIB = + [1683776952.247076][6312:6314] CHIP:DMG: { + [1683776952.247078][6312:6314] CHIP:DMG: status = 0x00 (SUCCESS), + [1683776952.247080][6312:6314] CHIP:DMG: }, + [1683776952.247082][6312:6314] CHIP:DMG: + [1683776952.247084][6312:6314] CHIP:DMG: }, + [1683776952.247086][6312:6314] CHIP:DMG: + [1683776952.247088][6312:6314] CHIP:DMG: ], + [1683776952.247093][6312:6314] CHIP:DMG: + [1683776952.247095][6312:6314] CHIP:DMG: InteractionModelRevision = 1 + [1683776952.247096][6312:6314] CHIP:DMG: } + [1683776952.247119][6312:6314] CHIP:DMG: WriteClient moving to [AwaitingDe] + + TH2 sends a subscription request to subscribe to all attributes on all clusters on all endpoints on a Node for which it does not have access. + >>> any subscribe-by-id 0xFFFFFFFF 0xFFFFFFFF 10 100 1 1 --commissioner-nodeid 2 + [1683776997.979233][6312:6314] CHIP:EM: Found matching exchange: 25484i, Delegate: 0x7f86ec018080 + [1683776997.979243][6312:6314] CHIP:EM: Rxd Ack; Removing MessageCounter:58561824 from Retrans Table on exchange 25484i + [1683776997.979257][6312:6314] CHIP:DMG: StatusResponseMessage = + [1683776997.979261][6312:6314] CHIP:DMG: { + [1683776997.979264][6312:6314] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1683776997.979268][6312:6314] CHIP:DMG: InteractionModelRevision = 1 + [1683776997.979271][6312:6314] CHIP:DMG: } + [1683776997.979276][6312:6314] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1683776997.979302][6312:6314] CHIP:EM: <<< [E:25484i S:51642 M:58561825 (Ack:236305332)] (S) Msg TX to 2:0000000000000001 [6D8A] --- Type 0001:01 (IM:StatusResponse) + [1683776997.979310][6312:6314] CHIP:IN: (S) Sending msg 58561825 on secure session with LSID: 51642 + + + With the ACL command in step-2, we are overwriting the default privilege that chip-tool has an admin. After this step-3 you need to send below mentioned command to Grant access to all clusters again. + accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233, 4], "targets":null}]' 1 0 disabled: true - label: 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 b13db89f78eea1..52650b0682286e 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 @@ -461,7 +461,7 @@ tests: 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" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" disabled: true - label: @@ -475,7 +475,7 @@ tests: 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" + 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_4.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_4.yaml index 6815cbe96a56e7..ae85c350c1a701 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_4.yaml @@ -34,7 +34,6 @@ tests: Here the command to enter interactive mode:-- ./chip-tool interactive start - ./chip-tool interactive start onoff subscribe on-time 10 100 1 1 --auto-resubscribe true Verify on the TH(chip-tool) that the Report data messages are sent from the DUT(Reference app) for subscription request action to the TH(chip-tool) with the correct attribute values. 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 26cce888df7296..e4bed3f17fb3b7 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 @@ -467,7 +467,7 @@ tests: ./chip-tool any read-event-by-id 0x28 0 1 0 - verify DUT is responsds with UNSUPPORTED_ACCESS for the data sent in the above command + verify DUT is responds with UNSUPPORTED_ACCESS for the data sent in the above command [1653054249.514825][12265:12270] CHIP:DMG: ReportDataMessage = [1653054249.514833][12265:12270] CHIP:DMG: { @@ -511,7 +511,7 @@ tests: verification: | To Setup the TH such that there is no accessing fabric, 1st we need to send below mentioned ACL command - ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [1234], "targets": null}]" 1 0 + ./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(chip-tool) verify DUT sends Report Data Message with no entry for that event in EventReports list. 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 7f6d4da2fc2b4b..7a7ba1b7ca2db4 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 @@ -933,7 +933,7 @@ tests: To Setup the TH such that there is no accessing fabric, 1st we need to send below mentioned ACL command - accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [1234], "targets": null}]" 1 0 + accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [1234], "targets": null}]' 1 0 any subscribe-event-by-id 0xFFFFFFFF 0xFFFFFFFF 100 1000 1 0xFFFF diff --git a/src/app/tests/suites/certification/Test_TC_IDM_6_4.yaml b/src/app/tests/suites/certification/Test_TC_IDM_6_4.yaml index 56153d01e91cbb..a9a84dc0aff2c8 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_6_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_6_4.yaml @@ -135,7 +135,7 @@ tests: Please run this test in chip tool interactive mode ./chip-tool interactive start basicinformation subscribe-event-by-id 0x000 20 400 1 0 - Verify DUT is responsds with status response for the data sent in the above command + Verify DUT is responds with status response for the data sent in the above command On TH (On the reference app) 6 from Retrans Table on exchange 33690r [1657455691.695355][11525:11525] CHIP:EM: Removed CHIP MessageCounter:11056066 from RetransTable on exchange 33690r diff --git a/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml index f2b312c277979b..5a94e9cdba86e5 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml @@ -80,7 +80,7 @@ tests: on the first reference device send 3 Subscribe Request Messages to DUT - basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 + basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 [1660652952.537644][58131:58136] CHIP:EM: Removed CHIP MessageCounter:11153878 from RetransTable on exchange 57366i [1660652952.537721][58131:58136] CHIP:DMG: ReportDataMessage = [1660652952.537759][58131:58136] CHIP:DMG: { @@ -180,6 +180,7 @@ tests: on the 2nd reference device send 3 Subscribe Request Messages to DUT + basicinformation subscribe node-label 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 [1660653125.592268][58143:58148] CHIP:DMG: ReportDataMessage = [1660653125.592310][58143:58148] CHIP:DMG: { @@ -212,9 +213,7 @@ tests: [1660653125.593776][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff6800df30]: Moving to [AwaitingSu] - - - basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 + basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 [1660653198.460290][58143:58148] CHIP:DMG: ReportDataMessage = [1660653198.460359][58143:58148] CHIP:DMG: { [1660653198.460423][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, @@ -316,7 +315,7 @@ tests: [1660653438.742171][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740129e0]: Moving to [AwaitingSu] - basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 + basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 [1660653500.501007][58149:58154] CHIP:DMG: { [1660653500.501077][58149:58154] CHIP:DMG: SubscriptionId = 0xb129bd8c, [1660653500.501126][58149:58154] CHIP:DMG: AttributeReportIBs = @@ -347,8 +346,7 @@ tests: [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 + basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 [1660653545.650817][58149:58154] CHIP:DMG: ReportDataMessage = [1660653545.650842][58149:58154] CHIP:DMG: { [1660653545.650864][58149:58154] CHIP:DMG: SubscriptionId = 0x5310d542, @@ -382,6 +380,7 @@ tests: on the 4th reference device send 3 Subscribe Request Messages to DUT + basicinformation subscribe node-label 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 @@ -389,7 +388,8 @@ tests: [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 + + basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 [1660653500.502801][58149:58154] CHIP:TOO: Location: XX @@ -397,7 +397,8 @@ tests: - basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 + + basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 : } [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE @@ -406,6 +407,7 @@ tests: on the 5th reference device send 3 Subscribe Request Messages to DUT + basicinformation subscribe node-label 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 @@ -413,16 +415,14 @@ tests: [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - - basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 + basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 [1660653500.502801][58149:58154] CHIP:TOO: Location: XX [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - - basicinformation subscribe local-config-disabled 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 + basicinformation subscribe local-config-disabled 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 : } [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE @@ -495,6 +495,7 @@ tests: [1660653646.568191][58131:58136] CHIP:DMG: Refresh LivenessCheckTime for 1025000 milliseconds with SubscriptionId = 0xea4facb0 Peer = 01:0000000000000001 + basicinformation write local-config-disabled 1 1 0 ReportDataMessage = [1660653666.029792][58131:58136] CHIP:DMG: { @@ -776,7 +777,8 @@ tests: and verify all the subscription requests are succes. and in The subscription request from RD1 should contain 4 paths, Verify that the subscriptions from RD2, RD3, RD4 and RD5 are not affected. on the first reference device(RD1) send 3 Subscribe Request Messages to DUT. - basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 + + basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 [1660652952.537644][58131:58136] CHIP:EM: Removed CHIP MessageCounter:11153878 from RetransTable on exchange 57366i [1660652952.537721][58131:58136] CHIP:DMG: ReportDataMessage = [1660652952.537759][58131:58136] CHIP:DMG: { @@ -809,7 +811,8 @@ tests: [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - basicinformation subscribe location 100 1000 1 0 --keepSubscriptions 1 + + basicinformation subscribe location 100 1000 1 0 --keepSubscriptions 1 [1660653005.341371][58131:58136] CHIP:DMG: ReportDataMessage = [1660653005.341441][58131:58136] CHIP:DMG: { [1660653005.341503][58131:58136] CHIP:DMG: SubscriptionId = 0xea4facb0, @@ -842,7 +845,8 @@ tests: - basicinformation subscribe local-config-disabled 100 1000 1 0 --keepSubscriptions 1 + + basicinformation subscribe local-config-disabled 100 1000 1 0 --keepSubscriptions 1 [1660653043.575397][58131:58136] CHIP:DMG: ReportDataMessage = [1660653043.575423][58131:58136] CHIP:DMG: { [1660653043.575445][58131:58136] CHIP:DMG: SubscriptionId = 0x1ff9dbc5, @@ -876,6 +880,7 @@ tests: on the 2nd reference device(RD2) send 3 Subscribe Request Messages to DUT. + basicinformation subscribe node-label 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 [1660653125.592268][58143:58148] CHIP:DMG: ReportDataMessage = [1660653125.592310][58143:58148] CHIP:DMG: { @@ -910,7 +915,8 @@ tests: - basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 + + basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 [1660653198.460290][58143:58148] CHIP:DMG: ReportDataMessage = [1660653198.460359][58143:58148] CHIP:DMG: { [1660653198.460423][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, @@ -943,7 +949,8 @@ tests: - basicinformation subscribe local-config-disabled 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 + + basicinformation subscribe local-config-disabled 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 [1660653260.633215][58143:58148] CHIP:EM: Removed CHIP MessageCounter:178377836 from RetransTable on exchange 25360i [1660653260.633327][58143:58148] CHIP:DMG: ReportDataMessage = [1660653260.633387][58143:58148] CHIP:DMG: { @@ -979,6 +986,7 @@ tests: on the 3rd reference device(RD3) send 3 Subscribe Request Messages to DUT. + basicinformation subscribe node-label 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 [1660653438.741061][58149:58154] CHIP:EM: Removed CHIP MessageCounter:141916359 from RetransTable on exchange 34400i [1660653438.741116][58149:58154] CHIP:DMG: ReportDataMessage = @@ -1012,14 +1020,16 @@ tests: [1660653438.742171][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740129e0]: Moving to [AwaitingSu] - basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 + + basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 [1660653500.502801][58149:58154] CHIP:TOO: Location: XX [1660653500.502870][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff7400adb0]: Moving to [AwaitingSu] - basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 + + basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE @@ -1028,6 +1038,7 @@ tests: on the 4th reference device(RD4) send 3 Subscribe Request Messages to DUT. + basicinformation subscribe node-label 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 @@ -1035,7 +1046,8 @@ tests: [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 + + basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 [1660653500.502801][58149:58154] CHIP:TOO: Location: XX @@ -1043,7 +1055,8 @@ tests: - basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 + + basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE [1660653545.651669][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff74009a20]: Moving to [AwaitingSu] @@ -1051,6 +1064,7 @@ tests: on the 5th reference device(RD5) send 3 Subscribe Request Messages to DUT. + basicinformation subscribe node-label 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 @@ -1059,7 +1073,8 @@ tests: - basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 + + basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 [1660653500.502801][58149:58154] CHIP:TOO: Location: XX @@ -1067,7 +1082,8 @@ tests: - basicinformation subscribe local-config-disabled 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 + + basicinformation subscribe local-config-disabled 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 : } [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE @@ -1076,6 +1092,7 @@ tests: Once all 15 subscriptions are active send one more subscriptiopn command in RD1 and Verify that the subscriptions from RD2, RD3, RD4 and RD5 are not affected. + basicinformation subscribe product-id 100 1000 1 0 --keepSubscriptions 1 [1660654945.477837][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0004 DataVersion: 3782190841 [1660654945.477932][58149:58154] CHIP:TOO: ProductID: 32769 @@ -1101,6 +1118,7 @@ tests: RD5 are not affected. on the 2nd reference device(RD2) send 3 Subscribe Request Messages to DUT. + basicinformation subscribe node-label 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 [1660653125.592268][58143:58148] CHIP:DMG: ReportDataMessage = [1660653125.592310][58143:58148] CHIP:DMG: { @@ -1133,7 +1151,7 @@ tests: [1660653125.593776][58143:58148] CHIP:DMG: MoveToState ReadClient[0xffff6800df30]: Moving to [AwaitingSu] - basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 + basicinformation subscribe location 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 [1660653198.460290][58143:58148] CHIP:DMG: ReportDataMessage = [1660653198.460359][58143:58148] CHIP:DMG: { [1660653198.460423][58143:58148] CHIP:DMG: SubscriptionId = 0xfed77bda, @@ -1166,7 +1184,7 @@ tests: - basicinformation subscribe local-config-disabled 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 + basicinformation subscribe local-config-disabled 100 1000 2 0 --commissioner-name beta --keepSubscriptions 1 [1660653260.633215][58143:58148] CHIP:EM: Removed CHIP MessageCounter:178377836 from RetransTable on exchange 25360i [1660653260.633327][58143:58148] CHIP:DMG: ReportDataMessage = [1660653260.633387][58143:58148] CHIP:DMG: { @@ -1202,6 +1220,7 @@ tests: on the 3nd reference device(RD3) send 3 Subscribe Request Messages to DUT. + basicinformation subscribe node-label 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 [1660653438.741061][58149:58154] CHIP:EM: Removed CHIP MessageCounter:141916359 from RetransTable on exchange 34400i [1660653438.741116][58149:58154] CHIP:DMG: ReportDataMessage = @@ -1235,7 +1254,8 @@ tests: [1660653438.742171][58149:58154] CHIP:DMG: MoveToState ReadClient[0xffff740129e0]: Moving to [AwaitingSu] - basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 + + basicinformation subscribe location 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 [1660653500.501007][58149:58154] CHIP:DMG: { [1660653500.501077][58149:58154] CHIP:DMG: SubscriptionId = 0xb129bd8c, [1660653500.501126][58149:58154] CHIP:DMG: AttributeReportIBs = @@ -1267,7 +1287,8 @@ tests: - basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 + + basicinformation subscribe local-config-disabled 100 1000 3 0 --commissioner-name 4 --keepSubscriptions 1 [1660653545.650817][58149:58154] CHIP:DMG: ReportDataMessage = [1660653545.650842][58149:58154] CHIP:DMG: { [1660653545.650864][58149:58154] CHIP:DMG: SubscriptionId = 0x5310d542, @@ -1283,6 +1304,7 @@ tests: on the 4nd reference device(RD4) send 3 Subscribe Request Messages to DUT. + basicinformation subscribe node-label 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 @@ -1290,7 +1312,7 @@ tests: [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] - basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 + basicinformation subscribe location 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 [1660653500.502801][58149:58154] CHIP:TOO: Location: XX @@ -1298,7 +1320,7 @@ tests: - basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 + basicinformation subscribe local-config-disabled 100 1000 4 0 --commissioner-name 5 --keepSubscriptions 1 : } [1660653545.651601][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3782190838 [1660653545.651636][58149:58154] CHIP:TOO: LocalConfigDisabled: FALSE @@ -1307,6 +1329,7 @@ tests: on the 5th reference device(RD5) send 3 Subscribe Request Messages to DUT. + basicinformation subscribe node-label 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 @@ -1315,7 +1338,7 @@ tests: - basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 + basicinformation subscribe location 100 1000 5 0 --commissioner-name 6 --keepSubscriptions 1 [1660653500.502738][58149:58154] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 3782190838 [1660653500.502801][58149:58154] CHIP:TOO: Location: XX @@ -1331,7 +1354,8 @@ tests: on the 1st reference device(RD1) send 6 Subscribe Request Messages to DUT, and Verify that the Subscriptions from RD2, RD3, RD4, RD5 are not affected. - basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 + + basicinformation subscribe node-label 100 1000 1 0 --keepSubscriptions 1 [1660652952.539010][58131:58136] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3782190838 [1660652952.539073][58131:58136] CHIP:TOO: NodeLabel: [1660652952.539140][58131:58136] CHIP:DMG: MoveToState ReadClient[0xffffa0004bc0]: Moving to [AwaitingSu] @@ -1381,5 +1405,289 @@ tests: Subscription Requests are activated, send a Subscribe request messages having 3 different paths from RD1A to the DUT." verification: | - Mark this as not testable /NA. Out of Scope for V1.0 + After provisioning again the values are been set to default values such as node label= " ". so in VS mentioned as node-label="", location=XX and local-config-disabled=FALSE but if your going to verify 3 steps contentiously you will get the attribute value as node-label="newlabel", location=in and local-config-disabled=TRUE. + + + Please run this test in chip tool interactive mode ./chip-tool interactive start + + Example commands given below are using 5 reference devices (User can use 5 reference devices and send the below command in from each reference device) + + Send 3 Subscriptionrequest message from each Reference Device(RD1, RD2, RD3, RD4, RD5) to DUT + and Verify that the subscription request messages from RD1, RD2, RD3, RD4 and RD5 succeed, Once all the Subscription Requests are activated, send a Subscribe request messages having 3 different paths from RD1A to the DUT, Verify that the Subscription from RD1A gets INVALID_ACTION and the previous subscriptions from RD2, RD3, RD4 and RD5 are not affected. + + + #1. on the 1st reference device(RD1) send 3 Subscribe Request Messages to DUT. + basicinformation subscribe node-label 10 100 1 0 --keepSubscriptions 1 + [1683023740.651692][20746:20748] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 + [1683023740.651797][20746:20748] CHIP:TOO: NodeLabel: + [1683023740.651955][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa00113f0]: Moving to [AwaitingSu] + + [1683023740.730917][20746:20748] CHIP:DMG: SubscribeResponse is received + [1683023740.730997][20746:20748] CHIP:DMG: SubscribeResponseMessage = + [1683023740.731053][20746:20748] CHIP:DMG: { + [1683023740.731108][20746:20748] CHIP:DMG: SubscriptionId = 0x17668ae8, + [1683023740.731168][20746:20748] CHIP:DMG: MaxInterval = 0x64, + [1683023740.731228][20746:20748] CHIP:DMG: InteractionModelRevision = 1 + [1683023740.731336][20746:20748] CHIP:DMG: } + [1683023740.731398][20746:20748] CHIP:DMG: Subscription established with SubscriptionID = 0x17668ae8 MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 + [1683023740.731462][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa00113f0]: Moving to [Subscripti] + + basicinformation subscribe location 10 100 1 0 --keepSubscriptions 1 + [1683023745.401394][20746:20748] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 + [1683023745.401451][20746:20748] CHIP:TOO: Location: XX + [1683023745.401510][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa0012410]: Moving to [AwaitingSu] + + [1683023745.406163][20746:20748] CHIP:DMG: SubscribeResponse is received + [1683023745.406218][20746:20748] CHIP:DMG: SubscribeResponseMessage = + [1683023745.406255][20746:20748] CHIP:DMG: { + [1683023745.406291][20746:20748] CHIP:DMG: SubscriptionId = 0xf8319a9f, + [1683023745.406332][20746:20748] CHIP:DMG: MaxInterval = 0x64, + [1683023745.406371][20746:20748] CHIP:DMG: InteractionModelRevision = 1 + [1683023745.406408][20746:20748] CHIP:DMG: } + [1683023745.406448][20746:20748] CHIP:DMG: Subscription established with SubscriptionID = 0xf8319a9f MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 + + basicinformation subscribe local-config-disabled 10 100 1 0 --keepSubscriptions 1 + [1683023751.447899][20746:20748] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 + [1683023751.447962][20746:20748] CHIP:TOO: LocalConfigDisabled: FALSE + [1683023751.448022][20746:20748] CHIP:DMG: MoveToState ReadClient[0xffffa000ec00]: Moving to [AwaitingSu] + + [1683023751.775533][20746:20748] CHIP:DMG: SubscribeResponse is received + [1683023751.775617][20746:20748] CHIP:DMG: SubscribeResponseMessage = + [1683023751.775673][20746:20748] CHIP:DMG: { + [1683023751.775728][20746:20748] CHIP:DMG: SubscriptionId = 0xa2ce2aa3, + [1683023751.775789][20746:20748] CHIP:DMG: MaxInterval = 0x64, + [1683023751.775848][20746:20748] CHIP:DMG: InteractionModelRevision = 1 + [1683023751.775903][20746:20748] CHIP:DMG: } + [1683023751.775965][20746:20748] CHIP:DMG: Subscription established with SubscriptionID = 0xa2ce2aa3 MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 + + + #2. on the 2nd reference device(RD2) send 3 Subscribe Request Messages to DUT. + + basicinformation subscribe node-label 10 100 2 0 --commissioner-name beta --keepSubscriptions 1 + [1683019368.769185][16375:16377] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 416649077 + [1683019368.769287][16375:16377] CHIP:TOO: NodeLabel: + [1683019368.769397][16375:16377] CHIP:DMG: MoveToState ReadClient[0xffff78015930]: Moving to [AwaitingSu] + + [1683019368.774602][16375:16377] CHIP:EM: Found matching exchange: 19856i, Delegate: 0xffff78015940 + + [1683019368.774748][16375:16377] CHIP:DMG: SubscribeResponse is received + [1683019368.774826][16375:16377] CHIP:DMG: SubscribeResponseMessage = + [1683019368.774883][16375:16377] CHIP:DMG: { + [1683019368.774962][16375:16377] CHIP:DMG: SubscriptionId = 0xb7a1a85e, + [1683019368.775024][16375:16377] CHIP:DMG: MaxInterval = 0x3e8, + [1683019368.775084][16375:16377] CHIP:DMG: InteractionModelRevision = 1 + [1683019368.775163][16375:16377] CHIP:DMG: } + [1683019368.775223][16375:16377] CHIP:DMG: Subscription established with SubscriptionID = 0xb7a1a85e MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000001 + + basicinformation subscribe location 10 100 2 0 --commissioner-name beta --keepSubscriptions 1 + [1683023771.051381][16546:16548] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 + [1683023771.051459][16546:16548] CHIP:TOO: Location: XX + [1683023771.051545][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff78015c80]: Moving to [AwaitingSu] + + [1683023771.083290][16546:16548] CHIP:DMG: SubscribeResponse is received + [1683023771.083352][16546:16548] CHIP:DMG: SubscribeResponseMessage = + [1683023771.083394][16546:16548] CHIP:DMG: { + [1683023771.083436][16546:16548] CHIP:DMG: SubscriptionId = 0xa5ff48a4, + [1683023771.083481][16546:16548] CHIP:DMG: MaxInterval = 0x64, + [1683023771.083526][16546:16548] CHIP:DMG: InteractionModelRevision = 1 + [1683023771.083568][16546:16548] CHIP:DMG: } + [1683023771.083613][16546:16548] CHIP:DMG: Subscription established with SubscriptionID = 0xa5ff48a4 MinInterval = 10s MaxInterval = 100s Peer = 04:0000000000000002 + [1683023771.083661][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff78015c80]: Moving to [Subscripti] + + + basicinformation subscribe local-config-disabled 10 100 2 0 --commissioner-name beta --keepSubscriptions 1 + [1683023801.394622][16546:16548] CHIP:DMG: } + [1683023801.394810][16546:16548] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 + [1683023801.394881][16546:16548] CHIP:TOO: LocalConfigDisabled: FALSE + [1683023801.394955][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff7800ab00]: Moving to [AwaitingSu] + + [1683023801.610439][16546:16548] CHIP:DMG: SubscribeResponse is received + [1683023801.610523][16546:16548] CHIP:DMG: SubscribeResponseMessage = + [1683023801.610580][16546:16548] CHIP:DMG: { + [1683023801.610635][16546:16548] CHIP:DMG: SubscriptionId = 0xbbbba6b2, + [1683023801.610695][16546:16548] CHIP:DMG: MaxInterval = 0x64, + [1683023801.610754][16546:16548] CHIP:DMG: InteractionModelRevision = 1 + [1683023801.610809][16546:16548] CHIP:DMG: } + [1683023801.610877][16546:16548] CHIP:DMG: Subscription established with SubscriptionID = 0xbbbba6b2 MinInterval = 10s MaxInterval = 100s Peer = 04:0000000000000002 + [1683023801.610941][16546:16548] CHIP:DMG: MoveToState ReadClient[0xffff7800ab00]: Moving to [Subscripti] + + + + #3. on the 3rd reference device(RD3) send 3 Subscribe Request Messages to DUT. + subscribe node-label 10 100 3 0 --commissioner-name 4 --keepSubscriptions 1 + + basicinformation [1683023811.287511][16549:16551] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 + [1683023811.287610][16549:16551] CHIP:TOO: NodeLabel: + [1683023811.287717][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c00dbe0]: Moving to [AwaitingSu] + + [1683023811.322041][16549:16551] CHIP:DMG: SubscribeResponse is received + [1683023811.322102][16549:16551] CHIP:DMG: SubscribeResponseMessage = + [1683023811.322145][16549:16551] CHIP:DMG: { + [1683023811.322187][16549:16551] CHIP:DMG: SubscriptionId = 0x72bdea7c, + [1683023811.322242][16549:16551] CHIP:DMG: MaxInterval = 0x64, + [1683023811.322287][16549:16551] CHIP:DMG: InteractionModelRevision = 1 + [1683023811.322328][16549:16551] CHIP:DMG: } + [1683023811.322379][16549:16551] CHIP:DMG: Subscription established with SubscriptionID = 0x72bdea7c MinInterval = 10s MaxInterval = 100s Peer = 05:0000000000000003 + [1683023811.322428][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c00dbe0]: Moving to [Subscripti] + + basicinformation subscribe location 10 100 3 0 --commissioner-name 4 --keepSubscriptions 1 + [1683023815.007685][16549:16551] CHIP:DMG: } + [1683023815.007910][16549:16551] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 + [1683023815.007988][16549:16551] CHIP:TOO: Location: XX + [1683023815.008073][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c009820]: Moving to [AwaitingSu] + + [1683023815.113033][16549:16551] CHIP:DMG: SubscribeResponse is received + [1683023815.113104][16549:16551] CHIP:DMG: SubscribeResponseMessage = + [1683023815.113154][16549:16551] CHIP:DMG: { + [1683023815.113201][16549:16551] CHIP:DMG: SubscriptionId = 0xab3d91df, + [1683023815.113263][16549:16551] CHIP:DMG: MaxInterval = 0x64, + [1683023815.113315][16549:16551] CHIP:DMG: InteractionModelRevision = 1 + [1683023815.113363][16549:16551] CHIP:DMG: } + [1683023815.113414][16549:16551] CHIP:DMG: Subscription established with SubscriptionID = 0xab3d91df + + basicinformation subscribe local-config-disabled 10 100 3 0 --commissioner-name 4 --keepSubscriptions 1 + [1683023821.155994][16549:16551] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 + [1683023821.156071][16549:16551] CHIP:TOO: LocalConfigDisabled: FALSE + [1683023821.156156][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c0065e0]: Moving to [AwaitingSu] + + [1683023821.513855][16549:16551] CHIP:DMG: SubscribeResponse is received + [1683023821.513938][16549:16551] CHIP:DMG: SubscribeResponseMessage = + [1683023821.513997][16549:16551] CHIP:DMG: { + [1683023821.514051][16549:16551] CHIP:DMG: SubscriptionId = 0xed6b320a, + [1683023821.514112][16549:16551] CHIP:DMG: MaxInterval = 0x64, + [1683023821.514171][16549:16551] CHIP:DMG: InteractionModelRevision = 1 + [1683023821.514226][16549:16551] CHIP:DMG: } + [1683023821.514286][16549:16551] CHIP:DMG: Subscription established with SubscriptionID = 0xed6b320a MinInterval = 10s MaxInterval = 100s Peer = 05:0000000000000003 + [1683023821.514350][16549:16551] CHIP:DMG: MoveToState ReadClient[0xffff8c0065e0]: Moving to [Subscripti] + + + + + #4. on the 4th reference device(RD4) send 3 Subscribe Request Messages to DUT. + basicinformation subscribe node-label 10 100 4 0 --commissioner-name 5 --keepSubscriptions 1 + [1683023829.174556][16552:16554] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 + [1683023829.174623][16552:16554] CHIP:TOO: NodeLabel: + [1683023829.174695][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00ea60]: Moving to [AwaitingSu] + + [1683023829.240342][16552:16554] CHIP:DMG: SubscribeResponse is received + [1683023829.240425][16552:16554] CHIP:DMG: SubscribeResponseMessage = + [1683023829.240482][16552:16554] CHIP:DMG: { + [1683023829.240536][16552:16554] CHIP:DMG: SubscriptionId = 0x315f789, + [1683023829.240602][16552:16554] CHIP:DMG: MaxInterval = 0x64, + [1683023829.240699][16552:16554] CHIP:DMG: InteractionModelRevision = 1 + [1683023829.240759][16552:16554] CHIP:DMG: } + [1683023829.240821][16552:16554] CHIP:DMG: Subscription established with SubscriptionID = 0x0315f789 MinInterval = 10s MaxInterval = 100s Peer = 06:0000000000000004 + [1683023829.240884][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00ea60]: Moving to [Subscripti] + + basicinformation subscribe location 10 100 4 0 --commissioner-name 5 --keepSubscriptions 1 + [1683023833.561934][16552:16554] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 + [1683023833.562012][16552:16554] CHIP:TOO: Location: XX + [1683023833.562099][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00f7a0]: Moving to [AwaitingSu] + + [1683023833.594233][16552:16554] CHIP:DMG: SubscribeResponse is received + [1683023833.594312][16552:16554] CHIP:DMG: SubscribeResponseMessage = + [1683023833.594368][16552:16554] CHIP:DMG: { + [1683023833.594423][16552:16554] CHIP:DMG: SubscriptionId = 0x309d8fe3, + [1683023833.594483][16552:16554] CHIP:DMG: MaxInterval = 0x64, + [1683023833.594542][16552:16554] CHIP:DMG: InteractionModelRevision = 1 + [1683023833.594598][16552:16554] CHIP:DMG: } + [1683023833.594657][16552:16554] CHIP:DMG: Subscription established with SubscriptionID = 0x309d8fe3 MinInterval = 10s MaxInterval = 100s Peer = 06:0000000000000004 + [1683023833.594721][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00f7a0]: Moving to [Subscripti] + + basicinformation subscribe local-config-disabled 10 100 4 0 --commissioner-name 5 --keepSubscriptions 1 + [1683023839.311550][16552:16554] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 + [1683023839.311601][16552:16554] CHIP:TOO: LocalConfigDisabled: FALSE + [1683023839.311658][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00d980]: Moving to [AwaitingSu] + + [1683023839.630453][16552:16554] CHIP:DMG: SubscribeResponse is received + [1683023839.630535][16552:16554] CHIP:DMG: SubscribeResponseMessage = + [1683023839.630591][16552:16554] CHIP:DMG: { + [1683023839.630646][16552:16554] CHIP:DMG: SubscriptionId = 0x4e972da5, + [1683023839.630706][16552:16554] CHIP:DMG: MaxInterval = 0x64, + [1683023839.630765][16552:16554] CHIP:DMG: InteractionModelRevision = 1 + [1683023839.630820][16552:16554] CHIP:DMG: } + [1683023839.630880][16552:16554] CHIP:DMG: Subscription established with SubscriptionID = 0x4e972da5 MinInterval = 10s MaxInterval = 100s Peer = 06:0000000000000004 + [1683023839.630943][16552:16554] CHIP:DMG: MoveToState ReadClient[0xffff7c00d980]: Moving to [Subscripti] + + + + #5. on the 5th reference device(RD5) send 3 Subscribe Request Messages to DUT. + + basicinformation subscribe node-label 10 100 5 0 --commissioner-name 6 --keepSubscriptions 1 + [1683023847.548455][16555:16557] CHIP:DMG: } + [1683023847.548609][16555:16557] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 2633778425 + [1683023847.548680][16555:16557] CHIP:TOO: NodeLabel: + [1683023847.548807][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa0018c20]: Moving to [AwaitingSu] + + [1683023847.560487][16555:16557] CHIP:DMG: SubscribeResponse is received + [1683023847.560529][16555:16557] CHIP:DMG: SubscribeResponseMessage = + [1683023847.560556][16555:16557] CHIP:DMG: { + [1683023847.560582][16555:16557] CHIP:DMG: SubscriptionId = 0x734b2439, + [1683023847.560612][16555:16557] CHIP:DMG: MaxInterval = 0x64, + [1683023847.560640][16555:16557] CHIP:DMG: InteractionModelRevision = 1 + [1683023847.560727][16555:16557] CHIP:DMG: } + + + basicinformation subscribe location 10 100 5 0 --commissioner-name 6 --keepSubscriptions 1 + [1683023853.665414][16555:16557] CHIP:DMG: } + [1683023853.665640][16555:16557] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 2633778425 + [1683023853.665716][16555:16557] CHIP:TOO: Location: XX + [1683023853.665801][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa000dbe0]: Moving to [AwaitingSu] + + [1683023854.271536][16555:16557] CHIP:DMG: SubscribeResponse is received + [1683023854.271621][16555:16557] CHIP:DMG: SubscribeResponseMessage = + [1683023854.271677][16555:16557] CHIP:DMG: { + [1683023854.271733][16555:16557] CHIP:DMG: SubscriptionId = 0x9538a40, + [1683023854.271795][16555:16557] CHIP:DMG: MaxInterval = 0x64, + [1683023854.271854][16555:16557] CHIP:DMG: InteractionModelRevision = 1 + [1683023854.271909][16555:16557] CHIP:DMG: } + [1683023854.271970][16555:16557] CHIP:DMG: Subscription established with SubscriptionID = 0x09538a40 MinInterval = 10s MaxInterval = 100s Peer = 07:0000000000000005 + [1683023854.272035][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa000dbe0]: Moving to [Subscripti] + + + basicinformation subscribe local-config-disabled 10 100 5 0 --commissioner-name 6 --keepSubscriptions 1 + [1683023862.573994][16555:16557] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 2633778425 + [1683023862.574047][16555:16557] CHIP:TOO: LocalConfigDisabled: FALSE + [1683023862.574104][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa0014cc0]: Moving to [AwaitingSu] + + [1683023862.758142][16555:16557] CHIP:DMG: SubscribeResponse is received + [1683023862.758224][16555:16557] CHIP:DMG: SubscribeResponseMessage = + [1683023862.758280][16555:16557] CHIP:DMG: { + [1683023862.758334][16555:16557] CHIP:DMG: SubscriptionId = 0xe04a3425, + [1683023862.758395][16555:16557] CHIP:DMG: MaxInterval = 0x64, + [1683023862.758453][16555:16557] CHIP:DMG: InteractionModelRevision = 1 + [1683023862.758508][16555:16557] CHIP:DMG: } + [1683023862.758568][16555:16557] CHIP:DMG: Subscription established with SubscriptionID = 0xe04a3425 MinInterval = 10s MaxInterval = 100s Peer = 07:0000000000000005 + [1683023862.758631][16555:16557] CHIP:DMG: MoveToState ReadClient[0xffffa0014cc0]: Moving to [Subscripti] + + #6. on the 6th reference device(RD1A), send a Subscribe request messages having 3 different paths from RD1A to the DUT and verify that the Subscription from RD1A gets INVALID_ACTION and the previous subscriptions from RD2, RD3, RD4 and RD5 are not affected. + basicinformation subscribe product-id 10 100 1 0 --keepSubscriptions 1 --commissioner-nodeid 0x2 + [1683024005.367756][20746:20748] CHIP:DMG: StatusResponseMessage = + [1683024005.367820][20746:20748] CHIP:DMG: { + [1683024005.367876][20746:20748] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1683024005.367936][20746:20748] CHIP:DMG: InteractionModelRevision = 1 + [1683024005.367992][20746:20748] CHIP:DMG: } + [1683024005.368048][20746:20748] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1683024005.368228][20746:20748] CHIP:EM: <<< [E:64674i S:8831 M:127649869 (Ack:60224523)] (S) Msg TX to 2:0000000000000001 [A9F8] --- Type 0001:01 (IM:StatusResponse) + [1683024005.368310][20746:20748] CHIP:IN: (S) Sending msg 127649869 on secure session with LSID: 8831 + + basicinformation subscribe software-version 10 100 1 0 --keepSubscriptions 1 --commissioner-nodeid 0x2 + [1683024012.704591][20746:20748] CHIP:EM: Rxd Ack; Removing MessageCounter:127649870 from Retrans Table on exchange 64675i + [1683024012.704702][20746:20748] CHIP:DMG: StatusResponseMessage = + [1683024012.704765][20746:20748] CHIP:DMG: { + [1683024012.704821][20746:20748] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1683024012.704882][20746:20748] CHIP:DMG: InteractionModelRevision = 1 + [1683024012.704937][20746:20748] CHIP:DMG: } + [1683024012.704992][20746:20748] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1683024012.705166][20746:20748] CHIP:EM: <<< [E:64675i S:8831 M:127649871 (Ack:60224525)] (S) Msg TX to 2:0000000000000001 [A9F8] --- Type 0001:01 (IM:StatusResponse) + [1683024012.705250][20746:20748] CHIP:IN: (S) Sending msg 127649871 on secure session with LSID: 8831 + + basicinformation subscribe hardware-version 10 100 1 0 --keepSubscriptions 1 --commissioner-nodeid 0x2 + [1683024021.531533][20746:20748] CHIP:DMG: StatusResponseMessage = + [1683024021.531597][20746:20748] CHIP:DMG: { + [1683024021.531654][20746:20748] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1683024021.531715][20746:20748] CHIP:DMG: InteractionModelRevision = 1 + [1683024021.531771][20746:20748] CHIP:DMG: } + [1683024021.531827][20746:20748] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1683024021.532007][20746:20748] CHIP:EM: <<< [E:64676i S:8831 M:127649873 (Ack:60224527)] (S) Msg TX to 2:0000000000000001 [A9F8] --- Type 0001:01 (IM:StatusResponse) disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_8_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_8_1.yaml index 8842bad1add29f..7ac77d99517260 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_8_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_8_1.yaml @@ -369,7 +369,7 @@ tests: DUT implementation required to verify the list of structs which contain some fabric-sensitive data - If the Vendor DUT doesn"t implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: @@ -433,7 +433,7 @@ tests: #3: From RC1 send a Write Request message to the DUT to write to an entry in the fabric scoped list associated with its own fabric. - accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets":[{ "cluster": 31, "endpoint": 0, "deviceType": null }]}]" 1 0 + accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets":[{ "cluster": 31, "endpoint": 0, "deviceType": null }]}]' 1 0 ON RC1 Verify that the DUT sends a changed report data [1660742282.279163][9069:9074] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 [1660742282.279187][9069:9074] CHIP:TOO: Event number: 3 diff --git a/src/app/tests/suites/certification/Test_TC_ILL_3_1.yaml b/src/app/tests/suites/certification/Test_TC_ILL_3_1.yaml index c112cf0171b6ca..f72420c10c2b69 100644 --- a/src/app/tests/suites/certification/Test_TC_ILL_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ILL_3_1.yaml @@ -36,6 +36,7 @@ tests: - label: "DUT reads all supported mandatory attributes from TH one at a time in a manufacturer specific order" + PICS: ILL.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -112,6 +113,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: ILL.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -162,6 +164,7 @@ tests: - label: "DUT writes a suitable value to all supported mandatory attributes on the TH one at a time in a manufacturer specific order" + PICS: ILL.C.AM-WRITE verification: | No writable attrbute for this cluster disabled: true @@ -169,6 +172,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: ILL.C.AO-WRITE verification: | No writable attrbute for this cluster disabled: true @@ -184,6 +188,7 @@ tests: ./chip-tool illuminancemeasurement read attribute-list 1 1 Verify DUT receives AttributeList response on the TH(all-clusters-minimal-app) Log: + Received Read request [1663070306.262953][4422:4422] CHIP:DMG: ReadRequestMessage = [1663070281.411639][4422:4422] CHIP:DMG: { @@ -211,6 +216,7 @@ tests: ./chip-tool illuminancemeasurement read feature-map 1 1 Verify DUT receives FeatureMap attribute response on the TH(all-clusters-minimal-app) Log: + Received Read request [1663070306.262953][4422:4422] CHIP:DMG: ReadRequestMessage = [1663070306.262953][4422:4422] CHIP:DMG: ReadRequestMessage = @@ -238,7 +244,8 @@ tests: - sudo ./chip-tool illuminancemeasurement read min-measured-value 1 1 + ./chip-tool illuminancemeasurement read min-measured-value 1 1 + Verify DUT receives min-measured-value attribute response on the TH(all-clusters-minimal-app) Log: [1658142106.966504][13946:13946] CHIP:IM: Received Read request @@ -262,8 +269,8 @@ tests: [1658142106.967676][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + ./chip-tool illuminancemeasurement read max-measured-value 1 1 - sudo ./chip-tool illuminancemeasurement read max-measured-value 1 1 Verify DUT receives max-measured-value attribute response on the TH(all-clusters-minimal-app) Log: [1658142397.298817][13946:13946] CHIP:IM: Received Read request [1658142397.298895][13946:13946] CHIP:DMG: ReadRequestMessage = @@ -286,8 +293,10 @@ tests: [1658142397.299556][13946:13946] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - sudo ./chip-tool illuminancemeasurement read measured-value 1 1 + ./chip-tool illuminancemeasurement read measured-value 1 1 + Verify DUT receives measured-value attribute response on the TH(all-clusters-minimal-app) Log: + [1658142471.266188][13946:13946] CHIP:IM: Received Read request [1658142471.266273][13946:13946] CHIP:DMG: ReadRequestMessage = [1658142471.266303][13946:13946] CHIP:DMG: { @@ -312,6 +321,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: ILL.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -328,6 +338,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: ILL.C.AO-WRITE verification: | No writable attrbute for this cluster disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_I_3_1.yaml b/src/app/tests/suites/certification/Test_TC_I_3_1_Simulated.yaml similarity index 64% rename from src/app/tests/suites/certification/Test_TC_I_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_I_3_1_Simulated.yaml index 6c78fc35711f86..408b2fbf46ae9d 100644 --- a/src/app/tests/suites/certification/Test_TC_I_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_I_3_1_Simulated.yaml @@ -11,294 +11,58 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 59.3.1 [TC-I-3.1] Attributes with client as DUT +name: 59.3.1. [TC-I-3.1] Attributes with Client as DUT PICS: - I.C + - I.C.AM-READ + - I.C.AO-READ + - I.C.AM-WRITE + - I.C.AO-WRITE config: nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 + cluster: "Identify" + endpoint: 1 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" + - label: "Read attribute: IdentifyTime" PICS: I.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool identify read identify-time 1 1 - Verify DUT receives identify-time attribute response on the TH(all-clusters-app) Log: - - [1667197830.806071][11363:11363] CHIP:EM: Handling via exchange: 56765r, Delegate: 0xaaaac34e82d8 - [1667197830.806175][11363:11363] CHIP:IM: Received Read request - [1667197830.806352][11363:11363] CHIP:DMG: ReadRequestMessage = - [1667197830.806419][11363:11363] CHIP:DMG: { - [1667197830.806530][11363:11363] CHIP:DMG: AttributePathIBs = - [1667197830.806600][11363:11363] CHIP:DMG: [ - [1667197830.806661][11363:11363] CHIP:DMG: AttributePathIB = - [1667197830.806731][11363:11363] CHIP:DMG: { - [1667197830.806797][11363:11363] CHIP:DMG: Endpoint = 0x1, - [1667197830.806879][11363:11363] CHIP:DMG: Cluster = 0x3, - [1667197830.806961][11363:11363] CHIP:DMG: Attribute = 0x0000_0000, - [1667197830.807024][11363:11363] CHIP:DMG: } - [1667197830.807095][11363:11363] CHIP:DMG: - [1667197830.807167][11363:11363] CHIP:DMG: ], - [1667197830.807238][11363:11363] CHIP:DMG: - [1667197830.807307][11363:11363] CHIP:DMG: isFabricFiltered = true, - [1667197830.807371][11363:11363] CHIP:DMG: InteractionModelRevision = 1 - [1667197830.807430][11363:11363] CHIP:DMG: }, - [1667197830.807585][11363:11363] CHIP:DMG: IM RH moving to [GeneratingReports] - [1667197830.807839][11363:11363] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1667197830.807916][11363:11363] CHIP:DMG: Cluster 3, Attribute 0 is dirty - [1667197830.807974][11363:11363] CHIP:DMG: Reading attribute: Cluster=0x0000_0003 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1667197830.808039][11363:11363] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=v - [1667197830.808111][11363:11363] CHIP:DMG: AccessControl: allowed - [1667197830.808227][11363:11363] CHIP:DMG: Sending report (payload has 36 bytes)... - [1667197830.808823][11363:11363] CHIP:EM: <<< [E:56765r M:6967774 (Ack:173797668)] (S) Msg TX to 1:000000000001B669 [CA2D] --- Type 0001:05 (IM:ReportData) - [1667197830.808936][11363:11363] CHIP:IN: (S) Sending msg 6967774 on secure session with LSID: 9654 - [1667197830.809642][11363:11363] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:52355 | 6967774 | [Interaction Model (1) / Report Data (0x05) / Session = 43830 / Exchange = 56765] - [1667197830.809747][11363:11363] CHIP:DMG: Header Flags = - [1667197830.809804][11363:11363] CHIP:DMG: { - [1667197830.809890][11363:11363] CHIP:DMG: Exchange (0x06) = - [1667197830.809952][11363:11363] CHIP:DMG: { - [1667197830.810010][11363:11363] CHIP:DMG: AckMsg = 173797668 - [1667197830.810068][11363:11363] CHIP:DMG: NeedsAck = true - [1667197830.810121][11363:11363] CHIP:DMG: } - [1667197830.810186][11363:11363] CHIP:DMG: } - [1667197830.810240][11363:11363] CHIP:DMG: - [1667197830.810303][11363:11363] CHIP:DMG: Encrypted Payload (70 bytes) = - [1667197830.810358][11363:11363] CHIP:DMG: { - [1667197830.810405][11363:11363] CHIP:DMG: data = 0036ab00de516a0096089f5f069615098a38a1c6fa532c8d77d16800b7f79686515c05356b16d262e260f3353fe22483dd5f6b40756b8f04c722cd94cd51ef2be041cee4d0fb - [1667197830.810511][11363:11363] CHIP:DMG: buffer_ptr = 187650850782464 - [1667197830.810563][11363:11363] CHIP:DMG: } - [1667197830.810607][11363:11363] CHIP:DMG: - [1667197830.810687][11363:11363] CHIP:DMG: Decrypted Payload (36 bytes) = - [1667197830.810743][11363:11363] CHIP:DMG: { - [1667197830.810796][11363:11363] CHIP:DMG: data = 15360115350126003d7b1cd3370124020124030324040018240200181818290424ff0118 - [1667197830.810850][11363:11363] CHIP:DMG: } - [1667197830.810902][11363:11363] CHIP:DMG: - [1667197830.811053][11363:11363] CHIP:DMG: ReportDataMessage = - [1667197830.811121][11363:11363] CHIP:DMG: { - [1667197830.811176][11363:11363] CHIP:DMG: AttributeReportIBs = - [1667197830.811261][11363:11363] CHIP:DMG: [ - [1667197830.811325][11363:11363] CHIP:DMG: AttributeReportIB = - [1667197830.811424][11363:11363] CHIP:DMG: { - [1667197830.811500][11363:11363] CHIP:DMG: AttributeDataIB = - [1667197830.811589][11363:11363] CHIP:DMG: { - [1667197830.811683][11363:11363] CHIP:DMG: DataVersion = 0xd31c7b3d, - [1667197830.811775][11363:11363] CHIP:DMG: AttributePathIB = - [1667197830.811868][11363:11363] CHIP:DMG: { - [1667197830.811943][11363:11363] CHIP:DMG: Endpoint = 0x1, - [1667197830.812043][11363:11363] CHIP:DMG: Cluster = 0x3, - [1667197830.812143][11363:11363] CHIP:DMG: Attribute = 0x0000_0000, - [1667197830.812237][11363:11363] CHIP:DMG: } - [1667197830.812321][11363:11363] CHIP:DMG: - [1667197830.812423][11363:11363] CHIP:DMG: Data = 0, - [1667197830.812512][11363:11363] CHIP:DMG: }, - [1667197830.812609][11363:11363] CHIP:DMG: - [1667197830.812682][11363:11363] CHIP:DMG: }, - [1667197830.812759][11363:11363] CHIP:DMG: - [1667197830.812819][11363:11363] CHIP:DMG: ], - + wait: "readAttribute" + attribute: "IdentifyTime" - - ./chip-tool identify read identify-type 1 1 - Verify DUT receives identify-type attribute response on the TH(all-clusters-app) Log: - - [1667197859.375557][11363:11363] CHIP:EM: Handling via exchange: 38348r, Delegate: 0xaaaac34e82d8 - [1667197859.375655][11363:11363] CHIP:IM: Received Read request - [1667197859.375832][11363:11363] CHIP:DMG: ReadRequestMessage = - [1667197859.375906][11363:11363] CHIP:DMG: { - [1667197859.375961][11363:11363] CHIP:DMG: AttributePathIBs = - [1667197859.376027][11363:11363] CHIP:DMG: [ - [1667197859.376088][11363:11363] CHIP:DMG: AttributePathIB = - [1667197859.376160][11363:11363] CHIP:DMG: { - [1667197859.376231][11363:11363] CHIP:DMG: Endpoint = 0x1, - [1667197859.376307][11363:11363] CHIP:DMG: Cluster = 0x3, - [1667197859.376381][11363:11363] CHIP:DMG: Attribute = 0x0000_0001, - [1667197859.376452][11363:11363] CHIP:DMG: } - [1667197859.376519][11363:11363] CHIP:DMG: - [1667197859.376585][11363:11363] CHIP:DMG: ], - [1667197859.376653][11363:11363] CHIP:DMG: - [1667197859.376719][11363:11363] CHIP:DMG: isFabricFiltered = true, - [1667197859.376784][11363:11363] CHIP:DMG: InteractionModelRevision = 1 - [1667197859.376839][11363:11363] CHIP:DMG: }, - [1667197859.376995][11363:11363] CHIP:DMG: IM RH moving to [GeneratingReports] - [1667197859.377225][11363:11363] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1667197859.377298][11363:11363] CHIP:DMG: Cluster 3, Attribute 1 is dirty - [1667197859.377353][11363:11363] CHIP:DMG: Reading attribute: Cluster=0x0000_0003 Endpoint=1 AttributeId=0x0000_0001 (expanded=0) - [1667197859.377419][11363:11363] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=v - [1667197859.377496][11363:11363] CHIP:DMG: AccessControl: allowed - [1667197859.377611][11363:11363] CHIP:DMG: Sending report (payload has 36 bytes)... - [1667197859.378153][11363:11363] CHIP:EM: <<< [E:38348r M:20924532 (Ack:202726318)] (S) Msg TX to 1:000000000001B669 [CA2D] --- Type 0001:05 (IM:ReportData) - [1667197859.378254][11363:11363] CHIP:IN: (S) Sending msg 20924532 on secure session with LSID: 9655 - [1667197859.379039][11363:11363] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:52145 | 20924532 | [Interaction Model (1) / Report Data (0x05) / Session = 47641 / Exchange = 38348] - [1667197859.379137][11363:11363] CHIP:DMG: Header Flags = - [1667197859.379194][11363:11363] CHIP:DMG: { - [1667197859.379279][11363:11363] CHIP:DMG: Exchange (0x06) = - [1667197859.379335][11363:11363] CHIP:DMG: { - [1667197859.379393][11363:11363] CHIP:DMG: AckMsg = 202726318 - [1667197859.379443][11363:11363] CHIP:DMG: NeedsAck = true - [1667197859.379495][11363:11363] CHIP:DMG: } - [1667197859.379566][11363:11363] CHIP:DMG: } - [1667197859.379615][11363:11363] CHIP:DMG: - [1667197859.379678][11363:11363] CHIP:DMG: Encrypted Payload (70 bytes) = - [1667197859.379734][11363:11363] CHIP:DMG: { - [1667197859.379794][11363:11363] CHIP:DMG: data = 0019ba0074483f0113bf2b670f0c16ac4bf0449c61e3667276e5e90cc89b7aa151eb95f884bd682f00aa2515b2e0f215744f9e9677a24a81038ed41be9807175d710f56b9eb4 - [1667197859.379852][11363:11363] CHIP:DMG: buffer_ptr = 187650850785568 - [1667197859.379905][11363:11363] CHIP:DMG: } - [1667197859.379956][11363:11363] CHIP:DMG: - [1667197859.380036][11363:11363] CHIP:DMG: Decrypted Payload (36 bytes) = - [1667197859.380092][11363:11363] CHIP:DMG: { - [1667197859.380140][11363:11363] CHIP:DMG: data = 15360115350126003d7b1cd3370124020124030324040118240202181818290424ff0118 - [1667197859.380194][11363:11363] CHIP:DMG: } - [1667197859.380245][11363:11363] CHIP:DMG: - [1667197859.380391][11363:11363] CHIP:DMG: ReportDataMessage = - [1667197859.380449][11363:11363] CHIP:DMG: { - [1667197859.380503][11363:11363] CHIP:DMG: AttributeReportIBs = - [1667197859.380574][11363:11363] CHIP:DMG: [ - [1667197859.380636][11363:11363] CHIP:DMG: AttributeReportIB = - [1667197859.380725][11363:11363] CHIP:DMG: { - [1667197859.380786][11363:11363] CHIP:DMG: AttributeDataIB = - [1667197859.380869][11363:11363] CHIP:DMG: { - [1667197859.380956][11363:11363] CHIP:DMG: DataVersion = 0xd31c7b3d, - [1667197859.381038][11363:11363] CHIP:DMG: AttributePathIB = - [1667197859.381124][11363:11363] CHIP:DMG: { - [1667197859.381208][11363:11363] CHIP:DMG: Endpoint = 0x1, - [1667197859.381299][11363:11363] CHIP:DMG: Cluster = 0x3, - [1667197859.381390][11363:11363] CHIP:DMG: Attribute = 0x0000_0001, - [1667197859.381475][11363:11363] CHIP:DMG: } - [1667197859.381564][11363:11363] CHIP:DMG: - [1667197859.381642][11363:11363] CHIP:DMG: Data = 2, - [1667197859.381721][11363:11363] CHIP:DMG: }, - [1667197859.381808][11363:11363] CHIP:DMG: - [1667197859.381881][11363:11363] CHIP:DMG: }, - [1667197859.381965][11363:11363] CHIP:DMG: - [1667197859.382021][11363:11363] CHIP:DMG: ], - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" + - label: "Read attribute: identifytype" PICS: I.C.AM-READ - verification: | - There is no optional attribute for this cluster - disabled: true + wait: "readAttribute" + attribute: "IdentifyType" - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" + - label: "write attribute: IdentifyTime" PICS: I.C.AM-WRITE - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + wait: "writeAttribute" + attribute: "IdentifyTime" + arguments: + value: - ./chip-tool identify write identify-time 1 1 1 - - Verify DUT receives identify-time attribute write response on the TH(all-clusters-app) Log: - - [1667197889.479496][11363:11363] CHIP:EM: Handling via exchange: 31391r, Delegate: 0xaaaac34e82d8 - [1667197889.479607][11363:11363] CHIP:IM: Received Write request - [1667197889.479667][11363:11363] CHIP:DMG: IM WH moving to [Initialized] - [1667197889.479793][11363:11363] CHIP:DMG: WriteRequestMessage = - [1667197889.479861][11363:11363] CHIP:DMG: { - [1667197889.479914][11363:11363] CHIP:DMG: suppressResponse = false, - [1667197889.480046][11363:11363] CHIP:DMG: timedRequest = false, - [1667197889.480118][11363:11363] CHIP:DMG: AttributeDataIBs = - [1667197889.480194][11363:11363] CHIP:DMG: [ - [1667197889.480257][11363:11363] CHIP:DMG: AttributeDataIB = - [1667197889.480338][11363:11363] CHIP:DMG: { - [1667197889.480403][11363:11363] CHIP:DMG: AttributePathIB = - [1667197889.480476][11363:11363] CHIP:DMG: { - [1667197889.480558][11363:11363] CHIP:DMG: Endpoint = 0x1, - [1667197889.480726][11363:11363] CHIP:DMG: Cluster = 0x3, - [1667197889.480833][11363:11363] CHIP:DMG: Attribute = 0x0000_0000, - [1667197889.480917][11363:11363] CHIP:DMG: } - [1667197889.481002][11363:11363] CHIP:DMG: - [1667197889.481079][11363:11363] CHIP:DMG: Data = 1, - [1667197889.481159][11363:11363] CHIP:DMG: }, - [1667197889.481233][11363:11363] CHIP:DMG: - [1667197889.481362][11363:11363] CHIP:DMG: ], - [1667197889.481450][11363:11363] CHIP:DMG: - [1667197889.481515][11363:11363] CHIP:DMG: moreChunkedMessages = false, - [1667197889.481573][11363:11363] CHIP:DMG: InteractionModelRevision = 1 - [1667197889.481633][11363:11363] CHIP:DMG: }, - [1667197889.481808][11363:11363] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=o - [1667197889.481968][11363:11363] CHIP:DMG: AccessControl: allowed - [1667197889.482051][11363:11363] CHIP:DMG: Endpoint 1, Cluster 0x0000_0003 update version to d31c7b3e - [1667197889.482118][11363:11363] CHIP:ZCL: OnIdentifyStart - [1667197889.482209][11363:11363] CHIP:DMG: IM WH moving to [AddStatus] - [1667197889.482993][11363:11363] CHIP:EM: <<< [E:31391r M:223916494 (Ack:146608348)] (S) Msg TX to 1:000000000001B669 [CA2D] --- Type 0001:07 (IM:WriteResponse) - [1667197889.483099][11363:11363] CHIP:IN: (S) Sending msg 223916494 on secure session with LSID: 9656 - [1667197889.483768][11363:11363] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:45332 | 223916494 | [Interaction Model (1) / Write Response (0x07) / Session = 31614 / Exchange = 31391] - [1667197889.483866][11363:11363] CHIP:DMG: Header Flags = - [1667197889.483924][11363:11363] CHIP:DMG: { - [1667197889.484008][11363:11363] CHIP:DMG: Exchange (0x06) = - [1667197889.484066][11363:11363] CHIP:DMG: { - [1667197889.484124][11363:11363] CHIP:DMG: AckMsg = 146608348 - [1667197889.484179][11363:11363] CHIP:DMG: NeedsAck = true - [1667197889.484232][11363:11363] CHIP:DMG: } - [1667197889.484300][11363:11363] CHIP:DMG: } - [1667197889.484357][11363:11363] CHIP:DMG: - [1667197889.484425][11363:11363] CHIP:DMG: Encrypted Payload (62 bytes) = - [1667197889.484486][11363:11363] CHIP:DMG: { - [1667197889.484540][11363:11363] CHIP:DMG: data = 007e7b00ceb1580ddff6af479435aed76f0c0ccbb0373bc29813965e087ca53358ce3dffd80c89948d2b8e5e3a6b982db9b3ee4cd20c25bcaae22a456b04 - [1667197889.484602][11363:11363] CHIP:DMG: buffer_ptr = 187650850784800 - [1667197889.484656][11363:11363] CHIP:DMG: } - [1667197889.484701][11363:11363] CHIP:DMG: - [1667197889.484779][11363:11363] CHIP:DMG: Decrypted Payload (28 bytes) = - [1667197889.484829][11363:11363] CHIP:DMG: { - [1667197889.484886][11363:11363] CHIP:DMG: data = 15360015370024020124030324040018350124000018181824ff0118 - [1667197889.484941][11363:11363] CHIP:DMG: } - [1667197889.484992][11363:11363] CHIP:DMG: - [1667197889.485093][11363:11363] CHIP:DMG: WriteResponseMessage = - [1667197889.485160][11363:11363] CHIP:DMG: { - [1667197889.485209][11363:11363] CHIP:DMG: AttributeStatusIBs = - [1667197889.485284][11363:11363] CHIP:DMG: [ - [1667197889.485340][11363:11363] CHIP:DMG: AttributeStatusIB = - [1667197889.485417][11363:11363] CHIP:DMG: { - [1667197889.485483][11363:11363] CHIP:DMG: AttributePathIB = - [1667197889.485551][11363:11363] CHIP:DMG: { - [1667197889.485627][11363:11363] CHIP:DMG: Endpoint = 0x1, - [1667197889.485724][11363:11363] CHIP:DMG: Cluster = 0x3, - [1667197889.485802][11363:11363] CHIP:DMG: Attribute = 0x0000_0000, - [1667197889.485867][11363:11363] CHIP:DMG: } - [1667197889.485957][11363:11363] CHIP:DMG: - [1667197889.486038][11363:11363] CHIP:DMG: StatusIB = - [1667197889.486117][11363:11363] CHIP:DMG: { - [1667197889.486190][11363:11363] CHIP:DMG: status = 0x00 (SUCCESS), - [1667197889.486279][11363:11363] CHIP:DMG: }, - [1667197889.486360][11363:11363] CHIP:DMG: - [1667197889.486427][11363:11363] CHIP:DMG: }, - [1667197889.486540][11363:11363] CHIP:DMG: - [1667197889.486604][11363:11363] CHIP:DMG: ], - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: I.C.AO-WRITE - verification: | - There is no write optional attribute for this cluster - disabled: true + - label: "Readback attribute: IdentifyTime" + PICS: I.C.AM-READ + wait: "readAttribute" + attribute: "IdentifyTime" - label: "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" + AttributeList.Commission DUT to TH again" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool identify read feature-map 1 1 + Verify none of the optional feature of the server-side of the cluster is listed on TH(all-clusters-minnimal-app) Log [1667198019.683786][11390:11390] CHIP:EM: Handling via exchange: 36421r, Delegate: 0xaaaaad555148 @@ -371,6 +135,7 @@ tests: [1667198019.690159][11390:11390] CHIP:DMG: }, ./chip-tool identify read attribute-list 1 1 + Verify none of the optional attribute of the server-side of the cluster is listed on TH(all-clusters-minnimal-app) Log [1667198224.933982][11390:11390] CHIP:EM: Handling via exchange: 27925r, Delegate: 0xaaaaad555148 @@ -573,6 +338,7 @@ tests: ./chip-tool identify read identify-time 1 1 + Verify DUT receives identify-time attribute response on theTH(all-clusters-minimal-app) [1667198339.074575][11390:11390] CHIP:EM: Handling via exchange: 6451r, Delegate: 0xaaaaad555148 @@ -646,7 +412,8 @@ tests: - ./chip-tool identify read identify-type 1 1 + ./chip-tool identify read identify-type 1 1 + Verify DUT receives identify-type attribute response on theTH(all-clusters-minimal-app) [1667198289.735862][11390:11390] CHIP:EM: Handling via exchange: 64741r, Delegate: 0xaaaaad555148 @@ -719,20 +486,42 @@ tests: [1667198289.742180][11390:11390] CHIP:DMG: }, [1667198289.742256][11390:11390] CHIP:DMG: [1667198289.742317][11390:11390] CHIP:DMG: ], - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" - PICS: I.C.AO-READ verification: | There is no optional attribute for this cluster - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" - PICS: I.C.AO-WRITE verification: | - There is no optional write attribute for this cluster - disabled: true + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_I_3_2.yaml b/src/app/tests/suites/certification/Test_TC_I_3_2.yaml index 3b6c48372e62fe..f37c8ef7d38113 100644 --- a/src/app/tests/suites/certification/Test_TC_I_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_I_3_2.yaml @@ -43,28 +43,28 @@ tests: [1667198527.969165][11428:11428] CHIP:EM: Handling via exchange: 17816r, Delegate: 0xaaaab32082d8 [1667198527.969436][11428:11428] CHIP:DMG: InvokeRequestMessage = [1667198527.969513][11428:11428] CHIP:DMG: { - [1667198527.969574][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198527.969645][11428:11428] CHIP:DMG: timedRequest = false, - [1667198527.969708][11428:11428] CHIP:DMG: InvokeRequests = - [1667198527.969788][11428:11428] CHIP:DMG: [ - [1667198527.969853][11428:11428] CHIP:DMG: CommandDataIB = - [1667198527.969921][11428:11428] CHIP:DMG: { - [1667198527.969997][11428:11428] CHIP:DMG: CommandPathIB = - [1667198527.970089][11428:11428] CHIP:DMG: { - [1667198527.970184][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198527.970288][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198527.970366][11428:11428] CHIP:DMG: CommandId = 0x0, - [1667198527.970652][11428:11428] CHIP:DMG: }, + [1667198527.969574][11428:11428] CHIP:DMG: suppressResponse = false, + [1667198527.969645][11428:11428] CHIP:DMG: timedRequest = false, + [1667198527.969708][11428:11428] CHIP:DMG: InvokeRequests = + [1667198527.969788][11428:11428] CHIP:DMG: [ + [1667198527.969853][11428:11428] CHIP:DMG: CommandDataIB = + [1667198527.969921][11428:11428] CHIP:DMG: { + [1667198527.969997][11428:11428] CHIP:DMG: CommandPathIB = + [1667198527.970089][11428:11428] CHIP:DMG: { + [1667198527.970184][11428:11428] CHIP:DMG: EndpointId = 0x1, + [1667198527.970288][11428:11428] CHIP:DMG: ClusterId = 0x3, + [1667198527.970366][11428:11428] CHIP:DMG: CommandId = 0x0, + [1667198527.970652][11428:11428] CHIP:DMG: }, [1667198527.970834][11428:11428] CHIP:DMG: - [1667198527.970952][11428:11428] CHIP:DMG: CommandFields = - [1667198527.971030][11428:11428] CHIP:DMG: { - [1667198527.971128][11428:11428] CHIP:DMG: 0x0 = 60, - [1667198527.971226][11428:11428] CHIP:DMG: }, - [1667198527.971312][11428:11428] CHIP:DMG: }, + [1667198527.970952][11428:11428] CHIP:DMG: CommandFields = + [1667198527.971030][11428:11428] CHIP:DMG: { + [1667198527.971128][11428:11428] CHIP:DMG: 0x0 = 60, + [1667198527.971226][11428:11428] CHIP:DMG: }, + [1667198527.971312][11428:11428] CHIP:DMG: }, [1667198527.971397][11428:11428] CHIP:DMG: - [1667198527.971464][11428:11428] CHIP:DMG: ], + [1667198527.971464][11428:11428] CHIP:DMG: ], [1667198527.971618][11428:11428] CHIP:DMG: - [1667198527.971693][11428:11428] CHIP:DMG: InteractionModelRevision = 1 + [1667198527.971693][11428:11428] CHIP:DMG: InteractionModelRevision = 1 [1667198527.971758][11428:11428] CHIP:DMG: }, [1667198527.971910][11428:11428] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=m [1667198527.971988][11428:11428] CHIP:DMG: AccessControl: allowed @@ -100,30 +100,30 @@ tests: [1667198527.975666][11428:11428] CHIP:DMG: [1667198527.975809][11428:11428] CHIP:DMG: InvokeResponseMessage = [1667198527.975876][11428:11428] CHIP:DMG: { - [1667198527.975937][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198527.976003][11428:11428] CHIP:DMG: InvokeResponseIBs = - [1667198527.976082][11428:11428] CHIP:DMG: [ - [1667198527.976147][11428:11428] CHIP:DMG: InvokeResponseIB = - [1667198527.976239][11428:11428] CHIP:DMG: { - [1667198527.976304][11428:11428] CHIP:DMG: CommandStatusIB = - [1667198527.976732][11428:11428] CHIP:DMG: { - [1667198527.976820][11428:11428] CHIP:DMG: CommandPathIB = - [1667198527.976919][11428:11428] CHIP:DMG: { - [1667198527.977020][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198527.977128][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198527.977227][11428:11428] CHIP:DMG: CommandId = 0x0, - [1667198527.977440][11428:11428] CHIP:DMG: }, + [1667198527.975937][11428:11428] CHIP:DMG: suppressResponse = false, + [1667198527.976003][11428:11428] CHIP:DMG: InvokeResponseIBs = + [1667198527.976082][11428:11428] CHIP:DMG: [ + [1667198527.976147][11428:11428] CHIP:DMG: InvokeResponseIB = + [1667198527.976239][11428:11428] CHIP:DMG: { + [1667198527.976304][11428:11428] CHIP:DMG: CommandStatusIB = + [1667198527.976732][11428:11428] CHIP:DMG: { + [1667198527.976820][11428:11428] CHIP:DMG: CommandPathIB = + [1667198527.976919][11428:11428] CHIP:DMG: { + [1667198527.977020][11428:11428] CHIP:DMG: EndpointId = 0x1, + [1667198527.977128][11428:11428] CHIP:DMG: ClusterId = 0x3, + [1667198527.977227][11428:11428] CHIP:DMG: CommandId = 0x0, + [1667198527.977440][11428:11428] CHIP:DMG: }, [1667198527.977555][11428:11428] CHIP:DMG: - [1667198527.977712][11428:11428] CHIP:DMG: StatusIB = - [1667198527.977815][11428:11428] CHIP:DMG: { - [1667198527.977919][11428:11428] CHIP:DMG: status = 0x00 (SUCCESS), - [1667198527.978173][11428:11428] CHIP:DMG: }, + [1667198527.977712][11428:11428] CHIP:DMG: StatusIB = + [1667198527.977815][11428:11428] CHIP:DMG: { + [1667198527.977919][11428:11428] CHIP:DMG: status = 0x00 (SUCCESS), + [1667198527.978173][11428:11428] CHIP:DMG: }, [1667198527.978355][11428:11428] CHIP:DMG: - [1667198527.978447][11428:11428] CHIP:DMG: }, + [1667198527.978447][11428:11428] CHIP:DMG: }, [1667198527.978567][11428:11428] CHIP:DMG: - [1667198527.978711][11428:11428] CHIP:DMG: }, + [1667198527.978711][11428:11428] CHIP:DMG: }, [1667198527.978804][11428:11428] CHIP:DMG: - [1667198527.978869][11428:11428] CHIP:DMG: ], + [1667198527.978869][11428:11428] CHIP:DMG: ], disabled: true - label: @@ -146,28 +146,28 @@ tests: [1667198553.327170][11428:11428] CHIP:EM: Handling via exchange: 48289r, Delegate: 0xaaaab32082d8 [1667198553.327776][11428:11428] CHIP:DMG: InvokeRequestMessage = [1667198553.327855][11428:11428] CHIP:DMG: { - [1667198553.327913][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198553.328635][11428:11428] CHIP:DMG: timedRequest = false, - [1667198553.328728][11428:11428] CHIP:DMG: InvokeRequests = - [1667198553.328814][11428:11428] CHIP:DMG: [ - [1667198553.328878][11428:11428] CHIP:DMG: CommandDataIB = - [1667198553.329382][11428:11428] CHIP:DMG: { - [1667198553.329504][11428:11428] CHIP:DMG: CommandPathIB = - [1667198553.330002][11428:11428] CHIP:DMG: { - [1667198553.330767][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198553.331341][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198553.332023][11428:11428] CHIP:DMG: CommandId = 0x0, - [1667198553.332126][11428:11428] CHIP:DMG: }, + [1667198553.327913][11428:11428] CHIP:DMG: suppressResponse = false, + [1667198553.328635][11428:11428] CHIP:DMG: timedRequest = false, + [1667198553.328728][11428:11428] CHIP:DMG: InvokeRequests = + [1667198553.328814][11428:11428] CHIP:DMG: [ + [1667198553.328878][11428:11428] CHIP:DMG: CommandDataIB = + [1667198553.329382][11428:11428] CHIP:DMG: { + [1667198553.329504][11428:11428] CHIP:DMG: CommandPathIB = + [1667198553.330002][11428:11428] CHIP:DMG: { + [1667198553.330767][11428:11428] CHIP:DMG: EndpointId = 0x1, + [1667198553.331341][11428:11428] CHIP:DMG: ClusterId = 0x3, + [1667198553.332023][11428:11428] CHIP:DMG: CommandId = 0x0, + [1667198553.332126][11428:11428] CHIP:DMG: }, [1667198553.332270][11428:11428] CHIP:DMG: - [1667198553.332693][11428:11428] CHIP:DMG: CommandFields = - [1667198553.332827][11428:11428] CHIP:DMG: { - [1667198553.333261][11428:11428] CHIP:DMG: 0x0 = 0, - [1667198553.333734][11428:11428] CHIP:DMG: }, - [1667198553.333822][11428:11428] CHIP:DMG: }, + [1667198553.332693][11428:11428] CHIP:DMG: CommandFields = + [1667198553.332827][11428:11428] CHIP:DMG: { + [1667198553.333261][11428:11428] CHIP:DMG: 0x0 = 0, + [1667198553.333734][11428:11428] CHIP:DMG: }, + [1667198553.333822][11428:11428] CHIP:DMG: }, [1667198553.333954][11428:11428] CHIP:DMG: - [1667198553.334359][11428:11428] CHIP:DMG: ], + [1667198553.334359][11428:11428] CHIP:DMG: ], [1667198553.334439][11428:11428] CHIP:DMG: - [1667198553.334940][11428:11428] CHIP:DMG: InteractionModelRevision = 1 + [1667198553.334940][11428:11428] CHIP:DMG: InteractionModelRevision = 1 [1667198553.335006][11428:11428] CHIP:DMG: }, [1667198553.335517][11428:11428] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=m [1667198553.335608][11428:11428] CHIP:DMG: AccessControl: allowed @@ -203,26 +203,26 @@ tests: [1667198553.340395][11428:11428] CHIP:DMG: [1667198553.340533][11428:11428] CHIP:DMG: InvokeResponseMessage = [1667198553.340595][11428:11428] CHIP:DMG: { - [1667198553.340655][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198553.340716][11428:11428] CHIP:DMG: InvokeResponseIBs = - [1667198553.340794][11428:11428] CHIP:DMG: [ - [1667198553.340857][11428:11428] CHIP:DMG: InvokeResponseIB = - [1667198553.341054][11428:11428] CHIP:DMG: { - [1667198553.341137][11428:11428] CHIP:DMG: CommandStatusIB = - [1667198553.341271][11428:11428] CHIP:DMG: { - [1667198553.341399][11428:11428] CHIP:DMG: CommandPathIB = - [1667198553.341567][11428:11428] CHIP:DMG: { - [1667198553.341643][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198553.341783][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198553.341945][11428:11428] CHIP:DMG: CommandId = 0x0, - [1667198553.342106][11428:11428] CHIP:DMG: }, + [1667198553.340655][11428:11428] CHIP:DMG: suppressResponse = false, + [1667198553.340716][11428:11428] CHIP:DMG: InvokeResponseIBs = + [1667198553.340794][11428:11428] CHIP:DMG: [ + [1667198553.340857][11428:11428] CHIP:DMG: InvokeResponseIB = + [1667198553.341054][11428:11428] CHIP:DMG: { + [1667198553.341137][11428:11428] CHIP:DMG: CommandStatusIB = + [1667198553.341271][11428:11428] CHIP:DMG: { + [1667198553.341399][11428:11428] CHIP:DMG: CommandPathIB = + [1667198553.341567][11428:11428] CHIP:DMG: { + [1667198553.341643][11428:11428] CHIP:DMG: EndpointId = 0x1, + [1667198553.341783][11428:11428] CHIP:DMG: ClusterId = 0x3, + [1667198553.341945][11428:11428] CHIP:DMG: CommandId = 0x0, + [1667198553.342106][11428:11428] CHIP:DMG: }, [1667198553.342192][11428:11428] CHIP:DMG: - [1667198553.342265][11428:11428] CHIP:DMG: StatusIB = - [1667198553.342429][11428:11428] CHIP:DMG: { - [1667198553.342540][11428:11428] CHIP:DMG: status = 0x00 (SUCCESS), - [1667198553.342630][11428:11428] CHIP:DMG: }, + [1667198553.342265][11428:11428] CHIP:DMG: StatusIB = + [1667198553.342429][11428:11428] CHIP:DMG: { + [1667198553.342540][11428:11428] CHIP:DMG: status = 0x00 (SUCCESS), + [1667198553.342630][11428:11428] CHIP:DMG: }, [1667198553.342722][11428:11428] CHIP:DMG: - [1667198553.342804][11428:11428] CHIP:DMG: }, + [1667198553.342804][11428:11428] CHIP:DMG: }, [1667198553.342885][11428:11428] CHIP:DMG: disabled: true @@ -239,29 +239,29 @@ tests: [1667198739.675252][11428:11428] CHIP:EM: Handling via exchange: 45132r, Delegate: 0xaaaab32082d8 [1667198739.675400][11428:11428] CHIP:DMG: InvokeRequestMessage = [1667198739.675647][11428:11428] CHIP:DMG: { - [1667198739.675714][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198739.675784][11428:11428] CHIP:DMG: timedRequest = false, - [1667198739.675846][11428:11428] CHIP:DMG: InvokeRequests = - [1667198739.675924][11428:11428] CHIP:DMG: [ - [1667198739.676050][11428:11428] CHIP:DMG: CommandDataIB = - [1667198739.676131][11428:11428] CHIP:DMG: { - [1667198739.676205][11428:11428] CHIP:DMG: CommandPathIB = - [1667198739.676276][11428:11428] CHIP:DMG: { - [1667198739.676358][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198739.676430][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198739.676498][11428:11428] CHIP:DMG: CommandId = 0x40, - [1667198739.676585][11428:11428] CHIP:DMG: }, + [1667198739.675714][11428:11428] CHIP:DMG: suppressResponse = false, + [1667198739.675784][11428:11428] CHIP:DMG: timedRequest = false, + [1667198739.675846][11428:11428] CHIP:DMG: InvokeRequests = + [1667198739.675924][11428:11428] CHIP:DMG: [ + [1667198739.676050][11428:11428] CHIP:DMG: CommandDataIB = + [1667198739.676131][11428:11428] CHIP:DMG: { + [1667198739.676205][11428:11428] CHIP:DMG: CommandPathIB = + [1667198739.676276][11428:11428] CHIP:DMG: { + [1667198739.676358][11428:11428] CHIP:DMG: EndpointId = 0x1, + [1667198739.676430][11428:11428] CHIP:DMG: ClusterId = 0x3, + [1667198739.676498][11428:11428] CHIP:DMG: CommandId = 0x40, + [1667198739.676585][11428:11428] CHIP:DMG: }, [1667198739.676669][11428:11428] CHIP:DMG: - [1667198739.676737][11428:11428] CHIP:DMG: CommandFields = - [1667198739.676822][11428:11428] CHIP:DMG: { - [1667198739.676906][11428:11428] CHIP:DMG: 0x0 = 0, - [1667198739.676985][11428:11428] CHIP:DMG: 0x1 = 0, - [1667198739.677084][11428:11428] CHIP:DMG: }, - [1667198739.677158][11428:11428] CHIP:DMG: }, + [1667198739.676737][11428:11428] CHIP:DMG: CommandFields = + [1667198739.676822][11428:11428] CHIP:DMG: { + [1667198739.676906][11428:11428] CHIP:DMG: 0x0 = 0, + [1667198739.676985][11428:11428] CHIP:DMG: 0x1 = 0, + [1667198739.677084][11428:11428] CHIP:DMG: }, + [1667198739.677158][11428:11428] CHIP:DMG: },'{" [1667198739.677236][11428:11428] CHIP:DMG: - [1667198739.677296][11428:11428] CHIP:DMG: ], + [1667198739.677296][11428:11428] CHIP:DMG: ], [1667198739.677372][11428:11428] CHIP:DMG: - [1667198739.677433][11428:11428] CHIP:DMG: InteractionModelRevision = 1 + [1667198739.677433][11428:11428] CHIP:DMG: InteractionModelRevision = 1 [1667198739.677489][11428:11428] CHIP:DMG: }, [1667198739.677633][11428:11428] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=m [1667198739.677716][11428:11428] CHIP:DMG: AccessControl: allowed @@ -297,24 +297,24 @@ tests: [1667198739.680866][11428:11428] CHIP:DMG: [1667198739.680998][11428:11428] CHIP:DMG: InvokeResponseMessage = [1667198739.681061][11428:11428] CHIP:DMG: { - [1667198739.681114][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198739.681176][11428:11428] CHIP:DMG: InvokeResponseIBs = - [1667198739.681247][11428:11428] CHIP:DMG: [ - [1667198739.681310][11428:11428] CHIP:DMG: InvokeResponseIB = - [1667198739.681391][11428:11428] CHIP:DMG: { - [1667198739.681467][11428:11428] CHIP:DMG: CommandStatusIB = - [1667198739.681560][11428:11428] CHIP:DMG: { - [1667198739.681646][11428:11428] CHIP:DMG: CommandPathIB = - [1667198739.681731][11428:11428] CHIP:DMG: { - [1667198739.681811][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198739.681912][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198739.682011][11428:11428] CHIP:DMG: CommandId = 0x40, - [1667198739.682104][11428:11428] CHIP:DMG: }, + [1667198739.681114][11428:11428] CHIP:DMG: suppressResponse = false, + [1667198739.681176][11428:11428] CHIP:DMG: InvokeResponseIBs = + [1667198739.681247][11428:11428] CHIP:DMG: [ + [1667198739.681310][11428:11428] CHIP:DMG: InvokeResponseIB = + [1667198739.681391][11428:11428] CHIP:DMG: { + [1667198739.681467][11428:11428] CHIP:DMG: CommandStatusIB = + [1667198739.681560][11428:11428] CHIP:DMG: { + [1667198739.681646][11428:11428] CHIP:DMG: CommandPathIB = + [1667198739.681731][11428:11428] CHIP:DMG: { + [1667198739.681811][11428:11428] CHIP:DMG: EndpointId = 0x1, + [1667198739.681912][11428:11428] CHIP:DMG: ClusterId = 0x3, + [1667198739.682011][11428:11428] CHIP:DMG: CommandId = 0x40, + [1667198739.682104][11428:11428] CHIP:DMG: }, [1667198739.682198][11428:11428] CHIP:DMG: - [1667198739.682287][11428:11428] CHIP:DMG: StatusIB = - [1667198739.682383][11428:11428] CHIP:DMG: { - [1667198739.682489][11428:11428] CHIP:DMG: status = 0x00 (SUCCESS), - [1667198739.682580][11428:11428] CHIP:DMG: }, + [1667198739.682287][11428:11428] CHIP:DMG: StatusIB = + [1667198739.682383][11428:11428] CHIP:DMG: { + [1667198739.682489][11428:11428] CHIP:DMG: status = 0x00 (SUCCESS), + [1667198739.682580][11428:11428] CHIP:DMG: }, [1667198739.682674][11428:11428] CHIP:DMG: - [1667198739.682738][11428:11428] CHIP:DMG: }, + [1667198739.682738][11428:11428] CHIP:DMG: }, disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml b/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml index 0492a754e5482e..3a2bda98ade78c 100644 --- a/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml @@ -30,7 +30,7 @@ tests: PICS: LCFG.S.A0001 verification: | ./chip-tool localizationconfiguration read supported-locales 1 0 - Verify that the entry values in the SupportedLocales attribute are not repeated and the maximum number of elements is 32 and also that the maximum length is of 35bytes on TH(chip-tool) log: + Verify that entry values in the SupportedLocales attribute are not repeated and the maximum number of elements is 32 and also that the maximum length is of 35 bytes on TH(chip-tool) log: [1661759583.481746][104665:104670] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0001 DataVersion: 3207653748 [1661759583.482016][104665:104670] CHIP:TOO: SupportedLocales: 8 entries @@ -47,8 +47,8 @@ tests: - label: "TH writes xx-XX to SupportedLocales attribute" verification: | - ./chip-tool any write-by-id 0x002B 1 ""xx-XX"" 1 0 - Verify that DUT responds as UNSUPPORTED_WRITE on TH(chip-tool) log: + ./chip-tool any write-by-id 0x002B 1 '"xx-XX"' 1 0 + Verify that DUT responds with UNSUPPORTED_WRITE on TH(chip-tool) log: [1653996674.832226][7281:7286] CHIP:DMG: WriteClient moving to [AwaitingDe] [1653996674.832300][7281:7286] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) @@ -58,7 +58,7 @@ tests: - label: "TH reads SupportedLocales attribute" verification: | ./chip-tool localizationconfiguration read supported-locales 1 0 - Verify that the SupportedLocales atrribute entries are same as step 1 on TH(chip-tool) log: + Verify that SupportedLocales atrribute entries are same as step 1 on TH(chip-tool) log: [1645772065.848431][3762:3767] CHIP:TOO: SupportedLocales: 8 entries [1645772065.850249][3762:3767] CHIP:TOO: [1]: en-US @@ -76,7 +76,7 @@ tests: PICS: LCFG.S.A0000 verification: | ./chip-tool localizationconfiguration read active-locale 1 0 - Verify that the ActiveLocale Attribute value is Language Tag as defined by BCP47 and is present in the SupportedLocales attribute list and also the value is of maximum length of 35 bytes and if the value of ActiveLocale is not one among supportedLocales value then default value is assigned by the Vendor on TH(chip-tool)log: + Verify that ActiveLocale Attribute value is Language Tag as defined by BCP47 and is present in the SupportedLocales attribute list and also the value is of maximum length of 35 bytes and if the value of ActiveLocale is not one among supportedLocales value then default value is assigned by the Vendor on TH(chip-tool)log: [1661759849.744419][104758:104763] CHIP:DMG: } [1661759849.744488][104758:104763] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0000 DataVersion: 3207653748 @@ -85,7 +85,7 @@ tests: disabled: true - label: - "TH writes new string not present in SupportedLocale attribute to + "TH writes new string not present in SupportedLocales attribute to ActiveLocale Attribute." verification: | ./chip-tool localizationconfiguration write active-locale fw-GB 1 0 @@ -121,7 +121,7 @@ tests: disabled: true - label: - "TH writes new string present in SupportedLocale attribute to + "TH writes new string present in SupportedLocales attribute to ActiveLocale Attribute" verification: | ./chip-tool localizationconfiguration write active-locale fr-FR 1 0 @@ -158,7 +158,7 @@ tests: - label: "TH Reads ActiveLocale" verification: | ./chip-tool localizationconfiguration read active-locale 1 0 - Verify that the value of the ActiveLocale attribute is changed to SupportedLocale on TH(chip-tool) log: + Verify that value of the ActiveLocale attribute is changed to SupportedLocale on TH(chip-tool) log: [1661760013.634782][104820:104825] CHIP:DMG: } [1661760013.634848][104820:104825] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0000 DataVersion: 3207653749 [1661760013.634861][104820:104825] CHIP:TOO: ActiveLocale: fr-FR diff --git a/src/app/tests/suites/certification/Test_TC_LTIME_2_1.yaml b/src/app/tests/suites/certification/Test_TC_LTIME_2_1.yaml index a367b90c805274..c312e3d492c093 100644 --- a/src/app/tests/suites/certification/Test_TC_LTIME_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LTIME_2_1.yaml @@ -42,7 +42,7 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool timeformatlocalization read hour-format 1 0 - Verify HourFormat attribute read request is successful on the TH(all-clusters-app) Log: + Verify HourFormat attribute read request is successful on the TH(all-clusters-app) Log: ReportDataMessage = [1666853690.186762][20237:20237] CHIP:DMG: { @@ -80,6 +80,7 @@ tests: ./chip-tool timeformatlocalization write hour-format 0 1 0 Verify TH receives write command and updates 0 to HourFormat attribute on the TH(all-clusters-app) Log: + WriteRequestMessage = [1667882827.566742][3974:3974] CHIP:DMG: { [1667882827.566746][3974:3974] CHIP:DMG: suppressResponse = false, @@ -159,7 +160,9 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool timeformatlocalization read hour-format 1 0 + Verify HourFormat attribute value is the one that was set in the above step on the TH(all-clusters-app) Log: + ReportDataMessage = [1666853805.326001][20237:20237] CHIP:DMG: { [1666853805.326004][20237:20237] CHIP:DMG: AttributeReportIBs = @@ -195,7 +198,9 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool timeformatlocalization write hour-format 1 1 0 + Verify TH receives write command and updates 1 to HourFormat attribute on the TH(all-clusters-app) Log: + WriteRequestMessage = [1667882900.829307][3974:3974] CHIP:DMG: { [1667882900.829310][3974:3974] CHIP:DMG: suppressResponse = false, @@ -275,8 +280,9 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool timeformatlocalization read hour-format 1 0 + Verify HourFormat attribute value is the one that was set in the above step on the TH(all-clusters-app) Log: - d28 + ReportDataMessage = [1666853879.264685][20237:20237] CHIP:DMG: { [1666853879.264688][20237:20237] CHIP:DMG: AttributeReportIBs = @@ -311,7 +317,9 @@ tests: Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool timeformatlocalization read active-calendar-type 1 0 + Verify active-calendar-type attribute read request is successful on the TH(all-clusters-app) Log: + ReportDataMessage = [1666853928.157384][20237:20237] CHIP:DMG: { [1666853928.157387][20237:20237] CHIP:DMG: AttributeReportIBs = @@ -604,6 +612,7 @@ tests: ./chip-tool timeformatlocalization write active-calendar-type 0 1 0 Verify TH receives the write command and updates the respective value on the TH(all-clusters-app) Log: + WriteRequestMessage = [1667882949.750275][3974:3974] CHIP:DMG: { [1667882949.750280][3974:3974] CHIP:DMG: suppressResponse = false, diff --git a/src/app/tests/suites/certification/Test_TC_LTIME_3_1.yaml b/src/app/tests/suites/certification/Test_TC_LTIME_3_1.yaml index 44b76711839331..c96dc0497675a4 100644 --- a/src/app/tests/suites/certification/Test_TC_LTIME_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LTIME_3_1.yaml @@ -30,7 +30,7 @@ tests: PICS: LTIME.S.A0000 verification: | ./chip-tool timeformatlocalization read hour-format 1 0 - Verify that HourFormat attribute value is of Enum8 datatype on TH(chip-tool) log: + Verify that HourFormat attribute value is of Enum8(0, 1) datatype on TH(chip-tool) log: [1651191944157] [13649:182326] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0000 DataVersion: 3316530441 [1651191944158] [13649:182326] CHIP: [TOO] HourFormat: 0 diff --git a/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml b/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml index 77eb029d199d8f..9d4a00d325272c 100644 --- a/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml @@ -36,6 +36,7 @@ tests: - label: "DUT reads all supported mandatory attributes from TH one at a time in a manufacturer specific order" + PICS: LVL.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -106,6 +107,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: LVL.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -343,6 +345,7 @@ tests: - label: "DUT writes a suitable value to all supported mandatory attributes on the TH one at a time in a manufacturer specific order" + PICS: LVL.C.AM-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -377,6 +380,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: LVL.C.AO-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -636,6 +640,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: LVL.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -797,6 +802,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: LVL.C.AO-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_17.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_17.yaml index 0a655309a96fb5..4ff9050ad76045 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_17.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_17.yaml @@ -34,8 +34,8 @@ tests: verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): - ./chip-tool mediainput rename-input 1 "DVD" 1 1 - ./chip-tv-casting-app mediainput rename-input 1 "DVD" 1 1 + ./chip-tool mediainput rename-input 1 'DVD' 1 1 + ./chip-tv-casting-app mediainput rename-input 1 'DVD' 1 1 The log below shows the resulting log on the TH (tv-app or all-clusters-app): diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml index 9468b833bc1756..6e7096e77d6a67 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml @@ -81,13 +81,13 @@ tests: - label: "TH reads the StartTime attribute from the DUT" PICS: MEDIAPLAYBACK.S.A0001 && PICS_USER_PROMPT verification: | - "The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool mediaplayback read start-time 1 1 - ./chip-tv-casting-app mediaplayback read start-time 1 1 + The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): + ./chip-tool mediaplayback read start-time 1 3 + ./chip-tv-casting-app mediaplayback read start-time 1 3 On TH Verify that the response is a valid start time or null. [1654001778189] [97015:7707437] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0506 Attribute 0x0000_0001 DataVersion: 775839144 - [1654001778190] [97015:7707437] CHIP: [TOO] StartTime: 0" + [1654001778190] [97015:7707437] CHIP: [TOO] StartTime: 0 cluster: "LogCommands" command: "UserPrompt" arguments: @@ -101,8 +101,8 @@ tests: - label: "TH reads the SeekRangeEnd attribute from the DUT" verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool mediaplayback read seek-range-end 1 1 - ./chip-tv-casting-app mediaplayback read seek-range-end 1 1 + ./chip-tool mediaplayback read seek-range-end 1 3 + ./chip-tv-casting-app mediaplayback read seek-range-end 1 3 On TH Verify that the response is a valid position or Nas. [1654002119527] [97409:7712444] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0506 Attribute 0x0000_0005 DataVersion: 775839144 @@ -121,8 +121,8 @@ tests: - label: "TH reads the SeekRangeStart attribute from the DUT" verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool mediaplayback read seek-range-start 1 1 - ./chip-tv-casting-app mediaplayback read seek-range-start 1 1 + ./chip-tool mediaplayback read seek-range-start 1 3 + ./chip-tv-casting-app mediaplayback read seek-range-start 1 3 On TH Verify that the response is a valid position or Nas. [1661240180.806771][2930:2935] CHIP:DMG: SuppressResponse = true, @@ -131,7 +131,7 @@ tests: [1661240180.807024][2930:2935] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0506 Attribute 0x0000_0006 DataVersion: 1520269522 [1661240180.807103][2930:2935] CHIP:TOO: SeekRangeStart: 0 [1661240180.807211][2930:2935] CHIP:EM: Sending Standalone Ack for MessageCounter:164562596 on exchange 31684i - [1661240180.807299][2930:2935] CHIP:IN: Prepared secure message 0xffff95f5d978 to 0x0000000000000001 (1) of type 0x10 and protocolId (0, 0) on exchange 31684i with MessageCounter:104721987.s + [1661240180.807299][2930:2935] CHIP:IN: Prepared secure message 0xffff95f5d978 to 0x0000000000000001 (1) of type 0x10 and protocolId (0, 0) on exchange 31684i with MessageCounter:104721987. cluster: "LogCommands" command: "UserPrompt" PICS: PICS_USER_PROMPT && MEDIAPLAYBACK.S.A0006 @@ -146,8 +146,8 @@ tests: - label: "TH reads the Duration attribute from the DUT" verification: | The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool mediaplayback read duration 1 1 - ./chip-tv-casting-app mediaplayback read duration 1 1 + ./chip-tool mediaplayback read duration 1 3 + ./chip-tv-casting-app mediaplayback read duration 1 3 On TH Verify that the response is null or not 0. [1654001869267] [97168:7708957] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0506 Attribute 0x0000_0002 DataVersion: 775839144 diff --git a/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml b/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml index 051deee2d21efb..bae71abddbecc8 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml @@ -36,6 +36,7 @@ tests: - label: "DUT reads all supported mandatory attributes from TH one at a time in a manufacturer specific order" + PICS: MOD.C.AM-READ verification: | ./chip-tool modeselect read supported-modes 1 1 @@ -253,6 +254,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: MOD.C.AO-READ verification: | ./chip-tool modeselect read on-mode 1 1 @@ -317,13 +319,15 @@ tests: - label: "DUT writes a suitable value to all supported mandatory attributes on the TH one at a time in a manufacturer specific order" + PICS: MOD.C.AM-WRITE verification: | - This cluster doesn"t have any writable attributes + This cluster doesn't have any writable attributes disabled: true - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: MOD.C.AO-WRITE verification: | ./chip-tool modeselect write on-mode 0 1 1 @@ -826,6 +830,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: MOD.C.AO-READ verification: | TH all-clusters-minimal-app does not support optional attributes @@ -838,6 +843,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: MOD.C.AO-WRITE verification: | ./chip-tool modeselect write on-mode 0 1 1 ./chip-tool modeselect write start-up-mode 0 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml b/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml index b9d1400ebad347..ce193ae93db249 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml @@ -161,7 +161,7 @@ tests: verification: | ./chip-tool modeselect change-to-mode 4 1 1 - Verify TH responds with a successful (value 0x00) status responseon the TH (all-cluster-app) log: + Verify TH responds with a successful (value 0x00) status response on the TH (all-cluster-app) log: [1666941165.052169][9718:9718] CHIP:DMG: InvokeResponseMessage = [1666941165.052172][9718:9718] CHIP:DMG: { diff --git a/src/app/tests/suites/certification/Test_TC_MOD_3_2.yaml b/src/app/tests/suites/certification/Test_TC_MOD_3_2.yaml index 9b0710076d1d07..8a34455f66efa9 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_3_2.yaml @@ -24,6 +24,20 @@ config: endpoint: 0 tests: + - label: "Note" + verification: | + To Execute the TC-MOD-3.2 test case using reboot in raspi device we followed the below suggested way: + + To run a reboot test case on raspi, run the app with --KVS flag with a file in local directory and pass that file to the command to launch the app. Steps + + + step-1: create a file using touch command , something like touch mytest.txt + step-2: chmod 777 mytest.txt + step-3: launch the app ./chip-all-clusters-app --KVS ./mytest.txt + + if you launch the app with the above commands and provision the app, even when you reboot the app with 'sudo reboot' , next time you launch the app with 'sudo ./out/all-clusters-app/chip-all-clusters-app --KVS ./mytest.txt' , you can run read/write attribs and commands without reprovisioning the device. + disabled: true + - label: "Precondition" verification: | This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command @@ -34,7 +48,7 @@ tests: verification: | ./chip-tool modeselect read start-up-mode 1 1 - on TH(chip-tool) log verify for StartUpMode. Record this value for usage in step 2b and below is the sample log provided for the raspi platform: + On TH(chip-tool), Verify StartUpMode attribute. Record this value for usage in step 2b and below is the sample log provided for the raspi platform: [1645777708.406864][4841:4846] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003DataVersion: 3781469721 [1645777708.406933][4841:4846] CHIP:TOO: StartUpMode: 0 @@ -45,7 +59,7 @@ tests: verification: | ./chip-tool modeselect read current-mode 1 1 - on TH(chip-tool) log verify for CurrentMode. Record this value for usage in step 2b and below is the sample log provided for the raspi platform: + On TH(chip-tool) , Verify CurrentMode attribute. Record this value for usage in step 2b and below is the sample log provided for the raspi platform: [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 @@ -65,7 +79,7 @@ tests: verification: | ./chip-tool modeselect read supported-modes 1 1 - Verify on TH(chip-tool) logs supported modes provides a list of mode, each mode should be a struct containing a label and all of these values should be no larger than 16 bits for usage in step 2d and below is the sample log provided for the raspi platform: + Verify on TH(chip-tool), Supported modes provides a list of mode, each mode should be a struct containing a label and all of these values should be no larger than 16 bits for usage in step 2d and below is the sample log provided for the raspi platform: [1654595268.854568][14400:14405] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 [1654595268.854678][14400:14405] CHIP:TOO: SupportedModes: 3 entries @@ -109,7 +123,7 @@ tests: ./chip-tool modeselect change-to-mode 4 1 1 - on TH(chip-tool) log verify that status has a value 0x00 (success) and below is the sample log provided for the raspi platform: + On TH(chip-tool) , Verify that status has a value 0x00 (success) and below is the sample log provided for the raspi platform: [1645778189.045030][4888:4893] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0050 Command=0x0000_0000 Status=0x0 disabled: true @@ -124,7 +138,7 @@ tests: verification: | ./chip-tool modeselect read current-mode 1 1 - on TH(chip-tool) log verify that CurrentMode is same as value recorded in step 1 and below is the sample log provided for the raspi platform: + on TH(chip-tool), Verify that CurrentMode is same as value recorded in step 1 and below is the sample log provided for the raspi platform: [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 diff --git a/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml b/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml index 22c6fca4260138..cded4323ec9240 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml @@ -147,19 +147,19 @@ tests: verification: | To perform an OTA update on Thread device follow the cmmds below: - Step-1 : Where we builded OTA provider app execute this cmmd . (In my case I ran connectedhomeip/out/debug ./chip-ota-provider-app -f ) + Step-1 : Where we builded OTA provider app execute this cmmd . (In my case I ran connectedhomeip/out/debug ./chip-otaprovider-app -f ) - ./chip-ota-provider-app -f ~/chip_repos/connectedhomeip/examples/all-clusters-app/nrfconnect/build2/zephyr/matter.ota + ./chip-otaprovider-app -f ~/chip_repos/connectedhomeip/examples/all-clusters-app/nrfconnect/build2/zephyr/matter.ota Ran on chip-tool: Step-2: ./chip-tool pairing onnetwork 2 20202021 - Step-3 : ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": null, "targets": [{"cluster": 41, "endpoint": null, "deviceType": null}]}]" 2 0 + Step-3 : ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": null, "targets": [{"cluster": 41, "endpoint": null, "deviceType": null}]}]' 2 0 - Step-4: ./chip-tool otasoftwareupdaterequestor write default-ota-providers "[{"fabricIndex": 1, "providerNodeID": 2, "endpoint": 0}]" 1 0 + Step-4: ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 1, "providerNodeID": 2, "endpoint": 0}]' 1 0 - Step-5: ./chip-tool otasoftwareupdaterequestor announce-ota-provider 2 0 0 0 1 0 + Step-5: ./chip-tool otasoftwareupdaterequestor announce-otaprovider 2 0 0 0 1 0 disabled: true - label: "TH reads the CurrentMode attribute from the DUT" diff --git a/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml b/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml index 103358be2e2d06..502d69881b83cf 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml @@ -54,7 +54,7 @@ tests: verification: | ./chip-tool modeselect read start-up-mode 1 1 - on TH(chip-tool) log verify for StartUpMode. Record this value for usage in step 2 and below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify StartUpMode attribute. Record this value for usage in step 2 and below is the sample log provided for the raspi platform: [1651099663211] [82177:7560652] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0004 DataVersion: 2609052118 @@ -66,7 +66,7 @@ tests: verification: | ./chip-tool modeselect read on-mode 1 1 - on TH(chip-tool) log verify for OnMode. Record this value for usage in step 2b and below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify OnMode attribute. Record this value for usage in step 2b and below is the sample log provided for the raspi platform: [1654780979.979743][61542:61547] CHIP:DMG: } @@ -88,7 +88,7 @@ tests: verification: | ./chip-tool modeselect read supported-modes 1 1 - on TH(chip-tool) log verify for SupportedModes. Record the mode for usage in step 2d and below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify SupportedModes attribute. Record the mode for usage in step 2d and below is the sample log provided for the raspi platform: [1654154058.284710][3492:3497] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 694763126 [1654154058.284829][3492:3497] CHIP:TOO: SupportedModes: 3 entries @@ -129,7 +129,7 @@ tests: verification: | ./chip-tool modeselect write on-mode 7 1 1 - on TH(chip-tool) log verify that status has a value 0x00 (success) and below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify that status has a value 0x00 (success) and below is the sample log provided for the raspi platform: [1651099941884] [84269:7567211] CHIP: [DMG] WriteResponseMessage = [1651099941884] [84269:7567211] CHIP: [DMG] { @@ -162,7 +162,7 @@ tests: verification: | ./chip-tool modeselect read on-mode 1 1 - on TH(chip-tool) log verify for OnMode. Record this value and below is the sample log provided for the raspi platform: + on TH(chip-tool) log, Verify OnMode attribute. Record this value and below is the sample log provided for the raspi platform: } [1669190858.739158][4187:4189] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4107771634 @@ -175,7 +175,7 @@ tests: verification: | ./chip-tool onoff write start-up-on-off 1 1 1 - on TH(chip-tool) log verify for StartUpOnOff . Record this value and below is the sample log provided for the raspi platform: + On TH(chip-tool), Verify SUCCESS response . Record this value and below is the sample log provided for the raspi platform: [1651101661959] [90832:7598169] CHIP: [DMG] WriteResponseMessage = [1651101661959] [90832:7598169] CHIP: [DMG] { @@ -215,7 +215,7 @@ tests: ./chip-tool modeselect read current-mode 1 1 - on TH(chip-tool),Verify CurrentMode value is same as the value recorded in step 3 and below is the sample log provided for the raspi platform: + On TH(chip-tool),Verify CurrentMode value is same as the value recorded in step 3 and below is the sample log provided for the raspi platform: } [1669190936.869804][4194:4196] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3908583538 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 917dc66118e1ad..644d818e5da6ee 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 @@ -36,6 +36,7 @@ tests: - label: "DUT reads all supported mandatory attributes from TH one at a time in a manufacturer specific order" + PICS: OO.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -75,6 +76,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: OO.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -219,6 +221,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: OO.C.AO-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -530,6 +533,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: OO.C.AO-READ verification: | ./chip-tool onoff read global-scene-control 1 1 @@ -555,6 +559,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: OO.C.AO-WRITE verification: | ./chip-tool onoff write on-time 1 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_1.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_1.yaml index 785e80f681c86f..de460938e1427f 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_1.yaml @@ -62,7 +62,7 @@ tests: ./chip-tool generalcommissioning arm-fail-safe 900 600 1 0 - Verify the ErrorCode as "OK"(0) in TH log + Verify the ErrorCode as 'OK'(0) in TH log [1659676500.031926][2475:2480] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1659676500.047646][2475:2480] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 [1659676500.055459][2475:2480] CHIP:TOO: ArmFailSafeResponse: { @@ -92,7 +92,7 @@ tests: PICS: OPCREDS.S.C00.Rsp && OPCREDS.S.C01.Tx verification: | To get attestation nonce give below command Raspi platform on TH - echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) ./chip-tool operationalcredentials attestation-request hex:3577CA6EFFFC560E287604663AE5BE2F11D1B1CF99BE326AF5B3B114A2E91395 1 0 @@ -110,7 +110,7 @@ tests: - label: "TH1 sends CertificateChainRequest Command to DUT for the PAI and - saves the certififate as PAICert" + saves the certififate as 'PAICert'" PICS: OPCREDS.S.C02.Rsp && OPCREDS.S.C03.Tx verification: | ./chip-tool operationalcredentials certificate-chain-request 2 1 0 --trace_decode 1 @@ -216,7 +216,7 @@ tests: - label: "TH1 sends CertificateChainRequest Command to DUT for the DAC and - saves the certififate as DACCert" + saves the certififate as 'DACCert'" PICS: OPCREDS.S.C02.Rsp && OPCREDS.S.C03.Tx verification: | ./chip-tool operationalcredentials certificate-chain-request 1 1 0 @@ -324,7 +324,7 @@ tests: PICS: OPCREDS.S.C04.Rsp verification: | To get SCR Nonce give below command 2 times - echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) ./chip-tool operationalcredentials csrrequest hex:A61BFCE6E2C6AAF48FDEC4BF9DCEF08EB65B976997D82BE5F359902982717603 1 0 @@ -487,7 +487,7 @@ tests: disabled: true - label: - "TH1 appends a second list item to NOClist and writes that value to + "TH1 appends a second list item to 'NOClist' and writes that value to the NOCs attribute" PICS: OPCREDS.S.A0000 verification: | @@ -503,7 +503,7 @@ tests: disabled: true - label: - "TH1 sends UpdateFabricLabel command with Label 1 as Label field to + "TH1 sends UpdateFabricLabel command with 'Label 1' as Label field to DUT" PICS: OPCREDS.S.C09.Rsp verification: | @@ -555,8 +555,8 @@ tests: - label: "TH1 fully commissions DUT onto the fabric, using - Root_CA_Certificate_TH1 and the AddNOC parameters specified in step . - This will update the value of FabricIndex_TH1 so that it references + 'Root_CA_Certificate_TH1' and the AddNOC parameters specified in step + . This will update the value of FabricIndex_TH1 so that it references the fabric the DUT was just commissioned onto" verification: | @@ -577,7 +577,7 @@ tests: disabled: true - label: - "TH1 sends UpdateFabricLabel command with Label 1 as Label field to + "TH1 sends UpdateFabricLabel command with 'Label 1' as Label field to DUT" PICS: OPCREDS.S.C09.Rsp verification: | @@ -651,7 +651,7 @@ tests: disabled: true - label: - "TH2 sends UpdateFabricLabel command with Label 2 as Label field to + "TH2 sends UpdateFabricLabel command with 'Label 2' as Label field to DUT" PICS: OPCREDS.S.C09.Rsp verification: | @@ -659,7 +659,7 @@ tests: disabled: true - label: - "TH2 sends UpdateFabricLabel command with Label 1 as Label field to + "TH2 sends UpdateFabricLabel command with 'Label 1' as Label field to DUT" PICS: OPCREDS.S.C09.Rsp verification: | diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml index b672a9b5dba0a9..9434a0e7fde8bb 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml @@ -120,7 +120,9 @@ tests: 2. On 2nd controller, using chip-tool connect using manual code. Below is the example when using chip tool as controller (considering 35998938564 as the manual code generated by 1st controller) - ./chip-tool pairing code 2 35407541839 --commissioner-name beta + + + ./chip-tool pairing code 2 35407541839 --commissioner-name beta --trace_decode 1 Verify whether you got below message in the log of TH Device commissioning completed with success @@ -136,6 +138,37 @@ tests: [1673249259.363467][1742:1744] CHIP:IN: SecureSession[0xffff98011400]: Allocated Type:2 LSID:60039 [1673249259.363558][1742:1744] CHIP:SC: Initiating session on local FabricIndex 2 from 0x000000000001B669 -> 0x0000000000000002 [1673249259.365555][1742:1744] CHIP:EM: <<< [E:13995i M:219921998] (U) Msg TX to 0:0000000000000000 [0000] --- Type 0000:30 (SecureChannel:CASE_Sigma1) + [1681213277.146543][2983:2985] CHIP:DMG: + [1681213277.146631][2983:2985] CHIP:DMG: NOCValue (241) = + [1681213277.146662][2983:2985] CHIP:DMG: { + FTABAQEkAgE3AyQTAhgmBIAigScmBYAlTTo3BiQVAiQRAhgkBwEkCAEwCUEEooiu0bizmyLUR9k8phgWrcsaLfWIrjF3MmJuMrM2rGsjl/k8nxqkNtfiVCPUbMfo+Z2vMByAa74UKVnvxz4a2DcKNQEoARgkAgE2AwQCBAEYMAQUmZjxv4X5S8T6+5BRACiWMwvb2hIwBRTzEAaDTxWHp9yNRa21A/LaQylK9BgwC0DyL4TkYg6tVc5DCXnE+ZXq6wRE1oCi72icy+9rcsptmfXdgWjew2uiEfQiJIQJdzM1mZN8OKLlJx8aY4CVsC/AGA== + [1681213277.146693][2983:2985] CHIP:DMG: } + [1681213277.146708][2983:2985] CHIP:DMG: + [1681213277.146725][2983:2985] CHIP:DMG: ICACValue (231) = + [1681213277.146748][2983:2985] CHIP:DMG: { + FTABAQEkAgE3AyQUARgmBIAigScmBYAlTTo3BiQTAhgkBwEkCAEwCUEEjjgt8C2SvzhTjCUn3polJfTxEfZhJ5Dg7B24NEfypWrVKu3MsEmx4eHexmohFV9+Najv+bp7ns53w6vakJqo7TcKNQEpARgkAmAwBBTzEAaDTxWHp9yNRa21A/LaQylK9DAFFJg1jJGztPg2TbeXsehGcGT67Ry2GDALQEZnfw7LkGjbDUPw8p0OReBz4hQAuVmQ7myxWcX0LPxsKm4lV0TC9bXnwmrQ8rMz0uY/gxdXfbWdd87SPbp2698Y + [1681213277.146780][2983:2985] CHIP:DMG: } + [1681213277.146795][2983:2985] CHIP:DMG: + [1681213277.146826][2983:2985] CHIP:DMG: InvokeRequestMessage = + [1681213277.146844][2983:2985] CHIP:DMG: { + [1681213277.146862][2983:2985] CHIP:DMG: suppressResponse = false, + [1681213277.146883][2983:2985] CHIP:DMG: timedRequest = false, + [1681213277.146902][2983:2985] CHIP:DMG: InvokeRequests = + [1681213277.146928][2983:2985] CHIP:DMG: [ + [1681213277.146947][2983:2985] CHIP:DMG: CommandDataIB = + [1681213277.146970][2983:2985] CHIP:DMG: { + [1681213277.146990][2983:2985] CHIP:DMG: CommandPathIB = + [1681213277.147013][2983:2985] CHIP:DMG: { + [1681213277.147037][2983:2985] CHIP:DMG: EndpointId = 0x0, + [1681213277.147063][2983:2985] CHIP:DMG: ClusterId = 0x3e, + [1681213277.147088][2983:2985] CHIP:DMG: CommandId = 0x6, + [1681213277.147111][2983:2985] CHIP:DMG: }, + [1681213277.147136][2983:2985] CHIP:DMG: + [1681213277.147156][2983:2985] CHIP:DMG: CommandFields = + [1681213277.147179][2983:2985] CHIP:DMG: { + [1681213277.147204][2983:2985] CHIP:DMG: 0x0 = [ + [1681213277.147296][2983:2985] CHIP:DMG: 0x15, 0x30, 0x01, 0x01, 0x01, 0x24, 0x02, 0x01, 0x37, 0x03, 0x24, 0x13, 0x02, 0x18, 0x26, 0x04, 0x80, 0x22, 0x81, 0x27, 0x26, 0x05, 0x80, 0x25, 0x4d, 0x3a, 0x37, 0x06, 0x24, 0x15, 0x02, 0x24, 0x11, 0x02, 0x18, 0x24, 0x07, 0x01, 0x24, 0x08, 0x01, 0x30, 0x09, 0x41, 0x04, 0xa2, 0x88, 0xae, 0xd1, 0xb8, 0xb3, 0x9b, 0x22, 0xd4, 0x47, 0xd9, 0x3c, 0xa6, 0x18, 0x16, 0xad, 0xcb, 0x1a, 0x2d, 0xf5, 0x88, 0xae, 0x31, 0x77, 0x32, 0x62, 0x6e, 0x32, 0xb3, 0x36, 0xac, 0x6b, 0x23, 0x97, 0xf9, 0x3c, 0x9f, 0x1a, 0xa4, 0x36, 0xd7, 0xe2, 0x54, 0x23, 0xd4, 0x6c, 0xc7, 0xe8, 0xf9, 0x9d, 0xaf, 0x30, 0x1c, 0x80, 0x6b, 0xbe, 0x14, 0x29, 0x59, 0xef, 0xc7, 0x3e, 0x1a, 0xd8, 0x37, 0x0a, 0x35, 0x01, 0x28, 0x01, 0x18, 0x24, 0x02, 0x01, 0x36, 0x03, 0x04, 0x02, 0x04, 0x01, 0x18, 0x30, 0x04, 0x14, 0x99, 0x98, 0xf1, 0xbf, 0x85, 0xf9, 0x4b, 0xc4, 0xfa, 0xfb, 0x90, 0x51, 0x00, 0x28, 0x96, 0x33, 0x0b, 0xdb, 0xda, 0x12, 0x30, 0x05, 0x14, 0xf3, 0x10, 0x06, 0x83, 0x4f, 0x15, 0x87, 0xa7, 0xdc, 0x8d, 0x45, 0xad, 0xb5, 0x03, 0xf2, 0xda, 0x43, 0x29, 0x4a, 0xf4, 0x18, 0x30, 0x0b, 0x40, 0xf2, 0x2f, 0x84, 0xe4, 0x62, 0x0e, 0xad, 0x55, 0xce, 0x43, 0x09, 0x79, 0xc4, 0xf9, 0x95, 0xea, 0xeb, 0x04, 0x44, 0xd6, 0x80, 0xa2, 0xef, 0x68, 0x9c, 0xcb, 0xef, 0x6b, 0x72, 0xca, 0x6d, 0x99, 0xf5, 0xdd, 0x81, 0x68, 0xde, 0xc3, 0x6b, 0xa2, 0x11, 0xf4, 0x22, 0x24, 0x84, 0x09, 0x77, 0x33, 0x35, 0x99, 0x93, 0x7c, 0x38, 0xa2, 0xe5, 0x27, 0x1f, 0x1a, 0x63, 0x80, 0x95, 0xb0, 0x2f, 0xc0, 0x18, + [1681213277.147347][2983:2985] CHIP:DMG: ] (241 bytes) disabled: true - label: "Save TH2s Fabric ID as FabricID2" diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml index a2d0eceefda2c3..647ab381623bdd 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml @@ -1012,7 +1012,7 @@ tests: verification: | During commissioning, Verify that UpdateNOC Command is received in TH (all-clusters-app) - [1655968444.113753][21387:21392] CHIP:CTL: Performing next commissioning step "SendNOC" + [1655968444.113753][21387:21392] CHIP:CTL: Performing next commissioning step 'SendNOC' [1655968444.113880][21387:21392] CHIP:DMG: ICR moving to [AddingComm] [1655968444.113960][21387:21392] CHIP:DMG: ICR moving to [AddedComma] [1655968444.114671][21387:21392] CHIP:IN: Prepared secure message 0xffff9afdc988 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 11677i with MessageCounter:162800417. @@ -1140,7 +1140,7 @@ tests: [1655968444.503901][21387:21392] CHIP:CTL: Operational credentials provisioned on device 0xffff88000b60 [1655968444.503972][21387:21392] CHIP:TOO: Secure Pairing Success [1655968444.504021][21387:21392] CHIP:TOO: CASE establishment successful - [1655968444.504076][21387:21392] CHIP:CTL: Successfully finished commissioning step "SendNOC" + [1655968444.504076][21387:21392] CHIP:CTL: Successfully finished commissioning step 'SendNOC' disabled: true - label: "DUT sends UpdateFabricLabel to TH" @@ -1566,28 +1566,28 @@ tests: [1666945062.193989][5129:5129] CHIP:EM: Handling via exchange: 55862r, Delegate: 0xaaaac10e0288 [1666945062.194151][5129:5129] CHIP:DMG: InvokeRequestMessage = [1666945062.194246][5129:5129] CHIP:DMG: { - [1666945062.194305][5129:5129] CHIP:DMG: suppressResponse = false, - [1666945062.194372][5129:5129] CHIP:DMG: timedRequest = false, - [1666945062.194457][5129:5129] CHIP:DMG: InvokeRequests = - [1666945062.194535][5129:5129] CHIP:DMG: [ - [1666945062.194624][5129:5129] CHIP:DMG: CommandDataIB = - [1666945062.194710][5129:5129] CHIP:DMG: { - [1666945062.194968][5129:5129] CHIP:DMG: CommandPathIB = - [1666945062.195074][5129:5129] CHIP:DMG: { - [1666945062.195165][5129:5129] CHIP:DMG: EndpointId = 0x0, - [1666945062.195257][5129:5129] CHIP:DMG: ClusterId = 0x3e, - [1666945062.195365][5129:5129] CHIP:DMG: CommandId = 0xa, - [1666945062.195446][5129:5129] CHIP:DMG: }, + [1666945062.194305][5129:5129] CHIP:DMG: suppressResponse = false, + [1666945062.194372][5129:5129] CHIP:DMG: timedRequest = false, + [1666945062.194457][5129:5129] CHIP:DMG: InvokeRequests = + [1666945062.194535][5129:5129] CHIP:DMG: [ + [1666945062.194624][5129:5129] CHIP:DMG: CommandDataIB = + [1666945062.194710][5129:5129] CHIP:DMG: { + [1666945062.194968][5129:5129] CHIP:DMG: CommandPathIB = + [1666945062.195074][5129:5129] CHIP:DMG: { + [1666945062.195165][5129:5129] CHIP:DMG: EndpointId = 0x0, + [1666945062.195257][5129:5129] CHIP:DMG: ClusterId = 0x3e, + [1666945062.195365][5129:5129] CHIP:DMG: CommandId = 0xa, + [1666945062.195446][5129:5129] CHIP:DMG: }, [1666945062.195550][5129:5129] CHIP:DMG: - [1666945062.195623][5129:5129] CHIP:DMG: CommandFields = - [1666945062.195726][5129:5129] CHIP:DMG: { - [1666945062.195794][5129:5129] CHIP:DMG: 0x0 = 1, - [1666945062.195861][5129:5129] CHIP:DMG: }, - [1666945062.195955][5129:5129] CHIP:DMG: }, + [1666945062.195623][5129:5129] CHIP:DMG: CommandFields = + [1666945062.195726][5129:5129] CHIP:DMG: { + [1666945062.195794][5129:5129] CHIP:DMG: 0x0 = 1, + [1666945062.195861][5129:5129] CHIP:DMG: }, + [1666945062.195955][5129:5129] CHIP:DMG: }, [1666945062.196040][5129:5129] CHIP:DMG: - [1666945062.196123][5129:5129] CHIP:DMG: ], + [1666945062.196123][5129:5129] CHIP:DMG: ], [1666945062.196201][5129:5129] CHIP:DMG: - [1666945062.196284][5129:5129] CHIP:DMG: InteractionModelRevision = 1 + [1666945062.196284][5129:5129] CHIP:DMG: InteractionModelRevision = 1 [1666945062.196346][5129:5129] CHIP:DMG: }, [1666945062.196517][5129:5129] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_003E e=0 p=a [1666945062.196599][5129:5129] CHIP:DMG: AccessControl: allowed @@ -1723,19 +1723,19 @@ tests: [1666945062.315868][5129:5129] CHIP:DMG: Command handler moving to [AddedComma] [1666945062.315939][5129:5129] CHIP:IN: Expiring all sessions for fabric 0x1!! [1666945062.315996][5129:5129] CHIP:IN: SecureSession[0xaaaaf53b08f0]: MarkForEviction Type:2 LSID:49150 - [1666945062.316053][5129:5129] CHIP:SC: SecureSession[0xaaaaf53b08f0]: Moving from state "kActive" --> "kPendingEviction" + [1666945062.316053][5129:5129] CHIP:SC: SecureSession[0xaaaaf53b08f0]: Moving from state 'kActive' --> 'kPendingEviction' [1666945062.316111][5129:5129] CHIP:IN: SecureSession[0xaaaaf53b08f0]: Released - Type:2 LSID:49150 [1666945062.316211][5129:5129] CHIP:IN: SecureSession[0xaaaaf53d2ec0]: MarkForEviction Type:2 LSID:49151 - [1666945062.316268][5129:5129] CHIP:SC: SecureSession[0xaaaaf53d2ec0]: Moving from state "kActive" --> "kPendingEviction" + [1666945062.316268][5129:5129] CHIP:SC: SecureSession[0xaaaaf53d2ec0]: Moving from state 'kActive' --> 'kPendingEviction' [1666945062.316324][5129:5129] CHIP:IN: SecureSession[0xaaaaf53d2ec0]: Released - Type:2 LSID:49151 [1666945062.316406][5129:5129] CHIP:IN: SecureSession[0xaaaaf52e6e10]: MarkForEviction Type:2 LSID:49152 - [1666945062.316464][5129:5129] CHIP:SC: SecureSession[0xaaaaf52e6e10]: Moving from state "kActive" --> "kPendingEviction" + [1666945062.316464][5129:5129] CHIP:SC: SecureSession[0xaaaaf52e6e10]: Moving from state 'kActive' --> 'kPendingEviction' [1666945062.316517][5129:5129] CHIP:IN: SecureSession[0xaaaaf52e6e10]: Released - Type:2 LSID:49152 [1666945062.316574][5129:5129] CHIP:IN: SecureSession[0xaaaaf53cf6f0]: MarkForEviction Type:2 LSID:49153 - [1666945062.316651][5129:5129] CHIP:SC: SecureSession[0xaaaaf53cf6f0]: Moving from state "kActive" --> "kPendingEviction" + [1666945062.316651][5129:5129] CHIP:SC: SecureSession[0xaaaaf53cf6f0]: Moving from state 'kActive' --> 'kPendingEviction' [1666945062.316705][5129:5129] CHIP:IN: SecureSession[0xaaaaf53cf6f0]: Released - Type:2 LSID:49153 [1666945062.316761][5129:5129] CHIP:IN: SecureSession[0xaaaaf53d33c0]: MarkForEviction Type:2 LSID:49154 - [1666945062.316834][5129:5129] CHIP:SC: SecureSession[0xaaaaf53d33c0]: Moving from state "kActive" --> "kPendingEviction" + [1666945062.316834][5129:5129] CHIP:SC: SecureSession[0xaaaaf53d33c0]: Moving from state 'kActive' --> 'kPendingEviction' [1666945062.316961][5129:5129] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 [1666945062.317650][5129:5129] CHIP:EM: <<< [E:55862r M:7155928 (Ack:103508994)] (S) Msg TX to 1:000000000001B669 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) [1666945062.317757][5129:5129] CHIP:IN: (S) Sending msg 7155928 on secure session with LSID: 49154 @@ -1757,28 +1757,28 @@ tests: [1666945062.319916][5129:5129] CHIP:DMG: [1666945062.320107][5129:5129] CHIP:DMG: InvokeResponseMessage = [1666945062.320172][5129:5129] CHIP:DMG: { - [1666945062.320254][5129:5129] CHIP:DMG: suppressResponse = false, - [1666945062.320318][5129:5129] CHIP:DMG: InvokeResponseIBs = - [1666945062.320394][5129:5129] CHIP:DMG: [ - [1666945062.320456][5129:5129] CHIP:DMG: InvokeResponseIB = - [1666945062.320569][5129:5129] CHIP:DMG: { - [1666945062.320643][5129:5129] CHIP:DMG: CommandDataIB = - [1666945062.320754][5129:5129] CHIP:DMG: { - [1666945062.320841][5129:5129] CHIP:DMG: CommandPathIB = - [1666945062.320948][5129:5129] CHIP:DMG: { - [1666945062.321043][5129:5129] CHIP:DMG: EndpointId = 0x0, - [1666945062.321157][5129:5129] CHIP:DMG: ClusterId = 0x3e, - [1666945062.321257][5129:5129] CHIP:DMG: CommandId = 0x8, - [1666945062.321367][5129:5129] CHIP:DMG: }, + [1666945062.320254][5129:5129] CHIP:DMG: suppressResponse = false, + [1666945062.320318][5129:5129] CHIP:DMG: InvokeResponseIBs = + [1666945062.320394][5129:5129] CHIP:DMG: [ + [1666945062.320456][5129:5129] CHIP:DMG: InvokeResponseIB = + [1666945062.320569][5129:5129] CHIP:DMG: { + [1666945062.320643][5129:5129] CHIP:DMG: CommandDataIB = + [1666945062.320754][5129:5129] CHIP:DMG: { + [1666945062.320841][5129:5129] CHIP:DMG: CommandPathIB = + [1666945062.320948][5129:5129] CHIP:DMG: { + [1666945062.321043][5129:5129] CHIP:DMG: EndpointId = 0x0, + [1666945062.321157][5129:5129] CHIP:DMG: ClusterId = 0x3e, + [1666945062.321257][5129:5129] CHIP:DMG: CommandId = 0x8, + [1666945062.321367][5129:5129] CHIP:DMG: }, [1666945062.321465][5129:5129] CHIP:DMG: - [1666945062.321574][5129:5129] CHIP:DMG: CommandFields = - [1666945062.321659][5129:5129] CHIP:DMG: { - [1666945062.321777][5129:5129] CHIP:DMG: 0x0 = 0, - [1666945062.321890][5129:5129] CHIP:DMG: 0x1 = 1, - [1666945062.321981][5129:5129] CHIP:DMG: }, - [1666945062.322084][5129:5129] CHIP:DMG: }, + [1666945062.321574][5129:5129] CHIP:DMG: CommandFields = + [1666945062.321659][5129:5129] CHIP:DMG: { + [1666945062.321777][5129:5129] CHIP:DMG: 0x0 = 0, + [1666945062.321890][5129:5129] CHIP:DMG: 0x1 = 1, + [1666945062.321981][5129:5129] CHIP:DMG: }, + [1666945062.322084][5129:5129] CHIP:DMG: }, [1666945062.322180][5129:5129] CHIP:DMG: - [1666945062.322276][5129:5129] CHIP:DMG: }, + [1666945062.322276][5129:5129] CHIP:DMG: }, [1666945062.322360][5129:5129] CHIP:DMG: - [1666945062.322448][5129:5129] CHIP:DMG: ], + [1666945062.322448][5129:5129] CHIP:DMG: ], disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_4.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_4.yaml index 9232322d1843a2..10330e72fd7041 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_4.yaml @@ -156,7 +156,7 @@ tests: Verify that the DUT returns a CSRResponse and save as csr_not_update To get csr nonce give below command 2 times in TH(chip-tool) Log - echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) ./chip-tool operationalcredentials csrrequest hex:C11D6EAA00A54066220DA7F3FC5DC0F684C13D8B8FD3758B51163C2AEDD6F10F 1 0 --IsForUpdateNOC 0 diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_5.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_5.yaml index c68da89465a13c..2f930f972b410d 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_5.yaml @@ -87,7 +87,7 @@ tests: PICS: OPCREDS.S.C04.Rsp verification: | To get csr nonce give below command 2 times in TH(chip-tool) - echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom) + echo hex:$(hexdump -vn32 -e'4/4 "%08X" ' /dev/urandom) ./chip-tool operationalcredentials csrrequest hex:C11D6EAA00A54066220DA7F3FC5DC0F684C13D8B8FD3758B51163C2AEDD6F10F 1 0 --IsForUpdateNOC 0 diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_6.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_6.yaml index 5e9e7ddb3a206f..aa33ddeac8abed 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_6.yaml @@ -73,7 +73,7 @@ tests: [1674780232627] [8807:372926] CHIP: [DMG] Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008 [1674780232627] [8807:372926] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008 [1674780232627] [8807:372926] CHIP: [TOO] NOCResponse: { - [1674780232627] [8807:372926] CHIP: [TOO] statusCode: 11 + [1674780232627] [8807:372926] CHIP: [TOO] statusCode: 0 [1674780232627] [8807:372926] CHIP: [TOO] } [1674780232627] [8807:372926] CHIP: [DMG] ICR moving to [AwaitingDe] [1674780232627] [8807:372926] CHIP: [EM] <<< [E:31626i M:201286751 (Ack:54014818)] (S) Msg TX to 1:0000000000000001 [1A5D] --- Type 0000:10 (SecureChannel:StandaloneAck) @@ -84,19 +84,19 @@ tests: [1674780232627] [8807:372921] CHIP: [CTL] Shutting down the controller [1674780232627] [8807:372921] CHIP: [IN] Expiring all sessions for fabric 0x1!! [1674780232627] [8807:372921] CHIP: [IN] SecureSession[0x600001c041e0]: MarkForEviction Type:2 LSID:14333 - [1674780232627] [8807:372921] CHIP: [SC] SecureSession[0x600001c041e0]: Moving from state "kActive" --> "kPendingEviction" + [1674780232627] [8807:372921] CHIP: [SC] SecureSession[0x600001c041e0]: Moving from state 'kActive' --> 'kPendingEviction' [1674780232627] [8807:372921] CHIP: [IN] SecureSession[0x600001c041e0]: Released - Type:2 LSID:14333 disabled: true - label: "DUT shouldnt be discoverable via both commissionable and operational advertisements" - PICS: " !MCORE.DD.EXTENDED_DISCOVERY " + PICS: "!MCORE.DD.EXTENDED_DISCOVERY" verification: | Verify DUT is not discoverable over DNS-SD in both TCP and UDP - avahi-browse -rt _matter._tcp - avahi-browse -rt _matter._udp + avahi-browse -rt _matterc._tcp + avahi-browse -rt _matterc._udp disabled: true - label: @@ -112,5 +112,5 @@ tests: hostname = [E45F012EED550000.local] address = [172.18.0.1] port = [5540] - txt = [""PI="" ""PH=33"" ""CM=0"" ""D=3840"" ""T=1"" ""DN=Test Bulb"" ""DT=257"" ""VP=65521+32769""] + txt = ["PI=" "PH=33" "CM=0" "D=3840" "T=1" "DN=Test Bulb" "DT=257" "VP=65521+32769"] disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml index 26347afdc7943a..fd39663119c70f 100644 --- a/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml @@ -36,6 +36,7 @@ tests: - label: "DUT reads all supported mandatory attributes from TH one at a time in a manufacturer specific order." + PICS: PCC.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -194,6 +195,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order." + PICS: PCC.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -382,7 +384,7 @@ tests: [1651564281.858131][8748:8748] CHIP:DMG: [1651564281.858157][8748:8748] CHIP:DMG: isFabricFiltered = true, [1651564281.858183][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564281.858206][8748:8748] CHIP:DMG: }," + [1651564281.858206][8748:8748] CHIP:DMG: }, ./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1 @@ -404,7 +406,7 @@ tests: [1651564317.488983][8748:8748] CHIP:DMG: [1651564317.489011][8748:8748] CHIP:DMG: isFabricFiltered = true, [1651564317.489038][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564317.489063][8748:8748] CHIP:DMG: }," + [1651564317.489063][8748:8748] CHIP:DMG: }, ./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1 @@ -426,7 +428,7 @@ tests: [1651564350.267918][8748:8748] CHIP:DMG: [1651564350.267945][8748:8748] CHIP:DMG: isFabricFiltered = true, [1651564350.267970][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564350.268092][8748:8748] CHIP:DMG: }," + [1651564350.268092][8748:8748] CHIP:DMG: }, ./chip-tool pumpconfigurationandcontrol read pump-status 1 1 @@ -448,7 +450,7 @@ tests: [1651564415.273477][8748:8748] CHIP:DMG: [1651564415.273520][8748:8748] CHIP:DMG: isFabricFiltered = true, [1651564415.273562][8748:8748] CHIP:DMG: InteractionModelRevision = 1 - [1651564415.273600][8748:8748] CHIP:DMG: }," + [1651564415.273600][8748:8748] CHIP:DMG: }, ./chip-tool pumpconfigurationandcontrol read speed 1 1 @@ -470,7 +472,7 @@ tests: [1651571041.252955][9246:9246] CHIP:DMG: [1651571041.252990][9246:9246] CHIP:DMG: isFabricFiltered = true, [1651571041.253016][9246:9246] CHIP:DMG: InteractionModelRevision = 1 - [1651571041.253049][9246:9246] CHIP:DMG: }," + [1651571041.253049][9246:9246] CHIP:DMG: }, ./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1 @@ -492,7 +494,7 @@ tests: [1651571194.810979][9337:9337] CHIP:DMG: [1651571194.811005][9337:9337] CHIP:DMG: isFabricFiltered = true, [1651571194.811030][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571194.811053][9337:9337] CHIP:DMG: }," + [1651571194.811053][9337:9337] CHIP:DMG: }, ./chip-tool pumpconfigurationandcontrol read power 1 1 @@ -514,7 +516,7 @@ tests: [1651571264.122391][9337:9337] CHIP:DMG: [1651571264.122418][9337:9337] CHIP:DMG: isFabricFiltered = true, [1651571264.122444][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571264.122468][9337:9337] CHIP:DMG: }," + [1651571264.122468][9337:9337] CHIP:DMG: }, ./chip-tool pumpconfigurationandcontrol read lifetime-energy-consumed 1 1 @@ -536,7 +538,7 @@ tests: [1651571293.018204][9337:9337] CHIP:DMG: [1651571293.018256][9337:9337] CHIP:DMG: isFabricFiltered = true, [1651571293.018304][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571293.018348][9337:9337] CHIP:DMG: }," + [1651571293.018348][9337:9337] CHIP:DMG: }, ./chip-tool pumpconfigurationandcontrol read control-mode 1 1 @@ -558,12 +560,13 @@ tests: [1651571369.366646][9337:9337] CHIP:DMG: [1651571369.366713][9337:9337] CHIP:DMG: isFabricFiltered = true, [1651571369.366770][9337:9337] CHIP:DMG: InteractionModelRevision = 1 - [1651571369.366827][9337:9337] CHIP:DMG: }," + [1651571369.366827][9337:9337] CHIP:DMG: }, disabled: true - label: "DUT writes a suitable value to all supported mandatory attributes on the TH one at a time in a manufacturer specific order." + PICS: PCC.C.AM-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -604,6 +607,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order." + PICS: PCC.C.AO-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -931,20 +935,21 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order." + PICS: PCC.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - "./chip-tool pumpconfigurationandcontrol read min-const-pressure 1 1 + ./chip-tool pumpconfigurationandcontrol read min-const-pressure 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read max-const-pressure 1 1 + ./chip-tool pumpconfigurationandcontrol read max-const-pressure 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read min-comp-pressure 1 1 + ./chip-tool pumpconfigurationandcontrol read min-comp-pressure 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read max-comp-pressure 1 1 + ./chip-tool pumpconfigurationandcontrol read max-comp-pressure 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool pumpconfigurationandcontrol read min-const-speed 1 1 @@ -957,40 +962,41 @@ tests: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 + ./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read max-const-flow 1 1 + ./chip-tool pumpconfigurationandcontrol read max-const-flow 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1 + ./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1 + ./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - " ./chip-tool pumpconfigurationandcontrol read pump-status 1 1 + ./chip-tool pumpconfigurationandcontrol read pump-status 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read speed 1 1 + ./chip-tool pumpconfigurationandcontrol read speed 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1 + ./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read power 1 1 + ./chip-tool pumpconfigurationandcontrol read power 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - " ./chip-tool pumpconfigurationandcontrol read lifetime-energy-consumed 1 1 + ./chip-tool pumpconfigurationandcontrol read lifetime-energy-consumed 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - "./chip-tool pumpconfigurationandcontrol read control-mode 1 1 + ./chip-tool pumpconfigurationandcontrol read control-mode 1 1 General error: 0x86 (UNSUPPORTED_ATTRIBUTE) disabled: true - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order." + PICS: PCC.C.AO-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) diff --git a/src/app/tests/suites/certification/Test_TC_PRS_3_1.yaml b/src/app/tests/suites/certification/Test_TC_PRS_3_1_Simulated.yaml similarity index 59% rename from src/app/tests/suites/certification/Test_TC_PRS_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_PRS_3_1_Simulated.yaml index a44028465a834e..776359626600fa 100644 --- a/src/app/tests/suites/certification/Test_TC_PRS_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PRS_3_1_Simulated.yaml @@ -11,9 +11,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 34.3.1. [TC-PRS-3.1] Attributes with client as DUT +name: 34.3.1. [TC-PRS-3.1] Attributes with Client as DUT PICS: - PRS.C @@ -24,142 +23,72 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Pressure Measurement" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order." + - label: "Read attribute: MeasuredValue" PICS: PRS.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - - ./chip-tool pressuremeasurement read measured-value 1 1 - - verify the " measured-value response" on the TH (all-cluster-app) log: - - [1653992317.047323][2347:2347] CHIP:IM: Received Read request - [1653992317.047382][2347:2347] CHIP:DMG: ReadRequestMessage = - [1653992317.047457][2347:2347] CHIP:DMG: { - [1653992317.047480][2347:2347] CHIP:DMG: AttributePathIBs = - [1653992317.047507][2347:2347] CHIP:DMG: [ - [1653992317.047531][2347:2347] CHIP:DMG: AttributePathIB = - [1653992317.047563][2347:2347] CHIP:DMG: { - [1653992317.047592][2347:2347] CHIP:DMG: Endpoint = 0x1, - [1653992317.047657][2347:2347] CHIP:DMG: Cluster = 0x403, - [1653992317.047695][2347:2347] CHIP:DMG: Attribute = 0x0000_0000, - [1653992317.047725][2347:2347] CHIP:DMG: } - [1653992317.047774][2347:2347] CHIP:DMG: - [1653992317.047803][2347:2347] CHIP:DMG: ], - [1653992317.047831][2347:2347] CHIP:DMG: - [1653992317.047859][2347:2347] CHIP:DMG: isFabricFiltered = true, - [1653992317.047884][2347:2347] CHIP:DMG: InteractionModelRevision = 1 - [1653992317.047908][2347:2347] CHIP:DMG: }, - [1653992317.047995][2347:2347] CHIP:DMG: IM RH moving to [GeneratingReports] - - ./chip-tool pressuremeasurement read min-measured-value 1 1 - - verify the " min-measured-value response" on the TH (all-cluster-app) log: - - [1653992385.759474][2347:2347] CHIP:IM: Received Read request - [1653992385.759533][2347:2347] CHIP:DMG: ReadRequestMessage = - [1653992385.759561][2347:2347] CHIP:DMG: { - [1653992385.759584][2347:2347] CHIP:DMG: AttributePathIBs = - [1653992385.759618][2347:2347] CHIP:DMG: [ - [1653992385.759647][2347:2347] CHIP:DMG: AttributePathIB = - [1653992385.759678][2347:2347] CHIP:DMG: { - [1653992385.759745][2347:2347] CHIP:DMG: Endpoint = 0x1, - [1653992385.759781][2347:2347] CHIP:DMG: Cluster = 0x403, - [1653992385.759859][2347:2347] CHIP:DMG: Attribute = 0x0000_0001, - [1653992385.759918][2347:2347] CHIP:DMG: } - [1653992385.759971][2347:2347] CHIP:DMG: - [1653992385.760000][2347:2347] CHIP:DMG: ], - [1653992385.760049][2347:2347] CHIP:DMG: - [1653992385.760100][2347:2347] CHIP:DMG: isFabricFiltered = true, - [1653992385.760125][2347:2347] CHIP:DMG: InteractionModelRevision = 1 - [1653992385.760168][2347:2347] CHIP:DMG: } - + wait: "readAttribute" + attribute: "MeasuredValue" - ./chip-tool pressuremeasurement read max-measured-value 1 1 - - verify the " max-measured-value response" on the TH (all-cluster-app) log: + - label: "Read attribute: MinMeasuredValue" + PICS: PRS.C.AM-READ + wait: "readAttribute" + attribute: "MinMeasuredValue" - [1653992415.580348][2347:2347] CHIP:IM: Received Read request - [1653992415.580414][2347:2347] CHIP:DMG: ReadRequestMessage = - [1653992415.580442][2347:2347] CHIP:DMG: { - [1653992415.580473][2347:2347] CHIP:DMG: AttributePathIBs = - [1653992415.580501][2347:2347] CHIP:DMG: [ - [1653992415.580534][2347:2347] CHIP:DMG: AttributePathIB = - [1653992415.580563][2347:2347] CHIP:DMG: { - [1653992415.580602][2347:2347] CHIP:DMG: Endpoint = 0x1, - [1653992415.580674][2347:2347] CHIP:DMG: Cluster = 0x403, - [1653992415.580713][2347:2347] CHIP:DMG: Attribute = 0x0000_0002, - [1653992415.580746][2347:2347] CHIP:DMG: } - [1653992415.580786][2347:2347] CHIP:DMG: - [1653992415.580812][2347:2347] CHIP:DMG: ], - [1653992415.580852][2347:2347] CHIP:DMG: - [1653992415.580879][2347:2347] CHIP:DMG: isFabricFiltered = true, - [1653992415.580913][2347:2347] CHIP:DMG: InteractionModelRevision = 1 - [1653992415.580936][2347:2347] CHIP:DMG: } - disabled: true + - label: "Read attribute: MaxMeasuredValue" + PICS: PRS.C.AM-READ + wait: "readAttribute" + attribute: "MaxMeasuredValue" - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." + - label: "Read attribute: Tolerance" PICS: PRS.C.AO-READ - verification: | - OPTIONAL ATTRIBUTES ARE NOT IMPLEMENTED IN SDK, If Implemented we will get the expected outcome that is value of below attributes as per Spec - + wait: "readAttribute" + attribute: "Tolerance" - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + - label: "Read attribute: ScaledValue" + PICS: PRS.C.AO-READ + wait: "readAttribute" + attribute: "ScaledValue" - TH receives the read command and knows this attribute for this cluster and provides a plausable value, DUT processes the values and operates normally + - label: "Read attribute: MinScaledValue" + PICS: PRS.C.AO-READ + wait: "readAttribute" + attribute: "MinScaledValue" - ./chip-tool pressuremeasurement read tolerance 1 1 - ./chip-tool pressuremeasurement read scaled-value 1 1 - ./chip-tool pressuremeasurement read min-scaled-value 1 1 - ./chip-tool pressuremeasurement read max-scaled-value 1 1 - ./chip-tool pressuremeasurement read scaled-tolerance 1 1 - ./chip-tool pressuremeasurement read scale 1 1 - disabled: true + - label: "Read attribute: MaxScaledValue" + PICS: PRS.C.AO-READ + wait: "readAttribute" + attribute: "MaxScaledValue" - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order." - PICS: PRS.C.AM-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true + - label: "Read attribute: ScaledTolerance" + PICS: PRS.C.AO-READ + wait: "readAttribute" + attribute: "ScaledTolerance" - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: PRS.C.AO-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true + - label: "Read attribute: Scale" + PICS: PRS.C.AO-READ + wait: "readAttribute" + attribute: "Scale" - label: "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again." - PICS: "" + AttributeList.Commission DUT to TH again." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) TH receives the read command and knows this attribute for this cluster and provides a plausable value, DUT processes the values and operates normally - ./chip-tool pressuremeasurement read feature-map 1 1 + verify the " feature-map response" on the TH (all-cluster-minimal-app) log: [1678873303.474810][348369:348369] CHIP:EM: Handling via exchange: 59017r, Delegate: 0x55713c07aca8 @@ -184,7 +113,8 @@ tests: [1678873303.475045][348369:348369] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 [1678873303.475054][348369:348369] CHIP:DMG: Cluster 403, Attribute fffc is dirty - ./chip-tool pressuremeasurement read attribute-list 1 1 + ./chip-tool pressuremeasurement read attribute-list 1 1 + verify the " attribute-list response" on the TH (all-cluster-minimal-app) log: [1659606175.282588][7312:7312] CHIP:EM: Handling via exchange: 12368r, Delegate: 0xaaaaad2c4f68 @@ -213,7 +143,7 @@ tests: - ./chip-tool pressuremeasurement read measured-value 1 1 + ./chip-tool pressuremeasurement read measured-value 1 1 verify the " measured-value response" on the TH (all-cluster-minimal-app) log: @@ -280,12 +210,19 @@ tests: [1653992415.580879][2347:2347] CHIP:DMG: isFabricFiltered = true, [1653992415.580913][2347:2347] CHIP:DMG: InteractionModelRevision = 1 [1653992415.580936][2347:2347] CHIP:DMG: }," - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." - PICS: PRS.C.AO-READ + a manufacturer specific order" verification: | TH all-clusters-minimal-app does not support optional attributes, if implemted we will get "General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" as output when we read following attributes. @@ -301,12 +238,27 @@ tests: ./chip-tool pressuremeasurement read max-scaled-value 1 1 ./chip-tool pressuremeasurement read scaled-tolerance 1 1 ./chip-tool pressuremeasurement read scale 1 1 - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && PRS.C.AO-READ + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: PRS.C.AO-WRITE + the TH one at a time in a manufacturer specific order" verification: | - This cluster doesn"t have any writable attributes - disabled: true + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml b/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml index e062f6193adbed..9c89a92ef08ba4 100644 --- a/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml @@ -51,7 +51,7 @@ tests: - label: "TH reads the Order attribute from Power Source Cluster at - Enpoint[eNr] of the DUT" + Endpoint[eNr] of the DUT" verification: | ./chip-tool powersource read order 1 2 diff --git a/src/app/tests/suites/certification/Test_TC_PSCFG_3_1.yaml b/src/app/tests/suites/certification/Test_TC_PSCFG_3_1_Simulated.yaml similarity index 62% rename from src/app/tests/suites/certification/Test_TC_PSCFG_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_PSCFG_3_1_Simulated.yaml index b6ce480ddcecd4..10e2c6d945ee2e 100644 --- a/src/app/tests/suites/certification/Test_TC_PSCFG_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PSCFG_3_1_Simulated.yaml @@ -11,7 +11,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: 65.3.1. [TC-PSCFG-3.1] Attributes with client as DUT @@ -24,72 +23,18 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Power Source Configuration" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order." + - label: "Read attribute: Sources" PICS: PSCFG.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool powersourceconfiguration read sources 1 0 - - verify the " sources response" on the TH (all-cluster-app) log: - - [1650881032.387446][2715:2715] CHIP:IM: Received Read request - [1650881032.387500][2715:2715] CHIP:DMG: ReadRequestMessage = - [1650881032.387527][2715:2715] CHIP:DMG: { - [1650881032.387549][2715:2715] CHIP:DMG: AttributePathIBs = - [1650881032.387578][2715:2715] CHIP:DMG: [ - [1650881032.387602][2715:2715] CHIP:DMG: AttributePathIB = - [1650881032.387629][2715:2715] CHIP:DMG: { - [1650881032.387657][2715:2715] CHIP:DMG: Endpoint = 0x0, - [1650881032.387690][2715:2715] CHIP:DMG: Cluster = 0x2e, - [1650881032.387722][2715:2715] CHIP:DMG: Attribute = 0x0000_0000, - [1650881032.387750][2715:2715] CHIP:DMG: } - [1650881032.387781][2715:2715] CHIP:DMG: - [1650881032.387807][2715:2715] CHIP:DMG: ], - [1650881032.387836][2715:2715] CHIP:DMG: - [1650881032.387862][2715:2715] CHIP:DMG: isFabricFiltered = true, - [1650881032.387887][2715:2715] CHIP:DMG: InteractionModelRevision = 1 - [1650881032.387910][2715:2715] CHIP:DMG: }, - [1650881032.387979][2715:2715] CHIP:DMG: IM RH moving to [GeneratingReports] - [1650881032.388058][2715:2715] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1650881032.388087][2715:2715] CHIP:DMG: Cluster 2e, Attribute 0 is dirty - [1650881032.388109][2715:2715] CHIP:DMG: Reading attribute: Cluster=0x0000_002E Endpoint=0 AttributeId=0x0000_0000 (expanded=0) - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." - PICS: PSCFG.C.AO-READ - verification: | - This cluster doesn"t have any optional attribute - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order." - PICS: PSCFG.C.AM-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: PSCFG.C.AO-WRITE - verification: | - This cluster doesn"t have any optional attribute - disabled: true + wait: "readAttribute" + attribute: "Sources" - label: "Configure TH such that it implements mandatory and none of the @@ -148,7 +93,6 @@ tests: [1676551043.650269][58234:58234] CHIP:DMG: }, - ./chip-tool powersourceconfiguration read sources 1 0 verify the " sources response" on the TH (all-cluster-minimal-app) log: @@ -174,20 +118,42 @@ tests: [1650881032.388058][2715:2715] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 [1650881032.388087][2715:2715] CHIP:DMG: Cluster 2e, Attribute 0 is dirty [1650881032.388109][2715:2715] CHIP:DMG: Reading attribute: Cluster=0x0000_002E Endpoint=0 AttributeId=0x0000_0000 (expanded=0) - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." - PICS: PSCFG.C.AO-READ + a manufacturer specific order" verification: | - This cluster doesn"t have any optional attribute - disabled: true + This cluster doesn't have any optional attribute + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: PSCFG.C.AO-WRITE + the TH one at a time in a manufacturer specific order" verification: | - This cluster doesn"t have any writable attributes - disabled: true + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_PS_3_1.yaml b/src/app/tests/suites/certification/Test_TC_PS_3_1_Simulated.yaml similarity index 50% rename from src/app/tests/suites/certification/Test_TC_PS_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_PS_3_1_Simulated.yaml index cc4b9b2cba3727..2c0f0e34f7a79d 100644 --- a/src/app/tests/suites/certification/Test_TC_PS_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PS_3_1_Simulated.yaml @@ -11,7 +11,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: 62.3.1. [TC-PS-3.1] Attributes with client as DUT @@ -24,334 +23,143 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Power Source" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" - PICS: PS.C.AM-READ - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool powersource read status 1 1 - - verify the " status response" on the TH (all-cluster-app) log: - - - [1646155382.977445][33190:33190] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:685127 on exchange 16568r - [1646155382.977534][33190:33190] CHIP:EM: Handling via exchange: 16568r, Delegate: 0xaaaace1730c8 - [1646155382.978021][33190:33190] CHIP:IM: Received Read request - [1646155382.978109][33190:33190] CHIP:DMG: ReadRequestMessage = - [1646155382.978143][33190:33190] CHIP:DMG: { - [1646155382.978167][33190:33190] CHIP:DMG: AttributePathIBs = - [1646155382.978204][33190:33190] CHIP:DMG: [ - [1646155382.978309][33190:33190] CHIP:DMG: AttributePathIB = - [1646155382.978369][33190:33190] CHIP:DMG: { - [1646155382.978408][33190:33190] CHIP:DMG: Endpoint = 0x1, - [1646155382.978459][33190:33190] CHIP:DMG: Cluster = 0x2f, - [1646155382.978513][33190:33190] CHIP:DMG: Attribute = 0x0000_0000, - [1646155382.978545][33190:33190] CHIP:DMG: } - [1646155382.978767][33190:33190] CHIP:DMG: - [1646155382.978804][33190:33190] CHIP:DMG: ], - [1646155382.978836][33190:33190] CHIP:DMG: - [1646155382.978872][33190:33190] CHIP:DMG: isFabricFiltered = false, - [1646155382.978901][33190:33190] CHIP:DMG: InteractionModelRevision = 1 - [1646155382.978927][33190:33190] CHIP:DMG: }, - [1646155382.978998][33190:33190] CHIP:DMG: IM RH moving to [GeneratingReports] - [1646155382.979658][33190:33190] CHIP:DMG: Cluster 2f, Attribute 0 is dirty - [1646155382.979729][33190:33190] CHIP:DMG: Reading attribute: Cluster=0x0000_002F Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1646155382.979764][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002F e=1 p=v - [1646010346.974150][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=v - - ./chip-tool powersource read order 1 1 - - verify the " order response" on the TH (all-cluster-app) log: - - [1653395573.862606][19412:19412] CHIP:IM: Received Read request - [1653395573.862690][19412:19412] CHIP:DMG: ReadRequestMessage = - [1653395573.862739][19412:19412] CHIP:DMG: { - [1653395573.862779][19412:19412] CHIP:DMG: AttributePathIBs = - [1653395573.862827][19412:19412] CHIP:DMG: [ - [1653395573.862872][19412:19412] CHIP:DMG: AttributePathIB = - [1653395573.862928][19412:19412] CHIP:DMG: { - [1653395573.862980][19412:19412] CHIP:DMG: Endpoint = 0x1, - [1653395573.863037][19412:19412] CHIP:DMG: Cluster = 0x2f, - [1653395573.863101][19412:19412] CHIP:DMG: Attribute = 0x0000_0001, - [1653395573.863161][19412:19412] CHIP:DMG: } - [1653395573.863217][19412:19412] CHIP:DMG: - [1653395573.863267][19412:19412] CHIP:DMG: ], - [1653395573.863319][19412:19412] CHIP:DMG: - [1653395573.863367][19412:19412] CHIP:DMG: isFabricFiltered = true, - [1653395573.863413][19412:19412] CHIP:DMG: InteractionModelRevision = 1 - [1653395573.863456][19412:19412] CHIP:DMG: }, - [1653395573.863589][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports] - [1653395573.863720][19412:19412] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 - - ./chip-tool powersource read description 1 1 - - verify the " description response" on the TH (all-cluster-app) log: - - CHIP:IM: Received Read request - [1653395620.020314][19412:19412] CHIP:DMG: ReadRequestMessage = - [1653395620.020364][19412:19412] CHIP:DMG: { - [1653395620.020406][19412:19412] CHIP:DMG: AttributePathIBs = - [1653395620.020463][19412:19412] CHIP:DMG: [ - [1653395620.020511][19412:19412] CHIP:DMG: AttributePathIB = - [1653395620.020576][19412:19412] CHIP:DMG: { - [1653395620.020635][19412:19412] CHIP:DMG: Endpoint = 0x1, - [1653395620.020703][19412:19412] CHIP:DMG: Cluster = 0x2f, - [1653395620.020770][19412:19412] CHIP:DMG: Attribute = 0x0000_0002, - [1653395620.020833][19412:19412] CHIP:DMG: } - [1653395620.020893][19412:19412] CHIP:DMG: - [1653395620.020945][19412:19412] CHIP:DMG: ], - [1653395620.020999][19412:19412] CHIP:DMG: - [1653395620.021052][19412:19412] CHIP:DMG: isFabricFiltered = true, - [1653395620.021104][19412:19412] CHIP:DMG: InteractionModelRevision = 1 - [1653395620.021153][19412:19412] CHIP:DMG: }, - [1653395620.021252][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports] - - - ./chip-tool powersource read bat-charge-level 1 1 - - Verify the ReadRequestMessage on TH(all-clusters-app) log) - - [1663140804.059599][2414:2414] CHIP:IM: Received Read request - [1663140804.059679][2414:2414] CHIP:DMG: ReadRequestMessage = - [1663140804.059706][2414:2414] CHIP:DMG: { - [1663140804.059728][2414:2414] CHIP:DMG: AttributePathIBs = - [1663140804.059754][2414:2414] CHIP:DMG: [ - [1663140804.059779][2414:2414] CHIP:DMG: AttributePathIB = - [1663140804.059828][2414:2414] CHIP:DMG: { - [1663140804.059861][2414:2414] CHIP:DMG: Endpoint = 0x1, - [1663140804.059913][2414:2414] CHIP:DMG: Cluster = 0x2f, - [1663140804.059946][2414:2414] CHIP:DMG: Attribute = 0x0000_000E, - [1663140804.059976][2414:2414] CHIP:DMG: } - [1663140804.060006][2414:2414] CHIP:DMG: - [1663140804.060033][2414:2414] CHIP:DMG: ], - [1663140804.060060][2414:2414] CHIP:DMG: - [1663140804.060087][2414:2414] CHIP:DMG: isFabricFiltered = true, - [1663140804.060111][2414:2414] CHIP:DMG: InteractionModelRevision = 1 - [1663140804.060136][2414:2414] CHIP:DMG: }, + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" + - label: "Read attribute: Status" + wait: "readAttribute" + attribute: "Status" - ./chip-tool powersource read bat-replacement-needed 1 1 + - label: "Read attribute: Order" + wait: "readAttribute" + attribute: "Order" - Verify the ReadRequestMessage on TH(all-clusters-app) log) + - label: "Read attribute: Description" + wait: "readAttribute" + attribute: "Description" - [1663141268.348233][2414:2414] CHIP:IM: Received Read request - [1663141268.348332][2414:2414] CHIP:DMG: ReadRequestMessage = - [1663141268.348388][2414:2414] CHIP:DMG: { - [1663141268.348418][2414:2414] CHIP:DMG: AttributePathIBs = - [1663141268.348465][2414:2414] CHIP:DMG: [ - [1663141268.348498][2414:2414] CHIP:DMG: AttributePathIB = - [1663141268.348545][2414:2414] CHIP:DMG: { - [1663141268.348584][2414:2414] CHIP:DMG: Endpoint = 0x1, - [1663141268.348637][2414:2414] CHIP:DMG: Cluster = 0x2f, - [1663141268.348685][2414:2414] CHIP:DMG: Attribute = 0x0000_000F, - [1663141268.348735][2414:2414] CHIP:DMG: } - [1663141268.348774][2414:2414] CHIP:DMG: - [1663141268.348820][2414:2414] CHIP:DMG: ], - [1663141268.348857][2414:2414] CHIP:DMG: - [1663141268.348904][2414:2414] CHIP:DMG: isFabricFiltered = true, - [1663141268.348938][2414:2414] CHIP:DMG: InteractionModelRevision = 1 - [1663141268.348982][2414:2414] CHIP:DMG: }, - [1663141268.349086][2414:2414] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663141268.349214][2414:2414] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1663141268.349251][2414:2414] CHIP:DMG: Cluster 2f, Attribute f is dirty + - label: "Read attribute: WiredAssessedInputVoltage" + wait: "readAttribute" + attribute: "WiredAssessedInputVoltage" + - label: "Read attribute: WiredAssessedInputFrequency" + wait: "readAttribute" + attribute: "WiredAssessedInputFrequency" - ./chip-tool powersource read bat-replaceability 1 1 + - label: "Read attribute: WiredCurrentType" + wait: "readAttribute" + attribute: "WiredCurrentType" - Verify the ReadRequestMessage on TH(all-clusters-app) log + - label: "Read attribute: WiredAssessedCurrent" + wait: "readAttribute" + attribute: "WiredAssessedCurrent" + - label: "Read attribute: WiredNominalVoltage" + wait: "readAttribute" + attribute: "WiredNominalVoltage" - [1663141378.115928][2414:2414] CHIP:DMG: ReadRequestMessage = - [1663141378.115978][2414:2414] CHIP:DMG: { - [1663141378.116006][2414:2414] CHIP:DMG: AttributePathIBs = - [1663141378.116050][2414:2414] CHIP:DMG: [ - [1663141378.116080][2414:2414] CHIP:DMG: AttributePathIB = - [1663141378.116124][2414:2414] CHIP:DMG: { - [1663141378.116160][2414:2414] CHIP:DMG: Endpoint = 0x1, - [1663141378.116208][2414:2414] CHIP:DMG: Cluster = 0x2f, - [1663141378.116247][2414:2414] CHIP:DMG: Attribute = 0x0000_0010, - [1663141378.116294][2414:2414] CHIP:DMG: } - [1663141378.116330][2414:2414] CHIP:DMG: - [1663141378.116372][2414:2414] CHIP:DMG: ], - [1663141378.116407][2414:2414] CHIP:DMG: - [1663141378.116450][2414:2414] CHIP:DMG: isFabricFiltered = true, - [1663141378.116481][2414:2414] CHIP:DMG: InteractionModelRevision = 1 - [1663141378.116521][2414:2414] CHIP:DMG: }, - [1663141378.116621][2414:2414] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true + - label: "Read attribute: WiredPresent" + wait: "readAttribute" + attribute: "WiredPresent" - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - PICS: PS.C.AO-READ - verification: | - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE - - - ./chip-tool powersource read wired-assessed-input-voltage 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - - - ./chip-tool powersource read wired-assessed-input-frequency 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - - ./chip-tool powersource read wired-current-type 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - - ./chip-tool powersource read wired-assessed-current 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - - ./chip-tool powersource read wired-nominal-voltage 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - - ./chip-tool powersource read wired-maximum-current 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - - ./chip-tool powersource read wired-present 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - - ./chip-tool powersource read active-wired-faults 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - - ./chip-tool powersource read bat-voltage 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - - ./chip-tool powersource read bat-percent-remaining 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - - ./chip-tool powersource read bat-time-remaining 1 1 + - label: "Read attribute: WiredMaximumCurrent" + wait: "readAttribute" + attribute: "WiredMaximumCurrent" - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + - label: "Read attribute: ActiveWiredFaults" + wait: "readAttribute" + attribute: "ActiveWiredFaults" - ./chip-tool powersource read bat-present 1 1 + - label: "Read attribute: BatVoltage" + wait: "readAttribute" + attribute: "BatVoltage" - Verify on the TH Log: + - label: "Read attribute: BatPercentRemaining" + wait: "readAttribute" + attribute: "BatPercentRemaining" - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + - label: "Read attribute: BatTimeRemaining" + wait: "readAttribute" + attribute: "BatTimeRemaining" - ./chip-tool powersource read active-bat-faults 1 1 + - label: "Read attribute: BatChargeLevel" + wait: "readAttribute" + attribute: "BatChargeLevel" - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + - label: "Read attribute: BatReplacementNeeded" + wait: "readAttribute" + attribute: "BatReplacementNeeded" - ./chip-tool powersource read bat-replacement-description 1 1 + - label: "Read attribute: BatReplaceability" + wait: "readAttribute" + attribute: "BatReplaceability" - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + - label: "Read attribute: BatPresent" + wait: "readAttribute" + attribute: "BatPresent" - ./chip-tool powersource read bat-common-designation 1 1 + - label: "Read attribute: ActiveBatFaults" + wait: "readAttribute" + attribute: "ActiveBatFaults" - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + - label: "Read attribute: BatReplacementDescription" + wait: "readAttribute" + attribute: "BatReplacementDescription" - ./chip-tool powersource read bat-ansidesignation 1 1 + - label: "Read attribute: BatCommonDesignation" + wait: "readAttribute" + attribute: "BatCommonDesignation" - Verify on the TH Log: + - label: "Read attribute: BatANSIDesignation" + wait: "readAttribute" + attribute: "BatANSIDesignation" - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + - label: "Read attribute: BatIECDesignation" + wait: "readAttribute" + attribute: "BatIECDesignation" - ./chip-tool powersource read bat-iecdesignation 1 1 + - label: "Read attribute: BatApprovedChemistry" + wait: "readAttribute" + attribute: "BatApprovedChemistry" - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + - label: "Read attribute: BatCapacity" + wait: "readAttribute" + attribute: "BatCapacity" - ./chip-tool powersource read bat-approved-chemistry 1 1 + - label: "Read attribute: BatQuantity" + wait: "readAttribute" + attribute: "BatQuantity" - Verify on the TH Log: + - label: "Read attribute: BatChargeState" + wait: "readAttribute" + attribute: "BatChargeState" - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + - label: "Read attribute: BatTimeToFullCharge" + wait: "readAttribute" + attribute: "BatTimeToFullCharge" - ./chip-tool powersource read bat-capacity 1 1 + - label: "Read attribute: BatFunctionalWhileCharging" + wait: "readAttribute" + attribute: "BatFunctionalWhileCharging" - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + - label: "Read attribute: BatChargingCurrent" + wait: "readAttribute" + attribute: "BatChargingCurrent" - - ./chip-tool powersource read bat-quantity 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " - - ./chip-tool powersource read bat-charge-state 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " - - ./chip-tool powersource read bat-time-to-full-charge 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " - - ./chip-tool powersource read bat-functional-while-charging 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " - - ./chip-tool powersource read bat-charging-current 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " - - ./chip-tool powersource read active-bat-charge-faults 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - PICS: PS.C.AM-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - PICS: PS.C.AO-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true + - label: "Read attribute: ActiveBatChargeFaults" + wait: "readAttribute" + attribute: "ActiveBatChargeFaults" - label: "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission DUT to TH again" - PICS: "" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -549,12 +357,19 @@ tests: [1663141378.116481][2414:2414] CHIP:DMG: InteractionModelRevision = 1 [1663141378.116521][2414:2414] CHIP:DMG: }, [1663141378.116621][2414:2414] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" - PICS: PS.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -579,12 +394,27 @@ tests: on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && PS.C.AO-READ + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" - PICS: PS.C.AO-WRITE verification: | This cluster doesn"t have any writable attributes - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && PS.C.AO-WRITE + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml index cd574fa13efd72..8b3e7a82c9ac4f 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml @@ -71,11 +71,11 @@ tests: - label: "Check DNS-SD subtypes used by DUT" PICS: - MCORE.COM.WIFI && MCORE.COM.ETH && MCORE.COM.THR && + " MCORE.COM.WIFI && MCORE.COM.ETH && MCORE.COM.THR && MCORE.SC.VENDOR_SUBTYPE && MCORE.SC.DEVTYPE_SUBTYPE && MCORE.SC.VP_KEY && MCORE.SC.SII_OP_DISCOVERY_KEY && MCORE.SC.SAI_OP_DISCOVERY_KEY && - MCORE.SC.DT_KEY&& MCORE.SC.DN_KEY && MCORE.SC.RI_KEY && - MCORE.SC.PH_KEY && MCORE.SC.PI_KEY + MCORE.SC.DT_KEY && MCORE.SC.DN_KEY && MCORE.SC.RI_KEY && + MCORE.SC.PH_KEY && MCORE.SC.PI_KEY " verification: | Run the below commands within the mentioned time interval used in open-commissioning-window in step-1. Run the below avahi browse command in the TH terminal @@ -85,7 +85,7 @@ tests: ubuntu@ubuntu:~$ avahi-browse -rt _matterc._udp - Verify the device is advertising _matterc._udp service like below output in TH terminal Log: (Verify for the DUT"s actual values (like vendor ID, PID ..etc) as mentioned in the expected outcome of the test plan, The below log contains the data from the reference raspi accessory) + Verify the device is advertising _matterc._udp service like below output in TH terminal Log: (Verify for the DUT's actual values (like vendor ID, PID ..etc) as mentioned in the expected outcome of the test plan, The below log contains the data from the reference raspi accessory) + wlan0 IPv6 5A4E867284D08B13 _matterc._udp local @@ -165,11 +165,11 @@ tests: - label: "Check DNS-SD subtypes used by DUT" PICS: - MCORE.COM.WIFI && MCORE.COM.ETH && MCORE.COM.THR && + " MCORE.COM.WIFI && MCORE.COM.ETH && MCORE.COM.THR && MCORE.SC.VENDOR_SUBTYPE && MCORE.SC.DEVTYPE_SUBTYPE && MCORE.SC.VP_KEY && MCORE.SC.SII_OP_DISCOVERY_KEY && MCORE.SC.SAI_OP_DISCOVERY_KEY && MCORE.SC.DT_KEY && MCORE.SC.DN_KEY && MCORE.SC.RI_KEY && - MCORE.SC.PH_KEY && MCORE.SC.PI_KEY + MCORE.SC.PH_KEY && MCORE.SC.PI_KEY " verification: | Run the below avahi browse command in TH terminal @@ -258,11 +258,11 @@ tests: - label: "Check DNS-SD subtypes used by DUT" PICS: - MCORE.COM.WIFI && MCORE.COM.ETH && MCORE.COM.THR && + " MCORE.COM.WIFI && MCORE.COM.ETH && MCORE.COM.THR && MCORE.SC.VENDOR_SUBTYPE && MCORE.SC.DEVTYPE_SUBTYPE && MCORE.SC.VP_KEY && MCORE.SC.SII_OP_DISCOVERY_KEY && MCORE.SC.SAI_OP_DISCOVERY_KEY && MCORE.SC.DT_KEY && MCORE.SC.DN_KEY && MCORE.SC.RI_KEY && - MCORE.SC.PH_KEY && MCORE.SC.PI_KEY + MCORE.SC.PH_KEY && MCORE.SC.PI_KEY " verification: | Same verification steps as Step 3, Except Verify CM flag value to be 2 @@ -304,16 +304,17 @@ tests: - label: "If (MCORE.SC.EXTENDED_DISCOVERY ) check DNS-SD subtypes used by DUT" PICS: - MCORE.SC.EXTENDED_DISCOVERY && MCORE.COM.WIFI && MCORE.COM.ETH && + " MCORE.SC.EXTENDED_DISCOVERY && MCORE.COM.WIFI && MCORE.COM.ETH && MCORE.COM.THR && MCORE.SC.VENDOR_SUBTYPE && MCORE.SC.DEVTYPE_SUBTYPE && MCORE.SC.VP_KEY && MCORE.SC.SII_OP_DISCOVERY_KEY && MCORE.SC.SAI_OP_DISCOVERY_KEY && MCORE.SC.DT_KEY && MCORE.SC.DN_KEY && - MCORE.SC.RI_KEY && MCORE.SC.PH_KEY && MCORE.SC.PI_KEY + MCORE.SC.RI_KEY && MCORE.SC.PH_KEY && MCORE.SC.PI_KEY " verification: | - Run and Verify on the below output in TH terminal Log: (Below is the sample log , as RPI doesn"t support the extended discovery) + Run and Verify on the below output in TH terminal Log: (Below is the sample log , as RPI doesn't support the extended discovery) Verify the CM flag value is 0 avahi-browse -rt _matterc._udp + + eth0 IPv6 DD200C20D25AE5F7 _matterc._udp local + eth0 IPv4 DD200C20D25AE5F7 _matterc._udp local = eth0 IPv6 DD200C20D25AE5F7 _matterc._udp local diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_2.yaml index a530c5dc01ba82..49f962ae6e7d0f 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_2.yaml @@ -38,7 +38,7 @@ tests: Run the unknown key/value pair on second TH Terminal with the same discriminator as the one in the first teminal: avahi-publish-service --subtype=_S3._sub._matterc._udp --subtype=_L840._sub._matterc._udp DD200C20D25AE5F7 --subtype=_CM._sub._matterc._udp _matterc._udp 11111 D=3840 CM=1 INVALID_TEST=40 SII=5000 SAI=300 PH=36 PI= VP=65521+3276 T=1 - Established under name "DD200C20D25AE5F7" + Established under name 'DD200C20D25AE5F7' disabled: true - label: "DUT attempts to commission TH" @@ -69,9 +69,9 @@ tests: [1661234862.488290][2599:2604] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 [1661234862.488362][2599:2604] CHIP:CTL: Received CommissioningComplete response, errorCode=0 - [1661234862.488421][2599:2604] CHIP:CTL: Successfully finished commissioning step "SendComplete" - [1661234862.488467][2599:2604] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup" - [1661234862.488521][2599:2604] CHIP:CTL: Performing next commissioning step "Cleanup" - [1661234862.488624][2599:2604] CHIP:CTL: Successfully finished commissioning step "Cleanup" + [1661234862.488421][2599:2604] CHIP:CTL: Successfully finished commissioning step 'SendComplete' + [1661234862.488467][2599:2604] CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1661234862.488521][2599:2604] CHIP:CTL: Performing next commissioning step 'Cleanup' + [1661234862.488624][2599:2604] CHIP:CTL: Successfully finished commissioning step 'Cleanup' [1661234862.488684][2599:2604] CHIP:TOO: Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml index 9780c59ef2f39e..43dfe03bc46693 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml @@ -46,6 +46,10 @@ tests: Filter the node ID and identify the Compressed Fabric ID from the above command. eth0 IPv6 8840D142C33AB653-0000000000000001 _matter._tcp local + + on first controller open a commissioning window using below command (In TH2) + + ./chip-tool pairing open-commissioning-window 2 1 400 2000 3840 (Save the manualcode for 2nd Provision) disabled: true - label: "Commission TH2 to DUTs Fabric" @@ -54,9 +58,7 @@ tests: Below is the example when using chip tool as controller - ./chip-tool pairing ble-wifi 1 chipsetup4 matter123 20202021 3841 - - + ./chip-tool pairing code 2 mannualcode(take the manualcodefrom step 1) avahi-browse _matter._tcp -rt diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_9.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_9.yaml index 7cf2cfc0e2eb4f..4be6dd5f419f57 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_9.yaml @@ -38,10 +38,10 @@ tests: verification: | Build openthread POSIX cli app with RCP and have it join the thread network that the BR is part of. - If you don"t have the app, follow the below "Instructions to build the POSIX app" + If you don't have the app, follow the below "Instructions to build the POSIX app" if you have the RCP connected to the raspi, launch the ot-cli app with RCP - $ sudo ./build/posix/src/posix/ot-cli "spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200" -v + $ sudo ./build/posix/src/posix/ot-cli 'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200' -v ./build/posix/src/posix/ot-cli[68007]: Running OPENTHREAD/thread-reference-20200818-1820-g095f530bd; POSIX; Jul 18 2022 22:44:35 ./build/posix/src/posix/ot-cli[68007]: Thread version: 4 ./build/posix/src/posix/ot-cli[68007]: Thread interface: @@ -65,7 +65,7 @@ tests: 6. ./bootstrap 7. ./script/cmake-build posix 8. follow the instructions to build the RCP dongle (or get the RCP image from README file in the test harness and flash it on the RCP) - 8. ./build/posix/src/posix/ot-cli "spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200" -v + 8. ./build/posix/src/posix/ot-cli 'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200' -v disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml index ad43a0c9db46c8..1eed00b2831f54 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml @@ -220,7 +220,7 @@ tests: - label: "TH binds GroupId to GroupKeySet" verification: | - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": "0x0103", "groupKeySetID": "0x01a3", "fabricIndex": 1}]' 1 0 + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": "0x0103", "groupKeySetID": "0x01a3", "fabricIndex": 1},{"groupId": "0x0101", "groupKeySetID": "0x01a3", "fabricIndex": 1}]' 1 0 Verify DUT sends SUCCESS(0x00) response on TH(chip-tool) Logs: @@ -359,6 +359,7 @@ tests: - label: "TH removes the GroupKeySet" cluster: "Group Key Management" + PICS: PICS_SDK_CI_ONLY endpoint: 0 command: "KeySetRemove" arguments: diff --git a/src/app/tests/suites/certification/Test_TC_SC_5_3.yaml b/src/app/tests/suites/certification/Test_TC_SC_5_3.yaml index 6d1cfc5248fac1..4827111fe1685a 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_5_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_5_3.yaml @@ -119,6 +119,6 @@ tests: Verify the Multicast address follows the format "FF35:0040:FD00: and UDP port is 5540 on DUT(chip-tool)log <<< [E:15304i M:15000] (G) Msg TX to 1:FFFFFFFFFFFF0001 [D5AE] --- Type 0001:08 (IM:InvokeCommandRequest) - [1670395515.064662][14427:14429] CHIP:IN: (G) Sending msg 15000 to Multicast IPV6 address "UDP:[ff35:40:fd00::100:1]:5540" + [1670395515.064662][14427:14429] CHIP:IN: (G) Sending msg 15000 to Multicast IPV6 address 'UDP:[ff35:40:fd00::100:1]:5540' [1670395515.067533][14427:14429] CHIP:IN: Interface eth0 has a link local address disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml index 18e8da4e8c569d..3c369674678d3c 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_6_1.yaml @@ -19,6 +19,7 @@ name: PICS: - MCORE.ROLE.COMMISSIONER + - GRPKEY.C config: nodeId: 0x12344321 @@ -33,6 +34,7 @@ tests: - label: "Precondition" verification: | + Group Member is commissioned with Admin TH supports Groups Cluster and Onoff Cluster Execute this step before executing the test steps. ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 1 0 @@ -82,16 +84,16 @@ tests: and GroupKeySetID. Admin sets GroupKeySecurityPolicy = TrustFirst (1) GroupKeyMulticastPolicy = PerGroupID (0) EpochStartTime0 = 0" verification: | - ./chip-tool groupkeymanagement key-set-write "{"groupKeySetID": 42, + ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, "groupKeySecurityPolicy": 0, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": - "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }" 1 0 + "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 disabled: true - label: "DUT sends KeySetWrite command to GroupKeyManagement cluster to TH on - PIXIT.G.ENDPOINT" + EP0" PICS: GRPKEY.C.C00.Tx verification: | Verify TH recieves KeySetWrite command on TH(Reference app)log: @@ -144,11 +146,11 @@ tests: disabled: true - label: - "DUT binds GroupId with GroupKeySetID in the GroupKeyMap attribute + "DUT binds GroupID with GroupKeySetID in the GroupKeyMap attribute list on GroupKeyManagement cluster" PICS: GRPKEY.C.A0000 verification: | - ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]" 1 0 + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]' 1 0 Verify TH recieves GroupKeyMap attribute on TH(Reference app)log: @@ -202,7 +204,7 @@ tests: [1659350562.022661][5824:5824] CHIP:DMG: AccessControl: allowed disabled: true - - label: "DUT sends AddGroup Command to TH on PIXIT.G.ENDPOINT" + - label: "DUT sends AddGroup Command to TH on EP0" PICS: G.C.C00.Tx verification: | ./chip-tool groups add-group 0x0001 grp1 1 0 @@ -244,7 +246,7 @@ tests: - label: "DUT sends ViewGroup command with the GroupID and GroupName to the - Group cluster on the TH on PIXIT.G.ENDPOINT" + Group cluster on the TH on EP0" PICS: G.C.C01.Tx verification: | ./chip-tool groups view-group 0x0001 1 0 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 da577b7b496696..bfc2d01eb5e6d5 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 @@ -51,7 +51,7 @@ tests: verification: | ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 1, "providerNodeID": 3735928559, "endpoint": 0}]' 0x0000001234567890 0 - ./chip-tool otasoftwareupdaterequestor write default-ota-providers '[{"fabricIndex": 2, "providerNodeID": 1, "endpoint": 0}]' 0x858 0 --commissioner-name beta + ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 2, "providerNodeID": 1, "endpoint": 0}]' 0x858 0 --commissioner-name beta Kill Default OTA Provider for fabric index 1 before DUT sends a query diff --git a/src/app/tests/suites/certification/Test_TC_SU_3_3.yaml b/src/app/tests/suites/certification/Test_TC_SU_3_3.yaml index bdc707b7aff830..82ca0138375e5a 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_3_3.yaml @@ -86,7 +86,7 @@ tests: transfer before it completely transfers the image. Wait for the Idle timeout. Initiate another QueryImage Command from OTA-R/TH to the DUT." verification: | - ./chip-tool otasoftwareupdaterequestor announce-ota-provider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID diff --git a/src/app/tests/suites/certification/Test_TC_SU_4_1.yaml b/src/app/tests/suites/certification/Test_TC_SU_4_1.yaml index e21a0b856c660a..790e34dfc08ec4 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_4_1.yaml @@ -29,7 +29,7 @@ tests: first fabric to the DUT. TH2 is set as the default Provider for the fabric." verification: | - ./chip-tool otasoftwareupdaterequestor write default-otaproviders "[{"fabricIndex": 1, "providerNodeID": 3735928559, "endpoint": 0}]" 0x0000001234567890 0 + ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 1, "providerNodeID": 3735928559, "endpoint": 0}]' 0x0000001234567890 0 verify success response on chip-tool logs: @@ -98,7 +98,7 @@ tests: fabric. TH sends a read request to read the DefaultOTAProviders Attribute on the first and second fabric to the DUT." verification: | - ./chip-tool otasoftwareupdaterequestor write default-otaproviders "[{"fabricIndex": 1, "providerNodeID": 10, "endpoint": 0}, {"fabricIndex": 1, "providerNodeID": 20, "endpoint": 0}]" 0x0000001234567890 0 + ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 1, "providerNodeID": 10, "endpoint": 0}, {"fabricIndex": 1, "providerNodeID": 20, "endpoint": 0}]' 0x0000001234567890 0 verify Constraint_Error on chip-tool logs: @@ -133,7 +133,7 @@ tests: read request to read the DefaultOTAProviders Attribute on the first and second fabric to the DUT." verification: | - ./chip-tool otasoftwareupdaterequestor write default-otaproviders "[]" 0x858 0 --commissioner-name beta + ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[]' 0x858 0 --commissioner-name beta verify the Success response on chip-tool logs: diff --git a/src/app/tests/suites/certification/Test_TC_SU_4_2.yaml b/src/app/tests/suites/certification/Test_TC_SU_4_2.yaml index 0691efc389df02..a8d453f38b8ca0 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_4_2.yaml @@ -31,7 +31,7 @@ tests: verification: | Verify that the OTA Requestor App receives the write command and does not reject the value as invalid. - ./chip-tool otasoftwareupdaterequestor write default-otaproviders "[{"fabricIndex": 1, "providerNodeID": 123, "endpoint": 0}]" 321 0 + ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 1, "providerNodeID": 123, "endpoint": 0}]' 321 0 Verify write request for the DefaultOTAProviders attribute on TH [OTA-REQ] Logs: @@ -193,7 +193,7 @@ tests: verification: | Write the acl entry to allow the software update: - ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [321], "targets": null}]" 123 0 + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [321], "targets": null}]' 123 0 Run the announce ota provider command to start the software update and check the UpdateStateProgress 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 08b7587ad43c44..01347878eaf370 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 @@ -128,7 +128,7 @@ tests: switch to next position - Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | - Raspi device doesn"t support more than 2 position ,so this step is not verifiable by using raspi device + Raspi device doesn't support more than 2 position ,so this step is not verifiable by using raspi device echo '{"Name":"SwitchLatched","NewPosition":2}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) @@ -158,7 +158,7 @@ tests: Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | - Raspi device doesn"t support more than 2 position ,so this step is not verifiable by using raspi device + Raspi device doesn't support more than 2 position ,so this step is not verifiable by using raspi device In Raspi platform to change the switch to third position use the below sample command, its required to use equivalent command on the respective DUT. Open one more terminal on DUT side to execute the echo command . @@ -261,7 +261,7 @@ tests: - label: "Operator operates switch (keep it pressed)" PICS: SWTCH.S.F01 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) + 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) @@ -290,7 +290,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 the 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) Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log: @@ -351,6 +351,7 @@ tests: verification: | 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 @@ -370,6 +371,7 @@ tests: verification: | 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 short-release 1 100 1 1 --keepSubscriptions true @@ -401,6 +403,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 @@ -420,7 +423,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) Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log: @@ -431,8 +434,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 short-release 1 100 1 1 + 2. switch subscribe-event short-release 1 100 1 1 Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log: @@ -486,6 +490,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) + Verify LongRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log: [1674036547.915803][19172:19174] CHIP:-: Received payload: "{"Name":"LongRelease","PreviousPosition":1}" @@ -505,6 +510,7 @@ tests: verification: | 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 @@ -524,6 +530,7 @@ tests: verification: | 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 short-release 1 100 1 1 @@ -544,6 +551,7 @@ tests: verification: | 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 @@ -559,6 +567,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 @@ -578,6 +587,7 @@ tests: verification: | 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-release 1 100 1 1 @@ -655,6 +665,7 @@ tests: verification: | 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 @@ -673,6 +684,7 @@ tests: verification: | 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 short-release 1 100 1 1 @@ -689,6 +701,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 multi-press-complete 1 100 1 1 @@ -709,6 +722,7 @@ tests: verification: | 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 @@ -728,6 +742,7 @@ tests: verification: | 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 short-release 1 100 1 1 @@ -747,6 +762,7 @@ tests: verification: | 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 @@ -761,6 +777,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 multi-press-ongoing 1 100 1 1 @@ -781,6 +798,7 @@ tests: verification: | 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 short-release 1 100 1 1 @@ -801,6 +819,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 multi-press-complete 1 100 1 1 @@ -828,6 +847,7 @@ tests: verification: | 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 @@ -847,6 +867,7 @@ tests: verification: | 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 short-release 1 100 1 1 @@ -866,6 +887,7 @@ tests: verification: | 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 @@ -880,6 +902,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 multi-press-ongoing 1 100 1 1 @@ -900,6 +923,7 @@ tests: verification: | 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 short-release 1 100 1 1 @@ -919,6 +943,7 @@ tests: verification: | 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 @@ -937,6 +962,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 multi-press-ongoing 1 100 1 1 @@ -957,6 +983,7 @@ tests: verification: | 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 short-release 1 100 1 1 @@ -979,6 +1006,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 multi-press-complete 1 100 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_3_1.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_3_1_Simulated.yaml similarity index 73% rename from src/app/tests/suites/certification/Test_TC_SWTCH_3_1.yaml rename to src/app/tests/suites/certification/Test_TC_SWTCH_3_1_Simulated.yaml index b9fb7cd461b6fd..8d46d80a8de956 100644 --- a/src/app/tests/suites/certification/Test_TC_SWTCH_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SWTCH_3_1_Simulated.yaml @@ -11,7 +11,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: 74.3.1. [TC-SWTCH-3.1] Global attributes with client as DUT @@ -24,136 +23,28 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" + cluster: "Switch" endpoint: 0 tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true + #- label: "Wait for the device to be commissioned" + # cluster: "DelayCommands" + # command: "WaitForCommissioning" - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order." + - label: "Read NumberOfPositions attribute" PICS: SWTCH.C.AM-READ - verification: | - ./chip-tool switch read number-of-positions 1 1 - - Verify TH receives NumberOfPositions attribute response on the TH(all-clusters-app) Log: - ReportDataMessage = - [1671449917.780724][8426:8426] CHIP:DMG: { - [1671449917.780726][8426:8426] CHIP:DMG: AttributeReportIBs = - [1671449917.780731][8426:8426] CHIP:DMG: [ - [1671449917.780734][8426:8426] CHIP:DMG: AttributeReportIB = - [1671449917.780814][8426:8426] CHIP:DMG: { - [1671449917.780821][8426:8426] CHIP:DMG: AttributeDataIB = - [1671449917.780826][8426:8426] CHIP:DMG: { - [1671449917.780830][8426:8426] CHIP:DMG: DataVersion = 0xcfe432fa, - [1671449917.780835][8426:8426] CHIP:DMG: AttributePathIB = - [1671449917.780839][8426:8426] CHIP:DMG: { - [1671449917.780843][8426:8426] CHIP:DMG: Endpoint = 0x1, - [1671449917.780848][8426:8426] CHIP:DMG: Cluster = 0x3b, - [1671449917.780854][8426:8426] CHIP:DMG: Attribute = 0x0000_0000, - [1671449917.780859][8426:8426] CHIP:DMG: } - [1671449917.780864][8426:8426] CHIP:DMG: - [1671449917.780868][8426:8426] CHIP:DMG: Data = 2, - [1671449917.780872][8426:8426] CHIP:DMG: }, - [1671449917.780877][8426:8426] CHIP:DMG: - [1671449917.780880][8426:8426] CHIP:DMG: }, - [1671449917.780886][8426:8426] CHIP:DMG: - [1671449917.780889][8426:8426] CHIP:DMG: ], - [1671449917.780894][8426:8426] CHIP:DMG: - [1671449917.780898][8426:8426] CHIP:DMG: SuppressResponse = true, - [1671449917.780901][8426:8426] CHIP:DMG: InteractionModelRevision = 1 - [1671449917.780904][8426:8426] CHIP:DMG: } - , - - ./chip-tool switch read current-position 1 1 - - Verify TH receives CurrentPosition attribute response on the TH(all-clusters-app) Log: + wait: "readAttribute" + attribute: "NumberOfPositions" - [ReportDataMessage = - [1671449960.047834][8426:8426] CHIP:DMG: { - [1671449960.047837][8426:8426] CHIP:DMG: AttributeReportIBs = - [1671449960.047841][8426:8426] CHIP:DMG: [ - [1671449960.047844][8426:8426] CHIP:DMG: AttributeReportIB = - [1671449960.047849][8426:8426] CHIP:DMG: { - [1671449960.047852][8426:8426] CHIP:DMG: AttributeDataIB = - [1671449960.047855][8426:8426] CHIP:DMG: { - [1671449960.047858][8426:8426] CHIP:DMG: DataVersion = 0xcfe432fa, - [1671449960.047861][8426:8426] CHIP:DMG: AttributePathIB = - [1671449960.047865][8426:8426] CHIP:DMG: { - [1671449960.047868][8426:8426] CHIP:DMG: Endpoint = 0x1, - [1671449960.047872][8426:8426] CHIP:DMG: Cluster = 0x3b, - [1671449960.047875][8426:8426] CHIP:DMG: Attribute = 0x0000_0001, - [1671449960.047878][8426:8426] CHIP:DMG: } - [1671449960.047882][8426:8426] CHIP:DMG: - [1671449960.047886][8426:8426] CHIP:DMG: Data = 0, - [1671449960.047889][8426:8426] CHIP:DMG: }, - [1671449960.047893][8426:8426] CHIP:DMG: - [1671449960.047895][8426:8426] CHIP:DMG: }, - [1671449960.047899][8426:8426] CHIP:DMG: - [1671449960.047902][8426:8426] CHIP:DMG: ], - [1671449960.047907][8426:8426] CHIP:DMG: - [1671449960.047910][8426:8426] CHIP:DMG: SuppressResponse = true, - [1671449960.047912][8426:8426] CHIP:DMG: InteractionModelRevision = 1 - [1671449960.047915][8426:8426] CHIP:DMG: } - disabled: true + - label: "Read CurrentPosition attribute" + PICS: SWTCH.C.AM-READ + wait: "readAttribute" + attribute: "CurrentPosition" - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." + - label: "Read MultiPressMax attribute" PICS: SWTCH.C.AO-READ - verification: | - verify on Reference app receives the right response for the data sent in the above commands - - ./chip-tool switch read multi-press-max 1 1 - - Verify TH receives MultiPressMax attribute response on the TH(all-clusters-app) Log: - ReportDataMessage = - [1671450018.221331][8426:8426] CHIP:DMG: { - [1671450018.221335][8426:8426] CHIP:DMG: AttributeReportIBs = - [1671450018.221341][8426:8426] CHIP:DMG: [ - [1671450018.221345][8426:8426] CHIP:DMG: AttributeReportIB = - [1671450018.221352][8426:8426] CHIP:DMG: { - [1671450018.221355][8426:8426] CHIP:DMG: AttributeDataIB = - [1671450018.221360][8426:8426] CHIP:DMG: { - [1671450018.221365][8426:8426] CHIP:DMG: DataVersion = 0xcfe432fa, - [1671450018.221369][8426:8426] CHIP:DMG: AttributePathIB = - [1671450018.221374][8426:8426] CHIP:DMG: { - [1671450018.221378][8426:8426] CHIP:DMG: Endpoint = 0x1, - [1671450018.221383][8426:8426] CHIP:DMG: Cluster = 0x3b, - [1671450018.221388][8426:8426] CHIP:DMG: Attribute = 0x0000_0002, - [1671450018.221393][8426:8426] CHIP:DMG: } - [1671450018.221398][8426:8426] CHIP:DMG: - [1671450018.221404][8426:8426] CHIP:DMG: Data = 2, - [1671450018.221408][8426:8426] CHIP:DMG: }, - [1671450018.221414][8426:8426] CHIP:DMG: - [1671450018.221417][8426:8426] CHIP:DMG: }, - [1671450018.221423][8426:8426] CHIP:DMG: - [1671450018.221427][8426:8426] CHIP:DMG: ], - [1671450018.221433][8426:8426] CHIP:DMG: - [1671450018.221437][8426:8426] CHIP:DMG: SuppressResponse = true, - [1671450018.221441][8426:8426] CHIP:DMG: InteractionModelRevision = 1 - [1671450018.221445][8426:8426] CHIP:DMG: } - disabled: true - - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order." - PICS: SWTCH.C.AM-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: SWTCH.C.AO-WRITE - verification: | - This cluster doesn"t have any writable attributes - disabled: true + wait: "readAttribute" + attribute: "MultiPressMax" - label: "Configure TH such that it implements mandatory and none of the @@ -192,7 +83,7 @@ tests: [1666943977.583911][12769:12769] CHIP:DMG: SuppressResponse = true, [1666943977.583913][12769:12769] CHIP:DMG: InteractionModelRevision = 1 - ./chip-tool switch read attribute-list 1 1 + ./chip-tool switch read attribute-list 1 1 Verify TH receives AttributeList attribute response on the TH(all-clusters-minimal-app) Log: @@ -433,25 +324,46 @@ tests: [1666944049.906735][12769:12769] CHIP:DMG: SuppressResponse = true, [1666944049.906737][12769:12769] CHIP:DMG: InteractionModelRevision = 1 [1666944049.906739][12769:12769] CHIP:DMG: } - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order." - PICS: SWTCH.C.AO-READ + a manufacturer specific order" verification: | TH all-clusters-minimal-app does not support optional attributes - ./chip-tool switch read multi-press-max 1 1 status = 0x86 (UNSUPPORTED_ATTRIBUTE), - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP && SWTCH.C.AO-READ + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" - label: "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order." - PICS: SWTCH.C.AO-WRITE + the TH one at a time in a manufacturer specific order" verification: | - This cluster doesn"t have any writable attributes - disabled: true + This cluster doesn't have any writable attributes + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_SKIP_SAMPLE_APP + arguments: + values: + - name: "message" + value: "Enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml index 120f23f3de3787..dfe967941e2042 100644 --- a/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml @@ -157,29 +157,29 @@ tests: ReportDataMessage = [1671450651.817816][8426:8426] CHIP:DMG: { - [1671450651.817819][8426:8426] CHIP:DMG: AttributeReportIBs = - [1671450651.817825][8426:8426] CHIP:DMG: [ - [1671450651.817828][8426:8426] CHIP:DMG: AttributeReportIB = - [1671450651.817849][8426:8426] CHIP:DMG: { - [1671450651.817853][8426:8426] CHIP:DMG: AttributeDataIB = - [1671450651.817858][8426:8426] CHIP:DMG: { - [1671450651.817862][8426:8426] CHIP:DMG: DataVersion = 0xcfe432fa, - [1671450651.817864][8426:8426] CHIP:DMG: AttributePathIB = - [1671450651.817868][8426:8426] CHIP:DMG: { - [1671450651.817872][8426:8426] CHIP:DMG: Endpoint = 0x1, - [1671450651.817876][8426:8426] CHIP:DMG: Cluster = 0x3b, - [1671450651.817879][8426:8426] CHIP:DMG: Attribute = 0x0000_0000, - [1671450651.817882][8426:8426] CHIP:DMG: } + [1671450651.817819][8426:8426] CHIP:DMG: AttributeReportIBs = + [1671450651.817825][8426:8426] CHIP:DMG: [ + [1671450651.817828][8426:8426] CHIP:DMG: AttributeReportIB = + [1671450651.817849][8426:8426] CHIP:DMG: { + [1671450651.817853][8426:8426] CHIP:DMG: AttributeDataIB = + [1671450651.817858][8426:8426] CHIP:DMG: { + [1671450651.817862][8426:8426] CHIP:DMG: DataVersion = 0xcfe432fa, + [1671450651.817864][8426:8426] CHIP:DMG: AttributePathIB = + [1671450651.817868][8426:8426] CHIP:DMG: { + [1671450651.817872][8426:8426] CHIP:DMG: Endpoint = 0x1, + [1671450651.817876][8426:8426] CHIP:DMG: Cluster = 0x3b, + [1671450651.817879][8426:8426] CHIP:DMG: Attribute = 0x0000_0000, + [1671450651.817882][8426:8426] CHIP:DMG: } [1671450651.817888][8426:8426] CHIP:DMG: - [1671450651.817892][8426:8426] CHIP:DMG: Data = 2, - [1671450651.817895][8426:8426] CHIP:DMG: }, + [1671450651.817892][8426:8426] CHIP:DMG: Data = 2, + [1671450651.817895][8426:8426] CHIP:DMG: }, [1671450651.817901][8426:8426] CHIP:DMG: - [1671450651.817905][8426:8426] CHIP:DMG: }, + [1671450651.817905][8426:8426] CHIP:DMG: }, [1671450651.817910][8426:8426] CHIP:DMG: - [1671450651.817913][8426:8426] CHIP:DMG: ], + [1671450651.817913][8426:8426] CHIP:DMG: ], [1671450651.817918][8426:8426] CHIP:DMG: - [1671450651.817921][8426:8426] CHIP:DMG: SuppressResponse = true, - [1671450651.817925][8426:8426] CHIP:DMG: InteractionModelRevision = 1 + [1671450651.817921][8426:8426] CHIP:DMG: SuppressResponse = true, + [1671450651.817925][8426:8426] CHIP:DMG: InteractionModelRevision = 1 [1671450651.817928][8426:8426] CHIP:DMG: } disabled: true @@ -199,10 +199,12 @@ 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 switch-latched 1 100 1 1 Verify switch latched event has newposition set to 0 on DUT (chip-tool) logs: + [1659679766.774013][2535:2540] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659679766.774035][2535:2540] CHIP:TOO: Event number: 3 [1659679766.774055][2535:2540] CHIP:TOO: Priority: Info @@ -256,7 +258,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) [1659621148.831745][8590:8596] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":1}" [1659621148.832236][8590:8590] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4be58f54 @@ -270,6 +272,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 switch-latched 1 100 1 1 @@ -374,7 +377,7 @@ tests: [1671450600.458286][8426:8426] CHIP:DMG: } disabled: true - - label: "DUT reads attribute NumberOfPositions." + - label: "DUT reads attribute NumberOfPositions" PICS: SWTCH.C.F01 verification: | 1. ./chip-tool interactive start @@ -384,36 +387,36 @@ tests: Verify number of positions value is 2 in TH all-clusters-app log DMG: ReportDataMessage = [1671450651.817816][8426:8426] CHIP:DMG: { - [1671450651.817819][8426:8426] CHIP:DMG: AttributeReportIBs = - [1671450651.817825][8426:8426] CHIP:DMG: [ - [1671450651.817828][8426:8426] CHIP:DMG: AttributeReportIB = - [1671450651.817849][8426:8426] CHIP:DMG: { - [1671450651.817853][8426:8426] CHIP:DMG: AttributeDataIB = - [1671450651.817858][8426:8426] CHIP:DMG: { - [1671450651.817862][8426:8426] CHIP:DMG: DataVersion = 0xcfe432fa, - [1671450651.817864][8426:8426] CHIP:DMG: AttributePathIB = - [1671450651.817868][8426:8426] CHIP:DMG: { - [1671450651.817872][8426:8426] CHIP:DMG: Endpoint = 0x1, - [1671450651.817876][8426:8426] CHIP:DMG: Cluster = 0x3b, - [1671450651.817879][8426:8426] CHIP:DMG: Attribute = 0x0000_0000, - [1671450651.817882][8426:8426] CHIP:DMG: } + [1671450651.817819][8426:8426] CHIP:DMG: AttributeReportIBs = + [1671450651.817825][8426:8426] CHIP:DMG: [ + [1671450651.817828][8426:8426] CHIP:DMG: AttributeReportIB = + [1671450651.817849][8426:8426] CHIP:DMG: { + [1671450651.817853][8426:8426] CHIP:DMG: AttributeDataIB = + [1671450651.817858][8426:8426] CHIP:DMG: { + [1671450651.817862][8426:8426] CHIP:DMG: DataVersion = 0xcfe432fa, + [1671450651.817864][8426:8426] CHIP:DMG: AttributePathIB = + [1671450651.817868][8426:8426] CHIP:DMG: { + [1671450651.817872][8426:8426] CHIP:DMG: Endpoint = 0x1, + [1671450651.817876][8426:8426] CHIP:DMG: Cluster = 0x3b, + [1671450651.817879][8426:8426] CHIP:DMG: Attribute = 0x0000_0000, + [1671450651.817882][8426:8426] CHIP:DMG: } [1671450651.817888][8426:8426] CHIP:DMG: - [1671450651.817892][8426:8426] CHIP:DMG: Data = 2, - [1671450651.817895][8426:8426] CHIP:DMG: }, + [1671450651.817892][8426:8426] CHIP:DMG: Data = 2, + [1671450651.817895][8426:8426] CHIP:DMG: }, [1671450651.817901][8426:8426] CHIP:DMG: - [1671450651.817905][8426:8426] CHIP:DMG: }, + [1671450651.817905][8426:8426] CHIP:DMG: }, [1671450651.817910][8426:8426] CHIP:DMG: - [1671450651.817913][8426:8426] CHIP:DMG: ], + [1671450651.817913][8426:8426] CHIP:DMG: ], [1671450651.817918][8426:8426] CHIP:DMG: - [1671450651.817921][8426:8426] CHIP:DMG: SuppressResponse = true, - [1671450651.817925][8426:8426] CHIP:DMG: InteractionModelRevision = 1 + [1671450651.817921][8426:8426] CHIP:DMG: SuppressResponse = true, + [1671450651.817925][8426:8426] CHIP:DMG: InteractionModelRevision = 1 [1671450651.817928][8426:8426] CHIP:DMG: } disabled: true - label: - "DUT sets up eventing (InitialPress and ShortRelease; if SWTCH.C.F03 - also LongPress and LongRelease) so it will receive events when the - switch is operated." + "DUT sets up eventing (InitialPress and ShortRelease; if + SWTCH.C.F03(MSL) also LongPress and LongRelease) so it will receive + events when the switch is operated" PICS: SWTCH.C.F01 && SWTCH.C.M.EV 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) @@ -429,6 +432,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 @@ -441,7 +445,6 @@ tests: [1659683181.743506][2829:2835] CHIP:TOO: } echo '{"Name":"ShortRelease","PreviousPosition":0}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify for ShortRelease event in DUT(chip-tool) Log: [1659683678.805455][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":0}" @@ -451,6 +454,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 short-release 1 100 1 1 @@ -468,6 +472,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 @@ -484,6 +489,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-release 1 100 1 1 @@ -499,9 +505,9 @@ tests: - label: "TH simulates operation of the switch by repeating these steps (over a - 1 minute period) - change state (attribute CurrentPosition) from 0 to - 1 - wait 0.2 seconds - change state (attribute CurrentPosition) from 1 - to 0 - wait 10 seconds DUT reads attribute CurrentPosition regularly" + 1 minute period) change state (attribute CurrentPosition) from 0 to 1 + wait 0.2 seconds change state (attribute CurrentPosition) from 1 to 0 + wait 10 seconds DUT reads attribute CurrentPosition regularly" PICS: SWTCH.C.F01 && SWTCH.C.M.RA 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) @@ -563,6 +569,7 @@ tests: [1659624126.647480][8590:8590] CHIP:ZCL: SwitchServer: OnInitialPress After 0.2 seconds, send this command + echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) [1659684051.064329][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" @@ -576,8 +583,10 @@ tests: all-clusters app will emit events to the subscriber (DUT-client), e.g. Verify in TH Log: + 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 @@ -591,6 +600,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 short-release 1 100 1 1 @@ -635,6 +645,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 @@ -648,6 +659,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 @@ -661,6 +673,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-release 1 100 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_TGTNAV_8_2.yaml b/src/app/tests/suites/certification/Test_TC_TGTNAV_8_2.yaml index bf9b184f3fdca7..ca8c292f74f10a 100644 --- a/src/app/tests/suites/certification/Test_TC_TGTNAV_8_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_TGTNAV_8_2.yaml @@ -16,7 +16,7 @@ name: 3.10.2. [TC-TGTNAV-8.2] Navigate Target Verification (DUT as Client) PICS: - - TGTNAV.S + - TGTNAV.C config: nodeId: 0x12344321 diff --git a/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml index 905893a902f060..4b1016302f882e 100644 --- a/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml @@ -36,6 +36,7 @@ tests: - label: "DUT reads all supported mandatory attributes from TH one at a time in a manufacturer specific order" + PICS: TMP.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -254,6 +255,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: TMP.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -265,19 +267,19 @@ tests: [1666954393.403257][6038:6038] CHIP:IM: Received Read request [1666954393.403429][6038:6038] CHIP:DMG: ReadRequestMessage = [1666954393.403495][6038:6038] CHIP:DMG: { - [1666954393.403550][6038:6038] CHIP:DMG: AttributePathIBs = - [1666954393.403615][6038:6038] CHIP:DMG: [ - [1666954393.403677][6038:6038] CHIP:DMG: AttributePathIB = - [1666954393.403755][6038:6038] CHIP:DMG: { - [1666954393.403827][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954393.403918][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954393.404006][6038:6038] CHIP:DMG: Attribute = 0x0000_0003, - [1666954393.404088][6038:6038] CHIP:DMG: } + [1666954393.403550][6038:6038] CHIP:DMG: AttributePathIBs = + [1666954393.403615][6038:6038] CHIP:DMG: [ + [1666954393.403677][6038:6038] CHIP:DMG: AttributePathIB = + [1666954393.403755][6038:6038] CHIP:DMG: { + [1666954393.403827][6038:6038] CHIP:DMG: Endpoint = 0x1, + [1666954393.403918][6038:6038] CHIP:DMG: Cluster = 0x402, + [1666954393.404006][6038:6038] CHIP:DMG: Attribute = 0x0000_0003, + [1666954393.404088][6038:6038] CHIP:DMG: } [1666954393.404161][6038:6038] CHIP:DMG: - [1666954393.404226][6038:6038] CHIP:DMG: ], + [1666954393.404226][6038:6038] CHIP:DMG: ], [1666954393.404297][6038:6038] CHIP:DMG: - [1666954393.404364][6038:6038] CHIP:DMG: isFabricFiltered = true, - [1666954393.404429][6038:6038] CHIP:DMG: InteractionModelRevision = 1 + [1666954393.404364][6038:6038] CHIP:DMG: isFabricFiltered = true, + [1666954393.404429][6038:6038] CHIP:DMG: InteractionModelRevision = 1 [1666954393.404488][6038:6038] CHIP:DMG: }, [1666954393.404662][6038:6038] CHIP:DMG: IM RH moving to [GeneratingReports] [1666954393.404878][6038:6038] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -306,22 +308,22 @@ tests: [1666954393.407525][6038:6038] CHIP:DMG: [1666954393.407689][6038:6038] CHIP:DMG: ReportDataMessage = [1666954393.407757][6038:6038] CHIP:DMG: { - [1666954393.407811][6038:6038] CHIP:DMG: AttributeReportIBs = - [1666954393.407896][6038:6038] CHIP:DMG: [ - [1666954393.407960][6038:6038] CHIP:DMG: AttributeReportIB = - [1666954393.408047][6038:6038] CHIP:DMG: { - [1666954393.408120][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954393.408208][6038:6038] CHIP:DMG: { - [1666954393.408300][6038:6038] CHIP:DMG: DataVersion = 0x535a5675, - [1666954393.408381][6038:6038] CHIP:DMG: AttributePathIB = - [1666954393.408473][6038:6038] CHIP:DMG: { - [1666954393.408568][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954393.408666][6038:6038] CHIP:DMG: Cluster = 0x402, - [1666954393.408765][6038:6038] CHIP:DMG: Attribute = 0x0000_0003, - [1666954393.408856][6038:6038] CHIP:DMG: } + [1666954393.407811][6038:6038] CHIP:DMG: AttributeReportIBs = + [1666954393.407896][6038:6038] CHIP:DMG: [ + [1666954393.407960][6038:6038] CHIP:DMG: AttributeReportIB = + [1666954393.408047][6038:6038] CHIP:DMG: { + [1666954393.408120][6038:6038] CHIP:DMG: AttributeDataIB = + [1666954393.408208][6038:6038] CHIP:DMG: { + [1666954393.408300][6038:6038] CHIP:DMG: DataVersion = 0x535a5675, + [1666954393.408381][6038:6038] CHIP:DMG: AttributePathIB = + [1666954393.408473][6038:6038] CHIP:DMG: { + [1666954393.408568][6038:6038] CHIP:DMG: Endpoint = 0x1, + [1666954393.408666][6038:6038] CHIP:DMG: Cluster = 0x402, + [1666954393.408765][6038:6038] CHIP:DMG: Attribute = 0x0000_0003, + [1666954393.408856][6038:6038] CHIP:DMG: } [1666954393.408948][6038:6038] CHIP:DMG: - [1666954393.409045][6038:6038] CHIP:DMG: Data = 0, - [1666954393.409295][6038:6038] CHIP:DMG: }, + [1666954393.409045][6038:6038] CHIP:DMG: Data = 0, + [1666954393.409295][6038:6038] CHIP:DMG: }, [1666954393.409395][6038:6038] CHIP:DMG: [1666954393.409466][6038:6038] CHIP:DMG: disabled: true @@ -329,6 +331,7 @@ tests: - label: "DUT writes a suitable value to all supported mandatory attributes on the TH one at a time in a manufacturer specific order" + PICS: TMP.C.AM-WRITE verification: | There is no writable mandatory attibute for this cluster disabled: true @@ -336,6 +339,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: TMP.C.AO-WRITE verification: | There is no writable Optional attibute for this cluster disabled: true @@ -356,19 +360,19 @@ tests: [1666954493.877744][6087:6087] CHIP:IM: Received Read request [1666954493.877919][6087:6087] CHIP:DMG: ReadRequestMessage = [1666954493.877989][6087:6087] CHIP:DMG: { - [1666954493.878044][6087:6087] CHIP:DMG: AttributePathIBs = - [1666954493.878109][6087:6087] CHIP:DMG: [ - [1666954493.878172][6087:6087] CHIP:DMG: AttributePathIB = - [1666954493.878258][6087:6087] CHIP:DMG: { - [1666954493.878333][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666954493.878483][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666954493.878627][6087:6087] CHIP:DMG: Attribute = 0x0000_0000, - [1666954493.878815][6087:6087] CHIP:DMG: } + [1666954493.878044][6087:6087] CHIP:DMG: AttributePathIBs = + [1666954493.878109][6087:6087] CHIP:DMG: [ + [1666954493.878172][6087:6087] CHIP:DMG: AttributePathIB = + [1666954493.878258][6087:6087] CHIP:DMG: { + [1666954493.878333][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666954493.878483][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666954493.878627][6087:6087] CHIP:DMG: Attribute = 0x0000_0000, + [1666954493.878815][6087:6087] CHIP:DMG: } [1666954493.878899][6087:6087] CHIP:DMG: - [1666954493.878966][6087:6087] CHIP:DMG: ], + [1666954493.878966][6087:6087] CHIP:DMG: ], [1666954493.879039][6087:6087] CHIP:DMG: - [1666954493.879544][6087:6087] CHIP:DMG: isFabricFiltered = true, - [1666954493.879716][6087:6087] CHIP:DMG: InteractionModelRevision = 1 + [1666954493.879544][6087:6087] CHIP:DMG: isFabricFiltered = true, + [1666954493.879716][6087:6087] CHIP:DMG: InteractionModelRevision = 1 [1666954493.879780][6087:6087] CHIP:DMG: }, [1666954493.879963][6087:6087] CHIP:DMG: IM RH moving to [GeneratingReports] [1666954493.880294][6087:6087] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -397,26 +401,26 @@ tests: [1666954493.883130][6087:6087] CHIP:DMG: [1666954493.883299][6087:6087] CHIP:DMG: ReportDataMessage = [1666954493.883367][6087:6087] CHIP:DMG: { - [1666954493.883422][6087:6087] CHIP:DMG: AttributeReportIBs = - [1666954493.883492][6087:6087] CHIP:DMG: [ - [1666954493.883554][6087:6087] CHIP:DMG: AttributeReportIB = - [1666954493.883720][6087:6087] CHIP:DMG: { - [1666954493.883803][6087:6087] CHIP:DMG: AttributeDataIB = - [1666954493.883936][6087:6087] CHIP:DMG: { - [1666954493.884016][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666954493.884157][6087:6087] CHIP:DMG: AttributePathIB = - [1666954493.884302][6087:6087] CHIP:DMG: { - [1666954493.884451][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666954493.884602][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666954493.884756][6087:6087] CHIP:DMG: Attribute = 0x0000_0000, - [1666954493.884899][6087:6087] CHIP:DMG: } + [1666954493.883422][6087:6087] CHIP:DMG: AttributeReportIBs = + [1666954493.883492][6087:6087] CHIP:DMG: [ + [1666954493.883554][6087:6087] CHIP:DMG: AttributeReportIB = + [1666954493.883720][6087:6087] CHIP:DMG: { + [1666954493.883803][6087:6087] CHIP:DMG: AttributeDataIB = + [1666954493.883936][6087:6087] CHIP:DMG: { + [1666954493.884016][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666954493.884157][6087:6087] CHIP:DMG: AttributePathIB = + [1666954493.884302][6087:6087] CHIP:DMG: { + [1666954493.884451][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666954493.884602][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666954493.884756][6087:6087] CHIP:DMG: Attribute = 0x0000_0000, + [1666954493.884899][6087:6087] CHIP:DMG: } [1666954493.884985][6087:6087] CHIP:DMG: - [1666954493.885057][6087:6087] CHIP:DMG: Data = NULL - [1666954493.885135][6087:6087] CHIP:DMG: }, + [1666954493.885057][6087:6087] CHIP:DMG: Data = NULL + [1666954493.885135][6087:6087] CHIP:DMG: }, [1666954493.885273][6087:6087] CHIP:DMG: - [1666954493.885350][6087:6087] CHIP:DMG: }, + [1666954493.885350][6087:6087] CHIP:DMG: }, [1666954493.885477][6087:6087] CHIP:DMG: - [1666954493.885544][6087:6087] CHIP:DMG: ], + [1666954493.885544][6087:6087] CHIP:DMG: ], ./chip-tool temperaturemeasurement read max-measured-value 1 1 @@ -426,19 +430,19 @@ tests: [1666954528.135445][6087:6087] CHIP:IM: Received Read request [1666954528.135617][6087:6087] CHIP:DMG: ReadRequestMessage = [1666954528.135684][6087:6087] CHIP:DMG: { - [1666954528.135738][6087:6087] CHIP:DMG: AttributePathIBs = - [1666954528.135802][6087:6087] CHIP:DMG: [ - [1666954528.135864][6087:6087] CHIP:DMG: AttributePathIB = - [1666954528.135948][6087:6087] CHIP:DMG: { - [1666954528.136021][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666954528.136243][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666954528.136334][6087:6087] CHIP:DMG: Attribute = 0x0000_0002, - [1666954528.136418][6087:6087] CHIP:DMG: } + [1666954528.135738][6087:6087] CHIP:DMG: AttributePathIBs = + [1666954528.135802][6087:6087] CHIP:DMG: [ + [1666954528.135864][6087:6087] CHIP:DMG: AttributePathIB = + [1666954528.135948][6087:6087] CHIP:DMG: { + [1666954528.136021][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666954528.136243][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666954528.136334][6087:6087] CHIP:DMG: Attribute = 0x0000_0002, + [1666954528.136418][6087:6087] CHIP:DMG: } [1666954528.136487][6087:6087] CHIP:DMG: - [1666954528.136559][6087:6087] CHIP:DMG: ], + [1666954528.136559][6087:6087] CHIP:DMG: ], [1666954528.136631][6087:6087] CHIP:DMG: - [1666954528.136698][6087:6087] CHIP:DMG: isFabricFiltered = true, - [1666954528.136762][6087:6087] CHIP:DMG: InteractionModelRevision = 1 + [1666954528.136698][6087:6087] CHIP:DMG: isFabricFiltered = true, + [1666954528.136762][6087:6087] CHIP:DMG: InteractionModelRevision = 1 [1666954528.136821][6087:6087] CHIP:DMG: }, [1666954528.136988][6087:6087] CHIP:DMG: IM RH moving to [GeneratingReports] [1666954528.137208][6087:6087] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -467,26 +471,26 @@ tests: [1666954528.139861][6087:6087] CHIP:DMG: [1666954528.140022][6087:6087] CHIP:DMG: ReportDataMessage = [1666954528.140087][6087:6087] CHIP:DMG: { - [1666954528.140141][6087:6087] CHIP:DMG: AttributeReportIBs = - [1666954528.140225][6087:6087] CHIP:DMG: [ - [1666954528.140287][6087:6087] CHIP:DMG: AttributeReportIB = - [1666954528.140371][6087:6087] CHIP:DMG: { - [1666954528.140442][6087:6087] CHIP:DMG: AttributeDataIB = - [1666954528.140515][6087:6087] CHIP:DMG: { - [1666954528.140596][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666954528.140679][6087:6087] CHIP:DMG: AttributePathIB = - [1666954528.140771][6087:6087] CHIP:DMG: { - [1666954528.140866][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666954528.140958][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666954528.141053][6087:6087] CHIP:DMG: Attribute = 0x0000_0002, - [1666954528.141141][6087:6087] CHIP:DMG: } + [1666954528.140141][6087:6087] CHIP:DMG: AttributeReportIBs = + [1666954528.140225][6087:6087] CHIP:DMG: [ + [1666954528.140287][6087:6087] CHIP:DMG: AttributeReportIB = + [1666954528.140371][6087:6087] CHIP:DMG: { + [1666954528.140442][6087:6087] CHIP:DMG: AttributeDataIB = + [1666954528.140515][6087:6087] CHIP:DMG: { + [1666954528.140596][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666954528.140679][6087:6087] CHIP:DMG: AttributePathIB = + [1666954528.140771][6087:6087] CHIP:DMG: { + [1666954528.140866][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666954528.140958][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666954528.141053][6087:6087] CHIP:DMG: Attribute = 0x0000_0002, + [1666954528.141141][6087:6087] CHIP:DMG: } [1666954528.141237][6087:6087] CHIP:DMG: - [1666954528.141331][6087:6087] CHIP:DMG: Data = NULL - [1666954528.141410][6087:6087] CHIP:DMG: }, + [1666954528.141331][6087:6087] CHIP:DMG: Data = NULL + [1666954528.141410][6087:6087] CHIP:DMG: }, [1666954528.141493][6087:6087] CHIP:DMG: - [1666954528.141563][6087:6087] CHIP:DMG: }, + [1666954528.141563][6087:6087] CHIP:DMG: }, [1666954528.141648][6087:6087] CHIP:DMG: - [1666954528.141715][6087:6087] CHIP:DMG: ], + [1666954528.141715][6087:6087] CHIP:DMG: ], ./chip-tool temperaturemeasurement read min-measured-value 1 1 @@ -496,19 +500,19 @@ tests: [1666954579.729291][6087:6087] CHIP:IM: Received Read request [1666954579.729463][6087:6087] CHIP:DMG: ReadRequestMessage = [1666954579.729530][6087:6087] CHIP:DMG: { - [1666954579.729585][6087:6087] CHIP:DMG: AttributePathIBs = - [1666954579.729651][6087:6087] CHIP:DMG: [ - [1666954579.729713][6087:6087] CHIP:DMG: AttributePathIB = - [1666954579.729796][6087:6087] CHIP:DMG: { - [1666954579.729871][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666954579.729948][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666954579.730024][6087:6087] CHIP:DMG: Attribute = 0x0000_0001, - [1666954579.730094][6087:6087] CHIP:DMG: } + [1666954579.729585][6087:6087] CHIP:DMG: AttributePathIBs = + [1666954579.729651][6087:6087] CHIP:DMG: [ + [1666954579.729713][6087:6087] CHIP:DMG: AttributePathIB = + [1666954579.729796][6087:6087] CHIP:DMG: { + [1666954579.729871][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666954579.729948][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666954579.730024][6087:6087] CHIP:DMG: Attribute = 0x0000_0001, + [1666954579.730094][6087:6087] CHIP:DMG: } [1666954579.730168][6087:6087] CHIP:DMG: - [1666954579.730236][6087:6087] CHIP:DMG: ], + [1666954579.730236][6087:6087] CHIP:DMG: ], [1666954579.730307][6087:6087] CHIP:DMG: - [1666954579.730376][6087:6087] CHIP:DMG: isFabricFiltered = true, - [1666954579.730440][6087:6087] CHIP:DMG: InteractionModelRevision = 1 + [1666954579.730376][6087:6087] CHIP:DMG: isFabricFiltered = true, + [1666954579.730440][6087:6087] CHIP:DMG: InteractionModelRevision = 1 [1666954579.730499][6087:6087] CHIP:DMG: }, [1666954579.730674][6087:6087] CHIP:DMG: IM RH moving to [GeneratingReports] [1666954579.730963][6087:6087] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -537,26 +541,26 @@ tests: [1666954579.733915][6087:6087] CHIP:DMG: [1666954579.734086][6087:6087] CHIP:DMG: ReportDataMessage = [1666954579.734154][6087:6087] CHIP:DMG: { - [1666954579.734205][6087:6087] CHIP:DMG: AttributeReportIBs = - [1666954579.734283][6087:6087] CHIP:DMG: [ - [1666954579.734346][6087:6087] CHIP:DMG: AttributeReportIB = - [1666954579.734427][6087:6087] CHIP:DMG: { - [1666954579.734502][6087:6087] CHIP:DMG: AttributeDataIB = - [1666954579.734595][6087:6087] CHIP:DMG: { - [1666954579.734691][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666954579.734824][6087:6087] CHIP:DMG: AttributePathIB = - [1666954579.734923][6087:6087] CHIP:DMG: { - [1666954579.735005][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666954579.735105][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666954579.735196][6087:6087] CHIP:DMG: Attribute = 0x0000_0001, - [1666954579.735292][6087:6087] CHIP:DMG: } + [1666954579.734205][6087:6087] CHIP:DMG: AttributeReportIBs = + [1666954579.734283][6087:6087] CHIP:DMG: [ + [1666954579.734346][6087:6087] CHIP:DMG: AttributeReportIB = + [1666954579.734427][6087:6087] CHIP:DMG: { + [1666954579.734502][6087:6087] CHIP:DMG: AttributeDataIB = + [1666954579.734595][6087:6087] CHIP:DMG: { + [1666954579.734691][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666954579.734824][6087:6087] CHIP:DMG: AttributePathIB = + [1666954579.734923][6087:6087] CHIP:DMG: { + [1666954579.735005][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666954579.735105][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666954579.735196][6087:6087] CHIP:DMG: Attribute = 0x0000_0001, + [1666954579.735292][6087:6087] CHIP:DMG: } [1666954579.735391][6087:6087] CHIP:DMG: - [1666954579.735487][6087:6087] CHIP:DMG: Data = NULL - [1666954579.735565][6087:6087] CHIP:DMG: }, + [1666954579.735487][6087:6087] CHIP:DMG: Data = NULL + [1666954579.735565][6087:6087] CHIP:DMG: }, [1666954579.735651][6087:6087] CHIP:DMG: - [1666954579.735724][6087:6087] CHIP:DMG: }, + [1666954579.735724][6087:6087] CHIP:DMG: }, [1666954579.735801][6087:6087] CHIP:DMG: - [1666954579.735863][6087:6087] CHIP:DMG: ], + [1666954579.735863][6087:6087] CHIP:DMG: ], ./chip-tool temperaturemeasurement read feature-map 1 1 @@ -566,19 +570,19 @@ tests: [1666955056.085572][6087:6087] CHIP:IM: Received Read request [1666955056.085747][6087:6087] CHIP:DMG: ReadRequestMessage = [1666955056.085819][6087:6087] CHIP:DMG: { - [1666955056.085874][6087:6087] CHIP:DMG: AttributePathIBs = - [1666955056.085954][6087:6087] CHIP:DMG: [ - [1666955056.086018][6087:6087] CHIP:DMG: AttributePathIB = - [1666955056.086107][6087:6087] CHIP:DMG: { - [1666955056.086188][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955056.086282][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955056.086373][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFC, - [1666955056.086451][6087:6087] CHIP:DMG: } + [1666955056.085874][6087:6087] CHIP:DMG: AttributePathIBs = + [1666955056.085954][6087:6087] CHIP:DMG: [ + [1666955056.086018][6087:6087] CHIP:DMG: AttributePathIB = + [1666955056.086107][6087:6087] CHIP:DMG: { + [1666955056.086188][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955056.086282][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955056.086373][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFC, + [1666955056.086451][6087:6087] CHIP:DMG: } [1666955056.086517][6087:6087] CHIP:DMG: - [1666955056.086577][6087:6087] CHIP:DMG: ], + [1666955056.086577][6087:6087] CHIP:DMG: ], [1666955056.086649][6087:6087] CHIP:DMG: - [1666955056.086762][6087:6087] CHIP:DMG: isFabricFiltered = true, - [1666955056.086836][6087:6087] CHIP:DMG: InteractionModelRevision = 1 + [1666955056.086762][6087:6087] CHIP:DMG: isFabricFiltered = true, + [1666955056.086836][6087:6087] CHIP:DMG: InteractionModelRevision = 1 [1666955056.086897][6087:6087] CHIP:DMG: }, [1666955056.087072][6087:6087] CHIP:DMG: IM RH moving to [GeneratingReports] [1666955056.087308][6087:6087] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -607,26 +611,26 @@ tests: [1666955056.090157][6087:6087] CHIP:DMG: [1666955056.090328][6087:6087] CHIP:DMG: ReportDataMessage = [1666955056.090397][6087:6087] CHIP:DMG: { - [1666955056.090452][6087:6087] CHIP:DMG: AttributeReportIBs = - [1666955056.090530][6087:6087] CHIP:DMG: [ - [1666955056.090593][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955056.090687][6087:6087] CHIP:DMG: { - [1666955056.090808][6087:6087] CHIP:DMG: AttributeDataIB = - [1666955056.090887][6087:6087] CHIP:DMG: { - [1666955056.090974][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666955056.091058][6087:6087] CHIP:DMG: AttributePathIB = - [1666955056.091144][6087:6087] CHIP:DMG: { - [1666955056.091234][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955056.091328][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955056.091419][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFC, - [1666955056.091504][6087:6087] CHIP:DMG: } + [1666955056.090452][6087:6087] CHIP:DMG: AttributeReportIBs = + [1666955056.090530][6087:6087] CHIP:DMG: [ + [1666955056.090593][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955056.090687][6087:6087] CHIP:DMG: { + [1666955056.090808][6087:6087] CHIP:DMG: AttributeDataIB = + [1666955056.090887][6087:6087] CHIP:DMG: { + [1666955056.090974][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666955056.091058][6087:6087] CHIP:DMG: AttributePathIB = + [1666955056.091144][6087:6087] CHIP:DMG: { + [1666955056.091234][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955056.091328][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955056.091419][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFC, + [1666955056.091504][6087:6087] CHIP:DMG: } [1666955056.091596][6087:6087] CHIP:DMG: - [1666955056.091686][6087:6087] CHIP:DMG: Data = 0, - [1666955056.091767][6087:6087] CHIP:DMG: }, + [1666955056.091686][6087:6087] CHIP:DMG: Data = 0, + [1666955056.091767][6087:6087] CHIP:DMG: }, [1666955056.091856][6087:6087] CHIP:DMG: - [1666955056.091929][6087:6087] CHIP:DMG: }, + [1666955056.091929][6087:6087] CHIP:DMG: }, [1666955056.092008][6087:6087] CHIP:DMG: - [1666955056.092071][6087:6087] CHIP:DMG: ], + [1666955056.092071][6087:6087] CHIP:DMG: ], ./chip-tool temperaturemeasurement read attribute-list 1 1 @@ -636,19 +640,19 @@ tests: [1666955301.632028][6087:6087] CHIP:IM: Received Read request [1666955301.632199][6087:6087] CHIP:DMG: ReadRequestMessage = [1666955301.632265][6087:6087] CHIP:DMG: { - [1666955301.632320][6087:6087] CHIP:DMG: AttributePathIBs = - [1666955301.632385][6087:6087] CHIP:DMG: [ - [1666955301.632447][6087:6087] CHIP:DMG: AttributePathIB = - [1666955301.632523][6087:6087] CHIP:DMG: { - [1666955301.632601][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955301.632684][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955301.632772][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666955301.632854][6087:6087] CHIP:DMG: } + [1666955301.632320][6087:6087] CHIP:DMG: AttributePathIBs = + [1666955301.632385][6087:6087] CHIP:DMG: [ + [1666955301.632447][6087:6087] CHIP:DMG: AttributePathIB = + [1666955301.632523][6087:6087] CHIP:DMG: { + [1666955301.632601][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955301.632684][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955301.632772][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666955301.632854][6087:6087] CHIP:DMG: } [1666955301.632931][6087:6087] CHIP:DMG: - [1666955301.633002][6087:6087] CHIP:DMG: ], + [1666955301.633002][6087:6087] CHIP:DMG: ], [1666955301.633073][6087:6087] CHIP:DMG: - [1666955301.633141][6087:6087] CHIP:DMG: isFabricFiltered = true, - [1666955301.633206][6087:6087] CHIP:DMG: InteractionModelRevision = 1 + [1666955301.633141][6087:6087] CHIP:DMG: isFabricFiltered = true, + [1666955301.633206][6087:6087] CHIP:DMG: InteractionModelRevision = 1 [1666955301.633265][6087:6087] CHIP:DMG: }, [1666955301.633433][6087:6087] CHIP:DMG: IM RH moving to [GeneratingReports] [1666955301.633656][6087:6087] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -677,177 +681,178 @@ tests: [1666955301.636576][6087:6087] CHIP:DMG: [1666955301.637014][6087:6087] CHIP:DMG: ReportDataMessage = [1666955301.637245][6087:6087] CHIP:DMG: { - [1666955301.637303][6087:6087] CHIP:DMG: AttributeReportIBs = - [1666955301.637382][6087:6087] CHIP:DMG: [ - [1666955301.637444][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955301.637532][6087:6087] CHIP:DMG: { - [1666955301.637604][6087:6087] CHIP:DMG: AttributeDataIB = - [1666955301.637692][6087:6087] CHIP:DMG: { - [1666955301.637768][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666955301.637850][6087:6087] CHIP:DMG: AttributePathIB = - [1666955301.637942][6087:6087] CHIP:DMG: { - [1666955301.638037][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955301.638128][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955301.638226][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666955301.638318][6087:6087] CHIP:DMG: } + [1666955301.637303][6087:6087] CHIP:DMG: AttributeReportIBs = + [1666955301.637382][6087:6087] CHIP:DMG: [ + [1666955301.637444][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955301.637532][6087:6087] CHIP:DMG: { + [1666955301.637604][6087:6087] CHIP:DMG: AttributeDataIB = + [1666955301.637692][6087:6087] CHIP:DMG: { + [1666955301.637768][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666955301.637850][6087:6087] CHIP:DMG: AttributePathIB = + [1666955301.637942][6087:6087] CHIP:DMG: { + [1666955301.638037][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955301.638128][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955301.638226][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666955301.638318][6087:6087] CHIP:DMG: } [1666955301.638414][6087:6087] CHIP:DMG: - [1666955301.638498][6087:6087] CHIP:DMG: Data = [ + [1666955301.638498][6087:6087] CHIP:DMG: Data = [ [1666955301.638587][6087:6087] CHIP:DMG: - [1666955301.638677][6087:6087] CHIP:DMG: ], - [1666955301.638784][6087:6087] CHIP:DMG: }, + [1666955301.638677][6087:6087] CHIP:DMG: ], + [1666955301.638784][6087:6087] CHIP:DMG: }, [1666955301.638873][6087:6087] CHIP:DMG: - [1666955301.638945][6087:6087] CHIP:DMG: }, + [1666955301.638945][6087:6087] CHIP:DMG: }, [1666955301.639042][6087:6087] CHIP:DMG: - [1666955301.639104][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955301.639183][6087:6087] CHIP:DMG: { - [1666955301.639248][6087:6087] CHIP:DMG: AttributeDataIB = - [1666955301.639335][6087:6087] CHIP:DMG: { - [1666955301.639417][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666955301.639658][6087:6087] CHIP:DMG: AttributePathIB = - [1666955301.639755][6087:6087] CHIP:DMG: { - [1666955301.639841][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955301.639933][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955301.640025][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666955301.640112][6087:6087] CHIP:DMG: ListIndex = Null, - [1666955301.640195][6087:6087] CHIP:DMG: } + [1666955301.639104][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955301.639183][6087:6087] CHIP:DMG: { + [1666955301.639248][6087:6087] CHIP:DMG: AttributeDataIB = + [1666955301.639335][6087:6087] CHIP:DMG: { + [1666955301.639417][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666955301.639658][6087:6087] CHIP:DMG: AttributePathIB = + [1666955301.639755][6087:6087] CHIP:DMG: { + [1666955301.639841][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955301.639933][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955301.640025][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666955301.640112][6087:6087] CHIP:DMG: ListIndex = Null, + [1666955301.640195][6087:6087] CHIP:DMG: } [1666955301.640283][6087:6087] CHIP:DMG: - [1666955301.640378][6087:6087] CHIP:DMG: Data = 0, - [1666955301.640457][6087:6087] CHIP:DMG: }, + [1666955301.640378][6087:6087] CHIP:DMG: Data = 0, + [1666955301.640457][6087:6087] CHIP:DMG: }, [1666955301.640543][6087:6087] CHIP:DMG: - [1666955301.640613][6087:6087] CHIP:DMG: }, + [1666955301.640613][6087:6087] CHIP:DMG: }, [1666955301.640708][6087:6087] CHIP:DMG: - [1666955301.640770][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955301.640854][6087:6087] CHIP:DMG: { - [1666955301.640925][6087:6087] CHIP:DMG: AttributeDataIB = - [1666955301.641012][6087:6087] CHIP:DMG: { - [1666955301.641102][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666955301.641190][6087:6087] CHIP:DMG: AttributePathIB = - [1666955301.641274][6087:6087] CHIP:DMG: { - [1666955301.641367][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955301.641466][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955301.641558][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666955301.641645][6087:6087] CHIP:DMG: ListIndex = Null, - [1666955301.641730][6087:6087] CHIP:DMG: } + [1666955301.640770][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955301.640854][6087:6087] CHIP:DMG: { + [1666955301.640925][6087:6087] CHIP:DMG: AttributeDataIB = + [1666955301.641012][6087:6087] CHIP:DMG: { + [1666955301.641102][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666955301.641190][6087:6087] CHIP:DMG: AttributePathIB = + [1666955301.641274][6087:6087] CHIP:DMG: { + [1666955301.641367][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955301.641466][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955301.641558][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666955301.641645][6087:6087] CHIP:DMG: ListIndex = Null, + [1666955301.641730][6087:6087] CHIP:DMG: } [1666955301.641825][6087:6087] CHIP:DMG: - [1666955301.641920][6087:6087] CHIP:DMG: Data = 1, - [1666955301.642000][6087:6087] CHIP:DMG: }, + [1666955301.641920][6087:6087] CHIP:DMG: Data = 1, + [1666955301.642000][6087:6087] CHIP:DMG: }, [1666955301.642094][6087:6087] CHIP:DMG: - [1666955301.642164][6087:6087] CHIP:DMG: }, + [1666955301.642164][6087:6087] CHIP:DMG: }, [1666955301.642261][6087:6087] CHIP:DMG: - [1666955301.642323][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955301.642406][6087:6087] CHIP:DMG: { - [1666955301.642476][6087:6087] CHIP:DMG: AttributeDataIB = - [1666955301.642557][6087:6087] CHIP:DMG: { - [1666955301.642645][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666955301.642752][6087:6087] CHIP:DMG: AttributePathIB = - [1666955301.642842][6087:6087] CHIP:DMG: { - [1666955301.642934][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955301.643024][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955301.643115][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666955301.643201][6087:6087] CHIP:DMG: ListIndex = Null, - [1666955301.643294][6087:6087] CHIP:DMG: } + [1666955301.642323][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955301.642406][6087:6087] CHIP:DMG: { + [1666955301.642476][6087:6087] CHIP:DMG: AttributeDataIB = + [1666955301.642557][6087:6087] CHIP:DMG: { + [1666955301.642645][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666955301.642752][6087:6087] CHIP:DMG: AttributePathIB = + [1666955301.642842][6087:6087] CHIP:DMG: { + [1666955301.642934][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955301.643024][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955301.643115][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666955301.643201][6087:6087] CHIP:DMG: ListIndex = Null, + [1666955301.643294][6087:6087] CHIP:DMG: } [1666955301.643383][6087:6087] CHIP:DMG: - [1666955301.643478][6087:6087] CHIP:DMG: Data = 2, - [1666955301.643564][6087:6087] CHIP:DMG: }, + [1666955301.643478][6087:6087] CHIP:DMG: Data = 2, + [1666955301.643564][6087:6087] CHIP:DMG: }, [1666955301.643657][6087:6087] CHIP:DMG: - [1666955301.643722][6087:6087] CHIP:DMG: }, + [1666955301.643722][6087:6087] CHIP:DMG: }, [1666955301.643817][6087:6087] CHIP:DMG: - [1666955301.643879][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955301.643972][6087:6087] CHIP:DMG: { - [1666955301.644043][6087:6087] CHIP:DMG: AttributeDataIB = - [1666955301.644120][6087:6087] CHIP:DMG: { - [1666955301.644208][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666955301.644289][6087:6087] CHIP:DMG: AttributePathIB = - [1666955301.644372][6087:6087] CHIP:DMG: { - [1666955301.644465][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955301.644558][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955301.644648][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666955301.644733][6087:6087] CHIP:DMG: ListIndex = Null, - [1666955301.644821][6087:6087] CHIP:DMG: } + [1666955301.643879][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955301.643972][6087:6087] CHIP:DMG: { + [1666955301.644043][6087:6087] CHIP:DMG: AttributeDataIB = + [1666955301.644120][6087:6087] CHIP:DMG: { + [1666955301.644208][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666955301.644289][6087:6087] CHIP:DMG: AttributePathIB = + [1666955301.644372][6087:6087] CHIP:DMG: { + [1666955301.644465][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955301.644558][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955301.644648][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666955301.644733][6087:6087] CHIP:DMG: ListIndex = Null, + [1666955301.644821][6087:6087] CHIP:DMG: } [1666955301.644909][6087:6087] CHIP:DMG: - [1666955301.644996][6087:6087] CHIP:DMG: Data = 65528, - [1666955301.645074][6087:6087] CHIP:DMG: }, + [1666955301.644996][6087:6087] CHIP:DMG: Data = 65528, + [1666955301.645074][6087:6087] CHIP:DMG: }, [1666955301.645168][6087:6087] CHIP:DMG: - [1666955301.645234][6087:6087] CHIP:DMG: }, + [1666955301.645234][6087:6087] CHIP:DMG: }, [1666955301.645323][6087:6087] CHIP:DMG: - [1666955301.645385][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955301.645465][6087:6087] CHIP:DMG: { - [1666955301.645535][6087:6087] CHIP:DMG: AttributeDataIB = - [1666955301.645616][6087:6087] CHIP:DMG: { - [1666955301.645704][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666955301.645785][6087:6087] CHIP:DMG: AttributePathIB = - [1666955301.645867][6087:6087] CHIP:DMG: { - [1666955301.645960][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955301.646052][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955301.646149][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666955301.646234][6087:6087] CHIP:DMG: ListIndex = Null, - [1666955301.646318][6087:6087] CHIP:DMG: } + [1666955301.645385][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955301.645465][6087:6087] CHIP:DMG: { + [1666955301.645535][6087:6087] CHIP:DMG: AttributeDataIB = + [1666955301.645616][6087:6087] CHIP:DMG: { + [1666955301.645704][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666955301.645785][6087:6087] CHIP:DMG: AttributePathIB = + [1666955301.645867][6087:6087] CHIP:DMG: { + [1666955301.645960][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955301.646052][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955301.646149][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666955301.646234][6087:6087] CHIP:DMG: ListIndex = Null, + [1666955301.646318][6087:6087] CHIP:DMG: } [1666955301.646406][6087:6087] CHIP:DMG: - [1666955301.646500][6087:6087] CHIP:DMG: Data = 65529, - [1666955301.646586][6087:6087] CHIP:DMG: }, + [1666955301.646500][6087:6087] CHIP:DMG: Data = 65529, + [1666955301.646586][6087:6087] CHIP:DMG: }, [1666955301.646678][6087:6087] CHIP:DMG: - [1666955301.646777][6087:6087] CHIP:DMG: }, + [1666955301.646777][6087:6087] CHIP:DMG: }, [1666955301.646869][6087:6087] CHIP:DMG: - [1666955301.646932][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955301.647016][6087:6087] CHIP:DMG: { - [1666955301.647087][6087:6087] CHIP:DMG: AttributeDataIB = - [1666955301.647172][6087:6087] CHIP:DMG: { - [1666955301.647376][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666955301.647461][6087:6087] CHIP:DMG: AttributePathIB = - [1666955301.647545][6087:6087] CHIP:DMG: { - [1666955301.647631][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955301.647713][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955301.647812][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666955301.647907][6087:6087] CHIP:DMG: ListIndex = Null, - [1666955301.647994][6087:6087] CHIP:DMG: } + [1666955301.646932][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955301.647016][6087:6087] CHIP:DMG: { + [1666955301.647087][6087:6087] CHIP:DMG: AttributeDataIB = + [1666955301.647172][6087:6087] CHIP:DMG: { + [1666955301.647376][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666955301.647461][6087:6087] CHIP:DMG: AttributePathIB = + [1666955301.647545][6087:6087] CHIP:DMG: { + [1666955301.647631][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955301.647713][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955301.647812][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666955301.647907][6087:6087] CHIP:DMG: ListIndex = Null, + [1666955301.647994][6087:6087] CHIP:DMG: } [1666955301.648082][6087:6087] CHIP:DMG: - [1666955301.648168][6087:6087] CHIP:DMG: Data = 65531, - [1666955301.648254][6087:6087] CHIP:DMG: }, + [1666955301.648168][6087:6087] CHIP:DMG: Data = 65531, + [1666955301.648254][6087:6087] CHIP:DMG: }, [1666955301.648338][6087:6087] CHIP:DMG: - [1666955301.648408][6087:6087] CHIP:DMG: }, + [1666955301.648408][6087:6087] CHIP:DMG: }, [1666955301.648503][6087:6087] CHIP:DMG: - [1666955301.648564][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955301.648649][6087:6087] CHIP:DMG: { - [1666955301.648714][6087:6087] CHIP:DMG: AttributeDataIB = - [1666955301.648800][6087:6087] CHIP:DMG: { - [1666955301.648880][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666955301.648961][6087:6087] CHIP:DMG: AttributePathIB = - [1666955301.649050][6087:6087] CHIP:DMG: { - [1666955301.649136][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955301.649226][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955301.649314][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666955301.649401][6087:6087] CHIP:DMG: ListIndex = Null, - [1666955301.649484][6087:6087] CHIP:DMG: } + [1666955301.648564][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955301.648649][6087:6087] CHIP:DMG: { + [1666955301.648714][6087:6087] CHIP:DMG: AttributeDataIB = + [1666955301.648800][6087:6087] CHIP:DMG: { + [1666955301.648880][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666955301.648961][6087:6087] CHIP:DMG: AttributePathIB = + [1666955301.649050][6087:6087] CHIP:DMG: { + [1666955301.649136][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955301.649226][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955301.649314][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666955301.649401][6087:6087] CHIP:DMG: ListIndex = Null, + [1666955301.649484][6087:6087] CHIP:DMG: } [1666955301.649579][6087:6087] CHIP:DMG: - [1666955301.649804][6087:6087] CHIP:DMG: Data = 65532, - [1666955301.649887][6087:6087] CHIP:DMG: }, + [1666955301.649804][6087:6087] CHIP:DMG: Data = 65532, + [1666955301.649887][6087:6087] CHIP:DMG: }, [1666955301.649973][6087:6087] CHIP:DMG: - [1666955301.650043][6087:6087] CHIP:DMG: }, + [1666955301.650043][6087:6087] CHIP:DMG: }, [1666955301.650137][6087:6087] CHIP:DMG: - [1666955301.650198][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955301.650282][6087:6087] CHIP:DMG: { - [1666955301.650353][6087:6087] CHIP:DMG: AttributeDataIB = - [1666955301.650440][6087:6087] CHIP:DMG: { - [1666955301.650528][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, - [1666955301.650609][6087:6087] CHIP:DMG: AttributePathIB = - [1666955301.650693][6087:6087] CHIP:DMG: { - [1666955301.650840][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955301.650934][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955301.651032][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666955301.651126][6087:6087] CHIP:DMG: ListIndex = Null, - [1666955301.651219][6087:6087] CHIP:DMG: } + [1666955301.650198][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955301.650282][6087:6087] CHIP:DMG: { + [1666955301.650353][6087:6087] CHIP:DMG: AttributeDataIB = + [1666955301.650440][6087:6087] CHIP:DMG: { + [1666955301.650528][6087:6087] CHIP:DMG: DataVersion = 0xe31304a9, + [1666955301.650609][6087:6087] CHIP:DMG: AttributePathIB = + [1666955301.650693][6087:6087] CHIP:DMG: { + [1666955301.650840][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955301.650934][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955301.651032][6087:6087] CHIP:DMG: Attribute = 0x0000_FFFB, + [1666955301.651126][6087:6087] CHIP:DMG: ListIndex = Null, + [1666955301.651219][6087:6087] CHIP:DMG: } [1666955301.651308][6087:6087] CHIP:DMG: - [1666955301.651392][6087:6087] CHIP:DMG: Data = 65533, - [1666955301.651471][6087:6087] CHIP:DMG: }, + [1666955301.651392][6087:6087] CHIP:DMG: Data = 65533, + [1666955301.651471][6087:6087] CHIP:DMG: }, [1666955301.651558][6087:6087] CHIP:DMG: - [1666955301.651628][6087:6087] CHIP:DMG: }, + [1666955301.651628][6087:6087] CHIP:DMG: }, [1666955301.651708][6087:6087] CHIP:DMG: - [1666955301.651769][6087:6087] CHIP:DMG: ], + [1666955301.651769][6087:6087] CHIP:DMG: ], disabled: true - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: TMP.C.AO-READ verification: | .Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -859,19 +864,19 @@ tests: [1666955343.057022][6087:6087] CHIP:IM: Received Read request [1666955343.057192][6087:6087] CHIP:DMG: ReadRequestMessage = [1666955343.057258][6087:6087] CHIP:DMG: { - [1666955343.057313][6087:6087] CHIP:DMG: AttributePathIBs = - [1666955343.057378][6087:6087] CHIP:DMG: [ - [1666955343.057440][6087:6087] CHIP:DMG: AttributePathIB = - [1666955343.057515][6087:6087] CHIP:DMG: { - [1666955343.057649][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955343.057746][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955343.057820][6087:6087] CHIP:DMG: Attribute = 0x0000_0003, - [1666955343.057902][6087:6087] CHIP:DMG: } + [1666955343.057313][6087:6087] CHIP:DMG: AttributePathIBs = + [1666955343.057378][6087:6087] CHIP:DMG: [ + [1666955343.057440][6087:6087] CHIP:DMG: AttributePathIB = + [1666955343.057515][6087:6087] CHIP:DMG: { + [1666955343.057649][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955343.057746][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955343.057820][6087:6087] CHIP:DMG: Attribute = 0x0000_0003, + [1666955343.057902][6087:6087] CHIP:DMG: } [1666955343.057980][6087:6087] CHIP:DMG: - [1666955343.058050][6087:6087] CHIP:DMG: ], + [1666955343.058050][6087:6087] CHIP:DMG: ], [1666955343.058122][6087:6087] CHIP:DMG: - [1666955343.058256][6087:6087] CHIP:DMG: isFabricFiltered = true, - [1666955343.058325][6087:6087] CHIP:DMG: InteractionModelRevision = 1 + [1666955343.058256][6087:6087] CHIP:DMG: isFabricFiltered = true, + [1666955343.058325][6087:6087] CHIP:DMG: InteractionModelRevision = 1 [1666955343.058385][6087:6087] CHIP:DMG: }, [1666955343.058552][6087:6087] CHIP:DMG: IM RH moving to [GeneratingReports] [1666955343.058812][6087:6087] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -898,30 +903,31 @@ tests: [1666955343.061420][6087:6087] CHIP:DMG: [1666955343.061568][6087:6087] CHIP:DMG: ReportDataMessage = [1666955343.061634][6087:6087] CHIP:DMG: { - [1666955343.061689][6087:6087] CHIP:DMG: AttributeReportIBs = - [1666955343.061774][6087:6087] CHIP:DMG: [ - [1666955343.061837][6087:6087] CHIP:DMG: AttributeReportIB = - [1666955343.061919][6087:6087] CHIP:DMG: { - [1666955343.061991][6087:6087] CHIP:DMG: AttributeStatusIB = - [1666955343.062082][6087:6087] CHIP:DMG: { - [1666955343.062167][6087:6087] CHIP:DMG: AttributePathIB = - [1666955343.062258][6087:6087] CHIP:DMG: { - [1666955343.062355][6087:6087] CHIP:DMG: Endpoint = 0x1, - [1666955343.062437][6087:6087] CHIP:DMG: Cluster = 0x402, - [1666955343.062528][6087:6087] CHIP:DMG: Attribute = 0x0000_0003, - [1666955343.062603][6087:6087] CHIP:DMG: } + [1666955343.061689][6087:6087] CHIP:DMG: AttributeReportIBs = + [1666955343.061774][6087:6087] CHIP:DMG: [ + [1666955343.061837][6087:6087] CHIP:DMG: AttributeReportIB = + [1666955343.061919][6087:6087] CHIP:DMG: { + [1666955343.061991][6087:6087] CHIP:DMG: AttributeStatusIB = + [1666955343.062082][6087:6087] CHIP:DMG: { + [1666955343.062167][6087:6087] CHIP:DMG: AttributePathIB = + [1666955343.062258][6087:6087] CHIP:DMG: { + [1666955343.062355][6087:6087] CHIP:DMG: Endpoint = 0x1, + [1666955343.062437][6087:6087] CHIP:DMG: Cluster = 0x402, + [1666955343.062528][6087:6087] CHIP:DMG: Attribute = 0x0000_0003, + [1666955343.062603][6087:6087] CHIP:DMG: } [1666955343.062697][6087:6087] CHIP:DMG: - [1666955343.062822][6087:6087] CHIP:DMG: StatusIB = - [1666955343.062911][6087:6087] CHIP:DMG: { - [1666955343.062997][6087:6087] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), - [1666955343.063081][6087:6087] CHIP:DMG: }, + [1666955343.062822][6087:6087] CHIP:DMG: StatusIB = + [1666955343.062911][6087:6087] CHIP:DMG: { + [1666955343.062997][6087:6087] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), + [1666955343.063081][6087:6087] CHIP:DMG: }, [1666955343.063167][6087:6087] CHIP:DMG: - [1666955343.063236][6087:6087] CHIP:DMG: }, + [1666955343.063236][6087:6087] CHIP:DMG: }, disabled: true - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: TMP.C.AO-WRITE verification: | There is no writable mandatory attibute for this cluster disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml index 728066c92e498f..da09da42148124 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_2_2.yaml @@ -441,7 +441,7 @@ tests: [1676029222.303955][19403:19405] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) [1676029222.304055][19403:19405] CHIP:EM: <<< [E:236i M:251820549 (Ack:138263425)] (S) Msg TX to 1:0000000000000001 [E8D5] --- Type 0000:10 - ./chip-tool thermostat write occupied-heating-setpoint 3000 1 1 + ./chip-tool thermostat write occupied-heating-setpoint 700 1 1 On TH(chip-tool) verify that DUT sends a success response diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml index 5a816277a20ea2..f81974cbd7cda8 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml @@ -36,6 +36,7 @@ tests: - label: "DUT reads all supported mandatory attributes from TH one at a time in a manufacturer specific order" + PICS: TSTAT.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool thermostat read local-temperature 1 1 @@ -255,6 +256,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: TSTAT.C.AO-READ verification: | Most of optional attribute is not implemented in SDK @@ -265,6 +267,7 @@ tests: - label: "DUT writes a suitable value to all supported mandatory attributes on the TH one at a time in a manufacturer specific order" + PICS: TSTAT.C.AM-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -421,6 +424,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: TSTAT.C.AO-WRITE verification: | Verify by sending the optional attribute which is mentioned in spec @@ -957,6 +961,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: TSTAT.C.AO-READ verification: | Verify by sending the optional attribute which is mentioned in spec @@ -966,6 +971,7 @@ tests: - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: TSTAT.C.AO-WRITE verification: | Verify by sending the optional attribute which is mentioned in spec diff --git a/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml index 11ff1081bf14df..cbfe05303d8a7d 100644 --- a/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml @@ -36,6 +36,7 @@ tests: - label: "DUT reads all supported mandatory attributes from TH one at a time in a manufacturer specific order" + PICS: TSUIC.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -181,6 +182,7 @@ tests: - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: TSUIC.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -257,6 +259,7 @@ tests: - label: "DUT writes a suitable value to all supported mandatory attributes on the TH one at a time in a manufacturer specific order" + PICS: TSUIC.C.AM-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -343,26 +346,26 @@ tests: [1666954081.096012][6038:6038] CHIP:DMG: IM WH moving to [Initialized] [1666954081.096146][6038:6038] CHIP:DMG: WriteRequestMessage = [1666954081.096237][6038:6038] CHIP:DMG: { - [1666954081.096297][6038:6038] CHIP:DMG: suppressResponse = false, - [1666954081.096395][6038:6038] CHIP:DMG: timedRequest = false, - [1666954081.096460][6038:6038] CHIP:DMG: AttributeDataIBs = - [1666954081.096557][6038:6038] CHIP:DMG: [ - [1666954081.096623][6038:6038] CHIP:DMG: AttributeDataIB = - [1666954081.096712][6038:6038] CHIP:DMG: { - [1666954081.096803][6038:6038] CHIP:DMG: AttributePathIB = - [1666954081.096890][6038:6038] CHIP:DMG: { - [1666954081.097001][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954081.097091][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666954081.097203][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666954081.097286][6038:6038] CHIP:DMG: } + [1666954081.096297][6038:6038] CHIP:DMG: suppressResponse = false, + [1666954081.096395][6038:6038] CHIP:DMG: timedRequest = false, + [1666954081.096460][6038:6038] CHIP:DMG: AttributeDataIBs = + [1666954081.096557][6038:6038] CHIP:DMG: [ + [1666954081.096623][6038:6038] CHIP:DMG: AttributeDataIB = + [1666954081.096712][6038:6038] CHIP:DMG: { + [1666954081.096803][6038:6038] CHIP:DMG: AttributePathIB = + [1666954081.096890][6038:6038] CHIP:DMG: { + [1666954081.097001][6038:6038] CHIP:DMG: Endpoint = 0x1, + [1666954081.097091][6038:6038] CHIP:DMG: Cluster = 0x204, + [1666954081.097203][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, + [1666954081.097286][6038:6038] CHIP:DMG: } [1666954081.097397][6038:6038] CHIP:DMG: - [1666954081.097485][6038:6038] CHIP:DMG: Data = 1, - [1666954081.097588][6038:6038] CHIP:DMG: }, + [1666954081.097485][6038:6038] CHIP:DMG: Data = 1, + [1666954081.097588][6038:6038] CHIP:DMG: }, [1666954081.097665][6038:6038] CHIP:DMG: - [1666954081.097750][6038:6038] CHIP:DMG: ], + [1666954081.097750][6038:6038] CHIP:DMG: ], [1666954081.097827][6038:6038] CHIP:DMG: - [1666954081.097914][6038:6038] CHIP:DMG: moreChunkedMessages = false, - [1666954081.097983][6038:6038] CHIP:DMG: InteractionModelRevision = 1 + [1666954081.097914][6038:6038] CHIP:DMG: moreChunkedMessages = false, + [1666954081.097983][6038:6038] CHIP:DMG: InteractionModelRevision = 1 [1666954081.098043][6038:6038] CHIP:DMG: }, [1666954081.098262][6038:6038] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=m [1666954081.098373][6038:6038] CHIP:DMG: AccessControl: allowed @@ -388,30 +391,31 @@ tests: [1666954081.101348][6038:6038] CHIP:DMG: [1666954081.101477][6038:6038] CHIP:DMG: WriteResponseMessage = [1666954081.101572][6038:6038] CHIP:DMG: { - [1666954081.101627][6038:6038] CHIP:DMG: AttributeStatusIBs = - [1666954081.101740][6038:6038] CHIP:DMG: [ - [1666954081.101806][6038:6038] CHIP:DMG: AttributeStatusIB = - [1666954081.101908][6038:6038] CHIP:DMG: { - [1666954081.101985][6038:6038] CHIP:DMG: AttributePathIB = - [1666954081.102092][6038:6038] CHIP:DMG: { - [1666954081.102180][6038:6038] CHIP:DMG: Endpoint = 0x1, - [1666954081.102294][6038:6038] CHIP:DMG: Cluster = 0x204, - [1666954081.102383][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, - [1666954081.102484][6038:6038] CHIP:DMG: } + [1666954081.101627][6038:6038] CHIP:DMG: AttributeStatusIBs = + [1666954081.101740][6038:6038] CHIP:DMG: [ + [1666954081.101806][6038:6038] CHIP:DMG: AttributeStatusIB = + [1666954081.101908][6038:6038] CHIP:DMG: { + [1666954081.101985][6038:6038] CHIP:DMG: AttributePathIB = + [1666954081.102092][6038:6038] CHIP:DMG: { + [1666954081.102180][6038:6038] CHIP:DMG: Endpoint = 0x1, + [1666954081.102294][6038:6038] CHIP:DMG: Cluster = 0x204, + [1666954081.102383][6038:6038] CHIP:DMG: Attribute = 0x0000_0001, + [1666954081.102484][6038:6038] CHIP:DMG: } [1666954081.102580][6038:6038] CHIP:DMG: - [1666954081.102686][6038:6038] CHIP:DMG: StatusIB = - [1666954081.102814][6038:6038] CHIP:DMG: { - [1666954081.102924][6038:6038] CHIP:DMG: status = 0x00 (SUCCESS), - [1666954081.103008][6038:6038] CHIP:DMG: }, + [1666954081.102686][6038:6038] CHIP:DMG: StatusIB = + [1666954081.102814][6038:6038] CHIP:DMG: { + [1666954081.102924][6038:6038] CHIP:DMG: status = 0x00 (SUCCESS), + [1666954081.103008][6038:6038] CHIP:DMG: }, [1666954081.103112][6038:6038] CHIP:DMG: - [1666954081.103187][6038:6038] CHIP:DMG: }, + [1666954081.103187][6038:6038] CHIP:DMG: }, [1666954081.103287][6038:6038] CHIP:DMG: - [1666954081.103352][6038:6038] CHIP:DMG: ], + [1666954081.103352][6038:6038] CHIP:DMG: ], disabled: true - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: TSUIC.C.AO-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -451,6 +455,7 @@ tests: verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + ./chip-tool thermostatuserinterfaceconfiguration read temperature-display-mode 1 1 Verify DUT receives temperature-display-mode attribute response on the TH(all-clusters-minimal-app) Log: @@ -458,19 +463,19 @@ tests: [1666952907.485012][5988:5988] CHIP:IM: Received Read request [1666952907.485181][5988:5988] CHIP:DMG: ReadRequestMessage = [1666952907.485247][5988:5988] CHIP:DMG: { - [1666952907.485298][5988:5988] CHIP:DMG: AttributePathIBs = - [1666952907.485363][5988:5988] CHIP:DMG: [ - [1666952907.485425][5988:5988] CHIP:DMG: AttributePathIB = - [1666952907.485499][5988:5988] CHIP:DMG: { - [1666952907.485577][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666952907.485654][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666952907.485743][5988:5988] CHIP:DMG: Attribute = 0x0000_0000, - [1666952907.485825][5988:5988] CHIP:DMG: } + [1666952907.485298][5988:5988] CHIP:DMG: AttributePathIBs = + [1666952907.485363][5988:5988] CHIP:DMG: [ + [1666952907.485425][5988:5988] CHIP:DMG: AttributePathIB = + [1666952907.485499][5988:5988] CHIP:DMG: { + [1666952907.485577][5988:5988] CHIP:DMG: Endpoint = 0x1, + [1666952907.485654][5988:5988] CHIP:DMG: Cluster = 0x204, + [1666952907.485743][5988:5988] CHIP:DMG: Attribute = 0x0000_0000, + [1666952907.485825][5988:5988] CHIP:DMG: } [1666952907.485957][5988:5988] CHIP:DMG: - [1666952907.486032][5988:5988] CHIP:DMG: ], + [1666952907.486032][5988:5988] CHIP:DMG: ], [1666952907.486105][5988:5988] CHIP:DMG: - [1666952907.486173][5988:5988] CHIP:DMG: isFabricFiltered = true, - [1666952907.486237][5988:5988] CHIP:DMG: InteractionModelRevision = 1 + [1666952907.486173][5988:5988] CHIP:DMG: isFabricFiltered = true, + [1666952907.486237][5988:5988] CHIP:DMG: InteractionModelRevision = 1 [1666952907.486296][5988:5988] CHIP:DMG: }, [1666952907.486459][5988:5988] CHIP:DMG: IM RH moving to [GeneratingReports] [1666952907.486859][5988:5988] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -499,24 +504,24 @@ tests: [1666952907.489446][5988:5988] CHIP:DMG: [1666952907.489604][5988:5988] CHIP:DMG: ReportDataMessage = [1666952907.489670][5988:5988] CHIP:DMG: { - [1666952907.489724][5988:5988] CHIP:DMG: AttributeReportIBs = - [1666952907.489807][5988:5988] CHIP:DMG: [ - [1666952907.489869][5988:5988] CHIP:DMG: AttributeReportIB = - [1666952907.489948][5988:5988] CHIP:DMG: { - [1666952907.490153][5988:5988] CHIP:DMG: AttributeDataIB = - [1666952907.490246][5988:5988] CHIP:DMG: { - [1666952907.490331][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666952907.490412][5988:5988] CHIP:DMG: AttributePathIB = - [1666952907.490496][5988:5988] CHIP:DMG: { - [1666952907.490583][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666952907.490681][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666952907.490841][5988:5988] CHIP:DMG: Attribute = 0x0000_0000, - [1666952907.490919][5988:5988] CHIP:DMG: } + [1666952907.489724][5988:5988] CHIP:DMG: AttributeReportIBs = + [1666952907.489807][5988:5988] CHIP:DMG: [ + [1666952907.489869][5988:5988] CHIP:DMG: AttributeReportIB = + [1666952907.489948][5988:5988] CHIP:DMG: { + [1666952907.490153][5988:5988] CHIP:DMG: AttributeDataIB = + [1666952907.490246][5988:5988] CHIP:DMG: { + [1666952907.490331][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, + [1666952907.490412][5988:5988] CHIP:DMG: AttributePathIB = + [1666952907.490496][5988:5988] CHIP:DMG: { + [1666952907.490583][5988:5988] CHIP:DMG: Endpoint = 0x1, + [1666952907.490681][5988:5988] CHIP:DMG: Cluster = 0x204, + [1666952907.490841][5988:5988] CHIP:DMG: Attribute = 0x0000_0000, + [1666952907.490919][5988:5988] CHIP:DMG: } [1666952907.491017][5988:5988] CHIP:DMG: - [1666952907.491104][5988:5988] CHIP:DMG: Data = 0, - [1666952907.491182][5988:5988] CHIP:DMG: }, + [1666952907.491104][5988:5988] CHIP:DMG: Data = 0, + [1666952907.491182][5988:5988] CHIP:DMG: }, [1666952907.491276][5988:5988] CHIP:DMG: - [1666952907.491346][5988:5988] CHIP:DMG: }, + [1666952907.491346][5988:5988] CHIP:DMG: }, @@ -527,19 +532,19 @@ tests: [1666952951.992544][5988:5988] CHIP:IM: Received Read request [1666952951.992711][5988:5988] CHIP:DMG: ReadRequestMessage = [1666952951.992778][5988:5988] CHIP:DMG: { - [1666952951.992824][5988:5988] CHIP:DMG: AttributePathIBs = - [1666952951.992880][5988:5988] CHIP:DMG: [ - [1666952951.992950][5988:5988] CHIP:DMG: AttributePathIB = - [1666952951.993026][5988:5988] CHIP:DMG: { - [1666952951.993105][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666952951.993195][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666952951.993284][5988:5988] CHIP:DMG: Attribute = 0x0000_0001, - [1666952951.993366][5988:5988] CHIP:DMG: } + [1666952951.992824][5988:5988] CHIP:DMG: AttributePathIBs = + [1666952951.992880][5988:5988] CHIP:DMG: [ + [1666952951.992950][5988:5988] CHIP:DMG: AttributePathIB = + [1666952951.993026][5988:5988] CHIP:DMG: { + [1666952951.993105][5988:5988] CHIP:DMG: Endpoint = 0x1, + [1666952951.993195][5988:5988] CHIP:DMG: Cluster = 0x204, + [1666952951.993284][5988:5988] CHIP:DMG: Attribute = 0x0000_0001, + [1666952951.993366][5988:5988] CHIP:DMG: } [1666952951.993444][5988:5988] CHIP:DMG: - [1666952951.993509][5988:5988] CHIP:DMG: ], + [1666952951.993509][5988:5988] CHIP:DMG: ], [1666952951.993592][5988:5988] CHIP:DMG: - [1666952951.993660][5988:5988] CHIP:DMG: isFabricFiltered = true, - [1666952951.993724][5988:5988] CHIP:DMG: InteractionModelRevision = 1 + [1666952951.993660][5988:5988] CHIP:DMG: isFabricFiltered = true, + [1666952951.993724][5988:5988] CHIP:DMG: InteractionModelRevision = 1 [1666952951.993783][5988:5988] CHIP:DMG: }, [1666952951.993951][5988:5988] CHIP:DMG: IM RH moving to [GeneratingReports] [1666952951.994166][5988:5988] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -568,26 +573,26 @@ tests: [1666952951.997042][5988:5988] CHIP:DMG: [1666952951.997203][5988:5988] CHIP:DMG: ReportDataMessage = [1666952951.997270][5988:5988] CHIP:DMG: { - [1666952951.997325][5988:5988] CHIP:DMG: AttributeReportIBs = - [1666952951.997400][5988:5988] CHIP:DMG: [ - [1666952951.997462][5988:5988] CHIP:DMG: AttributeReportIB = - [1666952951.997549][5988:5988] CHIP:DMG: { - [1666952951.997615][5988:5988] CHIP:DMG: AttributeDataIB = - [1666952951.997692][5988:5988] CHIP:DMG: { - [1666952951.997781][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666952951.997856][5988:5988] CHIP:DMG: AttributePathIB = - [1666952951.997946][5988:5988] CHIP:DMG: { - [1666952951.998041][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666952951.998132][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666952951.998227][5988:5988] CHIP:DMG: Attribute = 0x0000_0001, - [1666952951.998319][5988:5988] CHIP:DMG: } + [1666952951.997325][5988:5988] CHIP:DMG: AttributeReportIBs = + [1666952951.997400][5988:5988] CHIP:DMG: [ + [1666952951.997462][5988:5988] CHIP:DMG: AttributeReportIB = + [1666952951.997549][5988:5988] CHIP:DMG: { + [1666952951.997615][5988:5988] CHIP:DMG: AttributeDataIB = + [1666952951.997692][5988:5988] CHIP:DMG: { + [1666952951.997781][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, + [1666952951.997856][5988:5988] CHIP:DMG: AttributePathIB = + [1666952951.997946][5988:5988] CHIP:DMG: { + [1666952951.998041][5988:5988] CHIP:DMG: Endpoint = 0x1, + [1666952951.998132][5988:5988] CHIP:DMG: Cluster = 0x204, + [1666952951.998227][5988:5988] CHIP:DMG: Attribute = 0x0000_0001, + [1666952951.998319][5988:5988] CHIP:DMG: } [1666952951.998414][5988:5988] CHIP:DMG: - [1666952951.998503][5988:5988] CHIP:DMG: Data = 0, - [1666952951.998582][5988:5988] CHIP:DMG: }, + [1666952951.998503][5988:5988] CHIP:DMG: Data = 0, + [1666952951.998582][5988:5988] CHIP:DMG: }, [1666952951.998666][5988:5988] CHIP:DMG: - [1666952951.998772][5988:5988] CHIP:DMG: }, + [1666952951.998772][5988:5988] CHIP:DMG: }, [1666952951.998858][5988:5988] CHIP:DMG: - [1666952951.998925][5988:5988] CHIP:DMG: ], + [1666952951.998925][5988:5988] CHIP:DMG: ], ./chip-tool thermostatuserinterfaceconfiguration read feature-map 1 1 @@ -597,19 +602,19 @@ tests: [1666953011.987582][5988:5988] CHIP:IM: Received Read request [1666953011.987754][5988:5988] CHIP:DMG: ReadRequestMessage = [1666953011.987820][5988:5988] CHIP:DMG: { - [1666953011.987875][5988:5988] CHIP:DMG: AttributePathIBs = - [1666953011.987940][5988:5988] CHIP:DMG: [ - [1666953011.988002][5988:5988] CHIP:DMG: AttributePathIB = - [1666953011.988140][5988:5988] CHIP:DMG: { - [1666953011.988218][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953011.988315][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953011.988399][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFC, - [1666953011.988476][5988:5988] CHIP:DMG: } + [1666953011.987875][5988:5988] CHIP:DMG: AttributePathIBs = + [1666953011.987940][5988:5988] CHIP:DMG: [ + [1666953011.988002][5988:5988] CHIP:DMG: AttributePathIB = + [1666953011.988140][5988:5988] CHIP:DMG: { + [1666953011.988218][5988:5988] CHIP:DMG: Endpoint = 0x1, + [1666953011.988315][5988:5988] CHIP:DMG: Cluster = 0x204, + [1666953011.988399][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFC, + [1666953011.988476][5988:5988] CHIP:DMG: } [1666953011.988557][5988:5988] CHIP:DMG: - [1666953011.988630][5988:5988] CHIP:DMG: ], + [1666953011.988630][5988:5988] CHIP:DMG: ], [1666953011.988703][5988:5988] CHIP:DMG: - [1666953011.988771][5988:5988] CHIP:DMG: isFabricFiltered = true, - [1666953011.988837][5988:5988] CHIP:DMG: InteractionModelRevision = 1 + [1666953011.988771][5988:5988] CHIP:DMG: isFabricFiltered = true, + [1666953011.988837][5988:5988] CHIP:DMG: InteractionModelRevision = 1 [1666953011.988895][5988:5988] CHIP:DMG: }, [1666953011.989066][5988:5988] CHIP:DMG: IM RH moving to [GeneratingReports] [1666953011.989956][5988:5988] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -638,229 +643,209 @@ tests: [1666953011.993094][5988:5988] CHIP:DMG: [1666953011.993274][5988:5988] CHIP:DMG: ReportDataMessage = [1666953011.993332][5988:5988] CHIP:DMG: { - [1666953011.993378][5988:5988] CHIP:DMG: AttributeReportIBs = - [1666953011.993663][5988:5988] CHIP:DMG: [ - [1666953011.993735][5988:5988] CHIP:DMG: AttributeReportIB = - [1666953011.993827][5988:5988] CHIP:DMG: { - [1666953011.993903][5988:5988] CHIP:DMG: AttributeDataIB = - [1666953011.993986][5988:5988] CHIP:DMG: { - [1666953011.994072][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666953011.994156][5988:5988] CHIP:DMG: AttributePathIB = - [1666953011.994242][5988:5988] CHIP:DMG: { - [1666953011.994331][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953011.994423][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953011.994515][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFC, - [1666953011.994599][5988:5988] CHIP:DMG: } + [1666953011.993378][5988:5988] CHIP:DMG: AttributeReportIBs = + [1666953011.993663][5988:5988] CHIP:DMG: [ + [1666953011.993735][5988:5988] CHIP:DMG: AttributeReportIB = + [1666953011.993827][5988:5988] CHIP:DMG: { + [1666953011.993903][5988:5988] CHIP:DMG: AttributeDataIB = + [1666953011.993986][5988:5988] CHIP:DMG: { + [1666953011.994072][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, + [1666953011.994156][5988:5988] CHIP:DMG: AttributePathIB = + [1666953011.994242][5988:5988] CHIP:DMG: { + [1666953011.994331][5988:5988] CHIP:DMG: Endpoint = 0x1, + [1666953011.994423][5988:5988] CHIP:DMG: Cluster = 0x204, + [1666953011.994515][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFC, + [1666953011.994599][5988:5988] CHIP:DMG: } [1666953011.994690][5988:5988] CHIP:DMG: - [1666953011.994825][5988:5988] CHIP:DMG: Data = 0, - [1666953011.994908][5988:5988] CHIP:DMG: }, + [1666953011.994825][5988:5988] CHIP:DMG: Data = 0, + [1666953011.994908][5988:5988] CHIP:DMG: }, [1666953011.995069][5988:5988] CHIP:DMG: - [1666953011.995147][5988:5988] CHIP:DMG: }, + [1666953011.995147][5988:5988] CHIP:DMG: }, [1666953011.995233][5988:5988] CHIP:DMG: - [1666953011.995296][5988:5988] CHIP:DMG: ], + [1666953011.995296][5988:5988] CHIP:DMG: ], ./chip-tool thermostatuserinterfaceconfiguration read attribute-list 1 1 Verify DUT receives attribute-list attribute response on the TH(all-clusters-minimal-app) Log: - [1666953062.848286][5988:5988] CHIP:EM: Handling via exchange: 37504r, Delegate: 0xaaaad96680e0 - [1666953062.848382][5988:5988] CHIP:IM: Received Read request - [1666953062.848550][5988:5988] CHIP:DMG: ReadRequestMessage = - [1666953062.848617][5988:5988] CHIP:DMG: { - [1666953062.848671][5988:5988] CHIP:DMG: AttributePathIBs = - [1666953062.848736][5988:5988] CHIP:DMG: [ - [1666953062.848798][5988:5988] CHIP:DMG: AttributePathIB = - [1666953062.848884][5988:5988] CHIP:DMG: { - [1666953062.848963][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953062.849052][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953062.849140][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666953062.849221][5988:5988] CHIP:DMG: } - [1666953062.849299][5988:5988] CHIP:DMG: - [1666953062.849368][5988:5988] CHIP:DMG: ], - [1666953062.849440][5988:5988] CHIP:DMG: - [1666953062.849508][5988:5988] CHIP:DMG: isFabricFiltered = true, - [1666953062.849572][5988:5988] CHIP:DMG: InteractionModelRevision = 1 - [1666953062.849632][5988:5988] CHIP:DMG: }, - [1666953062.849797][5988:5988] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666953062.850013][5988:5988] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666953062.850083][5988:5988] CHIP:DMG: Cluster 204, Attribute fffb is dirty - [1666953062.850138][5988:5988] CHIP:DMG: Reading attribute: Cluster=0x0000_0204 Endpoint=1 AttributeId=0x0000_FFFB (expanded=0) - [1666953062.850202][5988:5988] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=v - [1666953062.850277][5988:5988] CHIP:DMG: AccessControl: allowed - [1666953062.850447][5988:5988] CHIP:DMG: Sending report (payload has 253 bytes)... - [1666953062.851121][5988:5988] CHIP:EM: <<< [E:37504r M:49467837 (Ack:243522027)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666953062.851227][5988:5988] CHIP:IN: (S) Sending msg 49467837 on secure session with LSID: 10700 - [1666953062.851960][5988:5988] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:40546 | 49467837 | [Interaction Model (1) / Report Data (0x05) / Session = 39279 / Exchange = 37504] - [1666953062.852058][5988:5988] CHIP:DMG: Header Flags = - [1666953062.852115][5988:5988] CHIP:DMG: { - [1666953062.852203][5988:5988] CHIP:DMG: Exchange (0x06) = - [1666953062.852260][5988:5988] CHIP:DMG: { - [1666953062.852320][5988:5988] CHIP:DMG: AckMsg = 243522027 - [1666953062.852375][5988:5988] CHIP:DMG: NeedsAck = true - [1666953062.852429][5988:5988] CHIP:DMG: } - [1666953062.852500][5988:5988] CHIP:DMG: } - [1666953062.852555][5988:5988] CHIP:DMG: - [1666953062.852624][5988:5988] CHIP:DMG: Encrypted Payload (287 bytes) = - [1666953062.852678][5988:5988] CHIP:DMG: { - [1666953062.852733][5988:5988] CHIP:DMG: data = 006f9900bdd1f2024c21003319599058e9b5e80ea09a92b2a9158147ee7910fef9e0d83d95952464fce57c66b254dffb580501d0bb38f46509e13da9b04aa03880d7e6edb06b98563bd08f27bff285a85532404dab36d0b39bed72c209f2fbd15104536d80f72c93b9b3d834ec070a173d19e5731b7e85425c3506b078e1740388fe11d3e6bbfbfd2f574fb84f6f3cb41fdc8edf5a4ddc342f665b5fee02ad2796f442b99ec6f3345c490eff770860008300f34bda7b4b8bd54438af34f4ecd9185e4c81dc138ab5488cd21dfd22b727520136313bbc7a87b3efc9d6b7033f5fa1774ede97021a420d0da0d7d09db91796efa47829858238c4a63729fccde98ed69b9eee9af368a784b30e94b8ac456ff06ec93da791b3205525f74873520f - [1666953062.852804][5988:5988] CHIP:DMG: buffer_ptr = 187650777054144 - [1666953062.852858][5988:5988] CHIP:DMG: } - [1666953062.852910][5988:5988] CHIP:DMG: - [1666953062.853312][5988:5988] CHIP:DMG: ReportDataMessage = - [1666953062.853377][5988:5988] CHIP:DMG: { - [1666953062.853432][5988:5988] CHIP:DMG: AttributeReportIBs = - [1666953062.853509][5988:5988] CHIP:DMG: [ - [1666953062.853571][5988:5988] CHIP:DMG: AttributeReportIB = - [1666953062.853658][5988:5988] CHIP:DMG: { - [1666953062.853729][5988:5988] CHIP:DMG: AttributeDataIB = - [1666953062.853810][5988:5988] CHIP:DMG: { - [1666953062.853894][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666953062.853975][5988:5988] CHIP:DMG: AttributePathIB = - [1666953062.854069][5988:5988] CHIP:DMG: { - [1666953062.854164][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953062.854255][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953062.854346][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666953062.854438][5988:5988] CHIP:DMG: } - [1666953062.854535][5988:5988] CHIP:DMG: - [1666953062.854626][5988:5988] CHIP:DMG: Data = [ - [1666953062.854774][5988:5988] CHIP:DMG: - [1666953062.854870][5988:5988] CHIP:DMG: ], - [1666953062.854948][5988:5988] CHIP:DMG: }, - [1666953062.855042][5988:5988] CHIP:DMG: - [1666953062.855112][5988:5988] CHIP:DMG: }, - [1666953062.855208][5988:5988] CHIP:DMG: - [1666953062.855270][5988:5988] CHIP:DMG: AttributeReportIB = - [1666953062.855355][5988:5988] CHIP:DMG: { - [1666953062.855426][5988:5988] CHIP:DMG: AttributeDataIB = - [1666953062.855512][5988:5988] CHIP:DMG: { - [1666953062.855600][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666953062.855826][5988:5988] CHIP:DMG: AttributePathIB = - [1666953062.855917][5988:5988] CHIP:DMG: { - [1666953062.856011][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953062.856101][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953062.856193][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666953062.856289][5988:5988] CHIP:DMG: ListIndex = Null, - [1666953062.856381][5988:5988] CHIP:DMG: } - [1666953062.856478][5988:5988] CHIP:DMG: - [1666953062.856572][5988:5988] CHIP:DMG: Data = 0, - [1666953062.856651][5988:5988] CHIP:DMG: }, - [1666953062.856746][5988:5988] CHIP:DMG: - [1666953062.856817][5988:5988] CHIP:DMG: }, - [1666953062.856913][5988:5988] CHIP:DMG: - [1666953062.856975][5988:5988] CHIP:DMG: AttributeReportIB = - [1666953062.857059][5988:5988] CHIP:DMG: { - [1666953062.857130][5988:5988] CHIP:DMG: AttributeDataIB = - [1666953062.857215][5988:5988] CHIP:DMG: { - [1666953062.857304][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666953062.857385][5988:5988] CHIP:DMG: AttributePathIB = - [1666953062.857475][5988:5988] CHIP:DMG: { - [1666953062.857567][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953062.857656][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953062.857745][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666953062.857841][5988:5988] CHIP:DMG: ListIndex = Null, - [1666953062.857925][5988:5988] CHIP:DMG: } - [1666953062.858013][5988:5988] CHIP:DMG: - [1666953062.858248][5988:5988] CHIP:DMG: Data = 1, - [1666953062.858330][5988:5988] CHIP:DMG: }, - [1666953062.858416][5988:5988] CHIP:DMG: - [1666953062.858486][5988:5988] CHIP:DMG: }, - [1666953062.858579][5988:5988] CHIP:DMG: - [1666953062.858641][5988:5988] CHIP:DMG: AttributeReportIB = - [1666953062.858751][5988:5988] CHIP:DMG: { - [1666953062.858821][5988:5988] CHIP:DMG: AttributeDataIB = - [1666953062.858909][5988:5988] CHIP:DMG: { - [1666953062.858997][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666953062.859077][5988:5988] CHIP:DMG: AttributePathIB = - [1666953062.859168][5988:5988] CHIP:DMG: { - [1666953062.859260][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953062.859349][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953062.859438][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666953062.859533][5988:5988] CHIP:DMG: ListIndex = Null, - [1666953062.859625][5988:5988] CHIP:DMG: } - [1666953062.859720][5988:5988] CHIP:DMG: - [1666953062.859813][5988:5988] CHIP:DMG: Data = 65528, - [1666953062.859893][5988:5988] CHIP:DMG: }, - [1666953062.859987][5988:5988] CHIP:DMG: - [1666953062.860057][5988:5988] CHIP:DMG: }, - [1666953062.860152][5988:5988] CHIP:DMG: - [1666953062.860213][5988:5988] CHIP:DMG: AttributeReportIB = - [1666953062.860297][5988:5988] CHIP:DMG: { - [1666953062.860367][5988:5988] CHIP:DMG: AttributeDataIB = - [1666953062.860452][5988:5988] CHIP:DMG: { - [1666953062.860540][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666953062.860620][5988:5988] CHIP:DMG: AttributePathIB = - [1666953062.860710][5988:5988] CHIP:DMG: { - [1666953062.860802][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953062.860891][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953062.860981][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666953062.861076][5988:5988] CHIP:DMG: ListIndex = Null, - [1666953062.861165][5988:5988] CHIP:DMG: } - [1666953062.861249][5988:5988] CHIP:DMG: - [1666953062.861336][5988:5988] CHIP:DMG: Data = 65529, - [1666953062.861415][5988:5988] CHIP:DMG: }, - [1666953062.861508][5988:5988] CHIP:DMG: - [1666953062.861577][5988:5988] CHIP:DMG: }, - [1666953062.861671][5988:5988] CHIP:DMG: - [1666953062.861733][5988:5988] CHIP:DMG: AttributeReportIB = - [1666953062.861817][5988:5988] CHIP:DMG: { - [1666953062.861888][5988:5988] CHIP:DMG: AttributeDataIB = - [1666953062.861968][5988:5988] CHIP:DMG: { - [1666953062.862058][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666953062.862138][5988:5988] CHIP:DMG: AttributePathIB = - [1666953062.862229][5988:5988] CHIP:DMG: { - [1666953062.862321][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953062.862410][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953062.862499][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666953062.862587][5988:5988] CHIP:DMG: ListIndex = Null, - [1666953062.862678][5988:5988] CHIP:DMG: } - [1666953062.862808][5988:5988] CHIP:DMG: - [1666953062.862897][5988:5988] CHIP:DMG: Data = 65531, - [1666953062.862984][5988:5988] CHIP:DMG: }, - [1666953062.863072][5988:5988] CHIP:DMG: - [1666953062.863142][5988:5988] CHIP:DMG: }, - [1666953062.863245][5988:5988] CHIP:DMG: - [1666953062.863312][5988:5988] CHIP:DMG: AttributeReportIB = - [1666953062.863395][5988:5988] CHIP:DMG: { - [1666953062.863474][5988:5988] CHIP:DMG: AttributeDataIB = - [1666953062.863554][5988:5988] CHIP:DMG: { - [1666953062.863636][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666953062.863717][5988:5988] CHIP:DMG: AttributePathIB = - [1666953062.863808][5988:5988] CHIP:DMG: { - [1666953062.863901][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953062.863990][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953062.864081][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666953062.864177][5988:5988] CHIP:DMG: ListIndex = Null, - [1666953062.864271][5988:5988] CHIP:DMG: } - [1666953062.864359][5988:5988] CHIP:DMG: - [1666953062.864454][5988:5988] CHIP:DMG: Data = 65532, - [1666953062.864533][5988:5988] CHIP:DMG: }, - [1666953062.864626][5988:5988] CHIP:DMG: - [1666953062.864696][5988:5988] CHIP:DMG: }, - [1666953062.864800][5988:5988] CHIP:DMG: - [1666953062.864867][5988:5988] CHIP:DMG: AttributeReportIB = - [1666953062.864950][5988:5988] CHIP:DMG: { - [1666953062.865029][5988:5988] CHIP:DMG: AttributeDataIB = - [1666953062.865108][5988:5988] CHIP:DMG: { - [1666953062.865197][5988:5988] CHIP:DMG: DataVersion = 0x97fedc88, - [1666953062.865278][5988:5988] CHIP:DMG: AttributePathIB = - [1666953062.865370][5988:5988] CHIP:DMG: { - [1666953062.865455][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953062.865548][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953062.865638][5988:5988] CHIP:DMG: Attribute = 0x0000_FFFB, - [1666953062.865734][5988:5988] CHIP:DMG: ListIndex = Null, - [1666953062.865828][5988:5988] CHIP:DMG: } - [1666953062.865916][5988:5988] CHIP:DMG: - [1666953062.866011][5988:5988] CHIP:DMG: Data = 65533, - [1666953062.866097][5988:5988] CHIP:DMG: }, - [1666953062.866257][5988:5988] CHIP:DMG: - [1666953062.866333][5988:5988] CHIP:DMG: }, - [1666953062.866423][5988:5988] CHIP:DMG: - [1666953062.866489][5988:5988] CHIP:DMG: ], + [1676893524.772970][14579:14579] CHIP:DMG: ReportDataMessage = + [1676893524.772985][14579:14579] CHIP:DMG: { + [1676893524.772995][14579:14579] CHIP:DMG: AttributeReportIBs = + [1676893524.773014][14579:14579] CHIP:DMG: [ + [1676893524.773026][14579:14579] CHIP:DMG: AttributeReportIB = + [1676893524.773046][14579:14579] CHIP:DMG: { + [1676893524.773060][14579:14579] CHIP:DMG: AttributeDataIB = + [1676893524.773075][14579:14579] CHIP:DMG: { + [1676893524.773092][14579:14579] CHIP:DMG: DataVersion = 0xceda3005, + [1676893524.773109][14579:14579] CHIP:DMG: AttributePathIB = + [1676893524.773126][14579:14579] CHIP:DMG: { + [1676893524.773143][14579:14579] CHIP:DMG: Endpoint = 0x1, + [1676893524.773160][14579:14579] CHIP:DMG: Cluster = 0x204, + [1676893524.773180][14579:14579] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676893524.773197][14579:14579] CHIP:DMG: } + [1676893524.773216][14579:14579] CHIP:DMG: + [1676893524.773232][14579:14579] CHIP:DMG: Data = [ + [1676893524.773251][14579:14579] CHIP:DMG: + [1676893524.773268][14579:14579] CHIP:DMG: ], + [1676893524.773283][14579:14579] CHIP:DMG: }, + [1676893524.773303][14579:14579] CHIP:DMG: + [1676893524.773316][14579:14579] CHIP:DMG: }, + [1676893524.773345][14579:14579] CHIP:DMG: + [1676893524.773358][14579:14579] CHIP:DMG: AttributeReportIB = + [1676893524.773381][14579:14579] CHIP:DMG: { + [1676893524.773394][14579:14579] CHIP:DMG: AttributeDataIB = + [1676893524.773409][14579:14579] CHIP:DMG: { + [1676893524.773425][14579:14579] CHIP:DMG: DataVersion = 0xceda3005, + [1676893524.773439][14579:14579] CHIP:DMG: AttributePathIB = + [1676893524.773455][14579:14579] CHIP:DMG: { + [1676893524.773471][14579:14579] CHIP:DMG: Endpoint = 0x1, + [1676893524.773488][14579:14579] CHIP:DMG: Cluster = 0x204, + [1676893524.773505][14579:14579] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676893524.773521][14579:14579] CHIP:DMG: ListIndex = Null, + [1676893524.773536][14579:14579] CHIP:DMG: } + [1676893524.773558][14579:14579] CHIP:DMG: + [1676893524.773575][14579:14579] CHIP:DMG: Data = 0, + [1676893524.773589][14579:14579] CHIP:DMG: }, + [1676893524.773609][14579:14579] CHIP:DMG: + [1676893524.773623][14579:14579] CHIP:DMG: }, + [1676893524.773651][14579:14579] CHIP:DMG: + [1676893524.773665][14579:14579] CHIP:DMG: AttributeReportIB = + [1676893524.773686][14579:14579] CHIP:DMG: { + [1676893524.773699][14579:14579] CHIP:DMG: AttributeDataIB = + [1676893524.773714][14579:14579] CHIP:DMG: { + [1676893524.773729][14579:14579] CHIP:DMG: DataVersion = 0xceda3005, + [1676893524.773744][14579:14579] CHIP:DMG: AttributePathIB = + [1676893524.773760][14579:14579] CHIP:DMG: { + [1676893524.773775][14579:14579] CHIP:DMG: Endpoint = 0x1, + [1676893524.773792][14579:14579] CHIP:DMG: Cluster = 0x204, + [1676893524.773809][14579:14579] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676893524.773826][14579:14579] CHIP:DMG: ListIndex = Null, + [1676893524.773841][14579:14579] CHIP:DMG: } + [1676893524.773860][14579:14579] CHIP:DMG: + [1676893524.773877][14579:14579] CHIP:DMG: Data = 1, + [1676893524.773893][14579:14579] CHIP:DMG: }, + [1676893524.773915][14579:14579] CHIP:DMG: + [1676893524.773928][14579:14579] CHIP:DMG: }, + [1676893524.773955][14579:14579] CHIP:DMG: + [1676893524.773968][14579:14579] CHIP:DMG: AttributeReportIB = + [1676893524.773989][14579:14579] CHIP:DMG: { + [1676893524.774002][14579:14579] CHIP:DMG: AttributeDataIB = + [1676893524.774018][14579:14579] CHIP:DMG: { + [1676893524.774032][14579:14579] CHIP:DMG: DataVersion = 0xceda3005, + [1676893524.774047][14579:14579] CHIP:DMG: AttributePathIB = + [1676893524.774063][14579:14579] CHIP:DMG: { + [1676893524.774079][14579:14579] CHIP:DMG: Endpoint = 0x1, + [1676893524.774095][14579:14579] CHIP:DMG: Cluster = 0x204, + [1676893524.774111][14579:14579] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676893524.774127][14579:14579] CHIP:DMG: ListIndex = Null, + [1676893524.774142][14579:14579] CHIP:DMG: } + [1676893524.774161][14579:14579] CHIP:DMG: + [1676893524.774177][14579:14579] CHIP:DMG: Data = 65528, + [1676893524.774193][14579:14579] CHIP:DMG: }, + [1676893524.774212][14579:14579] CHIP:DMG: + [1676893524.774227][14579:14579] CHIP:DMG: }, + [1676893524.774255][14579:14579] CHIP:DMG: + [1676893524.774268][14579:14579] CHIP:DMG: AttributeReportIB = + [1676893524.774288][14579:14579] CHIP:DMG: { + [1676893524.774301][14579:14579] CHIP:DMG: AttributeDataIB = + [1676893524.774316][14579:14579] CHIP:DMG: { + [1676893524.774331][14579:14579] CHIP:DMG: DataVersion = 0xceda3005, + [1676893524.774346][14579:14579] CHIP:DMG: AttributePathIB = + [1676893524.774361][14579:14579] CHIP:DMG: { + [1676893524.774377][14579:14579] CHIP:DMG: Endpoint = 0x1, + [1676893524.774395][14579:14579] CHIP:DMG: Cluster = 0x204, + [1676893524.774412][14579:14579] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676893524.774428][14579:14579] CHIP:DMG: ListIndex = Null, + [1676893524.774443][14579:14579] CHIP:DMG: } + [1676893524.774464][14579:14579] CHIP:DMG: + [1676893524.774480][14579:14579] CHIP:DMG: Data = 65529, + [1676893524.774494][14579:14579] CHIP:DMG: }, + [1676893524.774514][14579:14579] CHIP:DMG: + [1676893524.774528][14579:14579] CHIP:DMG: }, + [1676893524.774555][14579:14579] CHIP:DMG: + [1676893524.774568][14579:14579] CHIP:DMG: AttributeReportIB = + [1676893524.774589][14579:14579] CHIP:DMG: { + [1676893524.774602][14579:14579] CHIP:DMG: AttributeDataIB = + [1676893524.774617][14579:14579] CHIP:DMG: { + [1676893524.774633][14579:14579] CHIP:DMG: DataVersion = 0xceda3005, + [1676893524.774648][14579:14579] CHIP:DMG: AttributePathIB = + [1676893524.774664][14579:14579] CHIP:DMG: { + [1676893524.774679][14579:14579] CHIP:DMG: Endpoint = 0x1, + [1676893524.774695][14579:14579] CHIP:DMG: Cluster = 0x204, + [1676893524.774713][14579:14579] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676893524.774729][14579:14579] CHIP:DMG: ListIndex = Null, + [1676893524.774744][14579:14579] CHIP:DMG: } + [1676893524.774763][14579:14579] CHIP:DMG: + [1676893524.774779][14579:14579] CHIP:DMG: Data = 65530, + [1676893524.774794][14579:14579] CHIP:DMG: }, + [1676893524.774813][14579:14579] CHIP:DMG: + [1676893524.774827][14579:14579] CHIP:DMG: }, + [1676893524.774854][14579:14579] CHIP:DMG: + [1676893524.774867][14579:14579] CHIP:DMG: AttributeReportIB = + [1676893524.774887][14579:14579] CHIP:DMG: { + [1676893524.774900][14579:14579] CHIP:DMG: AttributeDataIB = + [1676893524.774915][14579:14579] CHIP:DMG: { + [1676893524.774955][14579:14579] CHIP:DMG: DataVersion = 0xceda3005, + [1676893524.774971][14579:14579] CHIP:DMG: AttributePathIB = + [1676893524.774987][14579:14579] CHIP:DMG: { + [1676893524.775002][14579:14579] CHIP:DMG: Endpoint = 0x1, + [1676893524.775018][14579:14579] CHIP:DMG: Cluster = 0x204, + [1676893524.775038][14579:14579] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676893524.775054][14579:14579] CHIP:DMG: ListIndex = Null, + [1676893524.775070][14579:14579] CHIP:DMG: } + [1676893524.775088][14579:14579] CHIP:DMG: + [1676893524.775105][14579:14579] CHIP:DMG: Data = 65531, + [1676893524.775120][14579:14579] CHIP:DMG: }, + [1676893524.775139][14579:14579] CHIP:DMG: + [1676893524.775153][14579:14579] CHIP:DMG: }, + [1676893524.775180][14579:14579] CHIP:DMG: + [1676893524.775194][14579:14579] CHIP:DMG: AttributeReportIB = + [1676893524.775214][14579:14579] CHIP:DMG: { + [1676893524.775227][14579:14579] CHIP:DMG: AttributeDataIB = + [1676893524.775242][14579:14579] CHIP:DMG: { + [1676893524.775258][14579:14579] CHIP:DMG: DataVersion = 0xceda3005, + [1676893524.775273][14579:14579] CHIP:DMG: AttributePathIB = + [1676893524.775290][14579:14579] CHIP:DMG: { + [1676893524.775306][14579:14579] CHIP:DMG: Endpoint = 0x1, + [1676893524.775321][14579:14579] CHIP:DMG: Cluster = 0x204, + [1676893524.775338][14579:14579] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676893524.775355][14579:14579] CHIP:DMG: ListIndex = Null, + [1676893524.775371][14579:14579] CHIP:DMG: } + [1676893524.775390][14579:14579] CHIP:DMG: + [1676893524.775406][14579:14579] CHIP:DMG: Data = 65532, + [1676893524.775421][14579:14579] CHIP:DMG: }, + [1676893524.775440][14579:14579] CHIP:DMG: + [1676893524.775454][14579:14579] CHIP:DMG: }, + [1676893524.775480][14579:14579] CHIP:DMG: + [1676893524.775493][14579:14579] CHIP:DMG: AttributeReportIB = + [1676893524.775513][14579:14579] CHIP:DMG: { + [1676893524.775526][14579:14579] CHIP:DMG: AttributeDataIB = + [1676893524.775542][14579:14579] CHIP:DMG: { + [1676893524.775557][14579:14579] CHIP:DMG: DataVersion = 0xceda3005, + [1676893524.775572][14579:14579] CHIP:DMG: AttributePathIB = + [1676893524.775588][14579:14579] CHIP:DMG: { + [1676893524.775604][14579:14579] CHIP:DMG: Endpoint = 0x1, + [1676893524.775623][14579:14579] CHIP:DMG: Cluster = 0x204, + [1676893524.775640][14579:14579] CHIP:DMG: Attribute = 0x0000_FFFB, + [1676893524.775656][14579:14579] CHIP:DMG: ListIndex = Null, + [1676893524.775672][14579:14579] CHIP:DMG: } + [1676893524.775691][14579:14579] CHIP:DMG: + [1676893524.775707][14579:14579] CHIP:DMG: Data = 65533, + [1676893524.775722][14579:14579] CHIP:DMG: }, + [1676893524.775745][14579:14579] CHIP:DMG: + [1676893524.775759][14579:14579] CHIP:DMG: }, + [1676893524.775778][14579:14579] CHIP:DMG: + [1676893524.775791][14579:14579] CHIP:DMG: ], + [1676893524.775862][14579:14579] CHIP:DMG: + [1676893524.775877][14579:14579] CHIP:DMG: SuppressResponse = true, + [1676893524.775891][14579:14579] CHIP:DMG: InteractionModelRevision = 1 + [1676893524.775903][14579:14579] CHIP:DMG: } disabled: true - label: "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order" + PICS: TSUIC.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -872,19 +857,19 @@ tests: [1666953130.730438][5988:5988] CHIP:IM: Received Read request [1666953130.730662][5988:5988] CHIP:DMG: ReadRequestMessage = [1666953130.730769][5988:5988] CHIP:DMG: { - [1666953130.730828][5988:5988] CHIP:DMG: AttributePathIBs = - [1666953130.730893][5988:5988] CHIP:DMG: [ - [1666953130.730955][5988:5988] CHIP:DMG: AttributePathIB = - [1666953130.731032][5988:5988] CHIP:DMG: { - [1666953130.731110][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953130.731200][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953130.731287][5988:5988] CHIP:DMG: Attribute = 0x0000_0002, - [1666953130.731370][5988:5988] CHIP:DMG: } + [1666953130.730828][5988:5988] CHIP:DMG: AttributePathIBs = + [1666953130.730893][5988:5988] CHIP:DMG: [ + [1666953130.730955][5988:5988] CHIP:DMG: AttributePathIB = + [1666953130.731032][5988:5988] CHIP:DMG: { + [1666953130.731110][5988:5988] CHIP:DMG: Endpoint = 0x1, + [1666953130.731200][5988:5988] CHIP:DMG: Cluster = 0x204, + [1666953130.731287][5988:5988] CHIP:DMG: Attribute = 0x0000_0002, + [1666953130.731370][5988:5988] CHIP:DMG: } [1666953130.731447][5988:5988] CHIP:DMG: - [1666953130.731512][5988:5988] CHIP:DMG: ], + [1666953130.731512][5988:5988] CHIP:DMG: ], [1666953130.731582][5988:5988] CHIP:DMG: - [1666953130.731649][5988:5988] CHIP:DMG: isFabricFiltered = true, - [1666953130.731714][5988:5988] CHIP:DMG: InteractionModelRevision = 1 + [1666953130.731649][5988:5988] CHIP:DMG: isFabricFiltered = true, + [1666953130.731714][5988:5988] CHIP:DMG: InteractionModelRevision = 1 [1666953130.731772][5988:5988] CHIP:DMG: }, [1666953130.731937][5988:5988] CHIP:DMG: IM RH moving to [GeneratingReports] [1666953130.732148][5988:5988] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -911,32 +896,33 @@ tests: [1666953130.734817][5988:5988] CHIP:DMG: [1666953130.734969][5988:5988] CHIP:DMG: ReportDataMessage = [1666953130.735035][5988:5988] CHIP:DMG: { - [1666953130.735089][5988:5988] CHIP:DMG: AttributeReportIBs = - [1666953130.735166][5988:5988] CHIP:DMG: [ - [1666953130.735228][5988:5988] CHIP:DMG: AttributeReportIB = - [1666953130.735318][5988:5988] CHIP:DMG: { - [1666953130.735389][5988:5988] CHIP:DMG: AttributeStatusIB = - [1666953130.735478][5988:5988] CHIP:DMG: { - [1666953130.735556][5988:5988] CHIP:DMG: AttributePathIB = - [1666953130.735640][5988:5988] CHIP:DMG: { - [1666953130.735729][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953130.735819][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953130.735917][5988:5988] CHIP:DMG: Attribute = 0x0000_0002, - [1666953130.736010][5988:5988] CHIP:DMG: } + [1666953130.735089][5988:5988] CHIP:DMG: AttributeReportIBs = + [1666953130.735166][5988:5988] CHIP:DMG: [ + [1666953130.735228][5988:5988] CHIP:DMG: AttributeReportIB = + [1666953130.735318][5988:5988] CHIP:DMG: { + [1666953130.735389][5988:5988] CHIP:DMG: AttributeStatusIB = + [1666953130.735478][5988:5988] CHIP:DMG: { + [1666953130.735556][5988:5988] CHIP:DMG: AttributePathIB = + [1666953130.735640][5988:5988] CHIP:DMG: { + [1666953130.735729][5988:5988] CHIP:DMG: Endpoint = 0x1, + [1666953130.735819][5988:5988] CHIP:DMG: Cluster = 0x204, + [1666953130.735917][5988:5988] CHIP:DMG: Attribute = 0x0000_0002, + [1666953130.736010][5988:5988] CHIP:DMG: } [1666953130.736104][5988:5988] CHIP:DMG: - [1666953130.736187][5988:5988] CHIP:DMG: StatusIB = - [1666953130.736272][5988:5988] CHIP:DMG: { - [1666953130.736366][5988:5988] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), - [1666953130.736449][5988:5988] CHIP:DMG: }, + [1666953130.736187][5988:5988] CHIP:DMG: StatusIB = + [1666953130.736272][5988:5988] CHIP:DMG: { + [1666953130.736366][5988:5988] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), + [1666953130.736449][5988:5988] CHIP:DMG: }, [1666953130.736533][5988:5988] CHIP:DMG: - [1666953130.736616][5988:5988] CHIP:DMG: }, + [1666953130.736616][5988:5988] CHIP:DMG: }, [1666953130.736709][5988:5988] CHIP:DMG: - [1666953130.736927][5988:5988] CHIP:DMG: }, + [1666953130.736927][5988:5988] CHIP:DMG: }, disabled: true - label: "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer specific order" + PICS: TSUIC.C.AO-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -949,26 +935,26 @@ tests: [1666953180.787806][5988:5988] CHIP:DMG: IM WH moving to [Initialized] [1666953180.787936][5988:5988] CHIP:DMG: WriteRequestMessage = [1666953180.788002][5988:5988] CHIP:DMG: { - [1666953180.788061][5988:5988] CHIP:DMG: suppressResponse = false, - [1666953180.788128][5988:5988] CHIP:DMG: timedRequest = false, - [1666953180.788191][5988:5988] CHIP:DMG: AttributeDataIBs = - [1666953180.788266][5988:5988] CHIP:DMG: [ - [1666953180.788329][5988:5988] CHIP:DMG: AttributeDataIB = - [1666953180.788479][5988:5988] CHIP:DMG: { - [1666953180.788565][5988:5988] CHIP:DMG: AttributePathIB = - [1666953180.788700][5988:5988] CHIP:DMG: { - [1666953180.788844][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953180.788939][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953180.789077][5988:5988] CHIP:DMG: Attribute = 0x0000_0002, - [1666953180.789216][5988:5988] CHIP:DMG: } + [1666953180.788061][5988:5988] CHIP:DMG: suppressResponse = false, + [1666953180.788128][5988:5988] CHIP:DMG: timedRequest = false, + [1666953180.788191][5988:5988] CHIP:DMG: AttributeDataIBs = + [1666953180.788266][5988:5988] CHIP:DMG: [ + [1666953180.788329][5988:5988] CHIP:DMG: AttributeDataIB = + [1666953180.788479][5988:5988] CHIP:DMG: { + [1666953180.788565][5988:5988] CHIP:DMG: AttributePathIB = + [1666953180.788700][5988:5988] CHIP:DMG: { + [1666953180.788844][5988:5988] CHIP:DMG: Endpoint = 0x1, + [1666953180.788939][5988:5988] CHIP:DMG: Cluster = 0x204, + [1666953180.789077][5988:5988] CHIP:DMG: Attribute = 0x0000_0002, + [1666953180.789216][5988:5988] CHIP:DMG: } [1666953180.789355][5988:5988] CHIP:DMG: - [1666953180.789498][5988:5988] CHIP:DMG: Data = 1, - [1666953180.789630][5988:5988] CHIP:DMG: }, + [1666953180.789498][5988:5988] CHIP:DMG: Data = 1, + [1666953180.789630][5988:5988] CHIP:DMG: }, [1666953180.789717][5988:5988] CHIP:DMG: - [1666953180.789780][5988:5988] CHIP:DMG: ], + [1666953180.789780][5988:5988] CHIP:DMG: ], [1666953180.789855][5988:5988] CHIP:DMG: - [1666953180.789918][5988:5988] CHIP:DMG: moreChunkedMessages = false, - [1666953180.789984][5988:5988] CHIP:DMG: InteractionModelRevision = 1 + [1666953180.789918][5988:5988] CHIP:DMG: moreChunkedMessages = false, + [1666953180.789984][5988:5988] CHIP:DMG: InteractionModelRevision = 1 [1666953180.790043][5988:5988] CHIP:DMG: }, [1666953180.790251][5988:5988] CHIP:DMG: IM WH moving to [AddStatus] [1666953180.790936][5988:5988] CHIP:EM: <<< [E:274r M:42261800 (Ack:75748820)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:07 (IM:WriteResponse) @@ -991,23 +977,23 @@ tests: [1666953180.792685][5988:5988] CHIP:DMG: [1666953180.792805][5988:5988] CHIP:DMG: WriteResponseMessage = [1666953180.792871][5988:5988] CHIP:DMG: { - [1666953180.792924][5988:5988] CHIP:DMG: AttributeStatusIBs = - [1666953180.793003][5988:5988] CHIP:DMG: [ - [1666953180.793066][5988:5988] CHIP:DMG: AttributeStatusIB = - [1666953180.793150][5988:5988] CHIP:DMG: { - [1666953180.793217][5988:5988] CHIP:DMG: AttributePathIB = - [1666953180.793300][5988:5988] CHIP:DMG: { - [1666953180.793385][5988:5988] CHIP:DMG: Endpoint = 0x1, - [1666953180.793472][5988:5988] CHIP:DMG: Cluster = 0x204, - [1666953180.793558][5988:5988] CHIP:DMG: Attribute = 0x0000_0002, - [1666953180.793639][5988:5988] CHIP:DMG: } + [1666953180.792924][5988:5988] CHIP:DMG: AttributeStatusIBs = + [1666953180.793003][5988:5988] CHIP:DMG: [ + [1666953180.793066][5988:5988] CHIP:DMG: AttributeStatusIB = + [1666953180.793150][5988:5988] CHIP:DMG: { + [1666953180.793217][5988:5988] CHIP:DMG: AttributePathIB = + [1666953180.793300][5988:5988] CHIP:DMG: { + [1666953180.793385][5988:5988] CHIP:DMG: Endpoint = 0x1, + [1666953180.793472][5988:5988] CHIP:DMG: Cluster = 0x204, + [1666953180.793558][5988:5988] CHIP:DMG: Attribute = 0x0000_0002, + [1666953180.793639][5988:5988] CHIP:DMG: } [1666953180.793731][5988:5988] CHIP:DMG: - [1666953180.793810][5988:5988] CHIP:DMG: StatusIB = - [1666953180.793892][5988:5988] CHIP:DMG: { - [1666953180.793975][5988:5988] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), - [1666953180.794124][5988:5988] CHIP:DMG: }, + [1666953180.793810][5988:5988] CHIP:DMG: StatusIB = + [1666953180.793892][5988:5988] CHIP:DMG: { + [1666953180.793975][5988:5988] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), + [1666953180.794124][5988:5988] CHIP:DMG: }, [1666953180.794221][5988:5988] CHIP:DMG: - [1666953180.794294][5988:5988] CHIP:DMG: }, + [1666953180.794294][5988:5988] CHIP:DMG: }, [1666953180.794379][5988:5988] CHIP:DMG: - [1666953180.794440][5988:5988] CHIP:DMG: ], + [1666953180.794440][5988:5988] CHIP:DMG: ], disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_WAKEONLAN_4_1.yaml b/src/app/tests/suites/certification/Test_TC_WAKEONLAN_4_1.yaml index e026d4840f4cb3..357c617211c3fc 100644 --- a/src/app/tests/suites/certification/Test_TC_WAKEONLAN_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_WAKEONLAN_4_1.yaml @@ -20,62 +20,30 @@ PICS: config: nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 + cluster: "Wake on LAN" + endpoint: 1 tests: + - label: "Wait for the commissioned device to be retrieved" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + - label: "TH reads the MACAddress attribute from the DUT" PICS: WAKEONLAN.S.A0000 - verification: | - The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool wakeonlan read macaddress 1 1 - ./chip-tv-casting-app wakeonlan read macaddress 1 1 - - On TH, verify that the response contains a 48-bit MAC Address of the DUT and verify if the value reported in this is matching with the actual Mac address. - [1654248817.394846][3637:3643] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0503 Attribute 0x0000_0000 DataVersion: 3900236652 - [1654248817.394895][3637:3643] CHIP:TOO: MACAddress: e4:5f:01:69:61:b1 - [1654248817.394982][3637:3643] CHIP:EM: Sending Standalone Ack for MessageCounter:15292555 on exchange 12123i - disabled: true + command: "readAttribute" + attribute: "MACAddress" + response: + constraints: + minLength: 12 - label: "TH sends a Sleep command to DUT" PICS: LOWPOWER.S.C00.Rsp - verification: | - The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): - ./chip-tool lowpower sleep 1 1 - ./chip-tv-casting-app lowpower sleep 1 1 - - On TH verify the success response received from DUT - [1646101689.826629][3009:3014] CHIP:DMG: InvokeResponseMessage = - [1646101689.826665][3009:3014] CHIP:DMG: { - [1646101689.826697][3009:3014] CHIP:DMG: suppressResponse = false, - [1646101689.826727][3009:3014] CHIP:DMG: InvokeResponseIBs = - [1646101689.826769][3009:3014] CHIP:DMG: [ - [1646101689.826804][3009:3014] CHIP:DMG: InvokeResponseIB = - [1646101689.826848][3009:3014] CHIP:DMG: { - [1646101689.826882][3009:3014] CHIP:DMG: CommandStatusIB = - [1646101689.826922][3009:3014] CHIP:DMG: { - [1646101689.826954][3009:3014] CHIP:DMG: CommandPathIB = - [1646101689.826989][3009:3014] CHIP:DMG: { - [1646101689.827031][3009:3014] CHIP:DMG: EndpointId = 0x1, - [1646101689.827082][3009:3014] CHIP:DMG: ClusterId = 0x508, - [1646101689.827127][3009:3014] CHIP:DMG: CommandId = 0x0, - [1646101689.827172][3009:3014] CHIP:DMG: }, - [1646101689.827223][3009:3014] CHIP:DMG: - [1646101689.827260][3009:3014] CHIP:DMG: StatusIB = - [1646101689.827311][3009:3014] CHIP:DMG: { - [1646101689.827360][3009:3014] CHIP:DMG: status = 0x0, - [1646101689.827411][3009:3014] CHIP:DMG: }, - [1646101689.827457][3009:3014] CHIP:DMG: - [1646101689.827498][3009:3014] CHIP:DMG: }, - [1646101689.827540][3009:3014] CHIP:DMG: - [1646101689.827607][3009:3014] CHIP:DMG: }, - [1646101689.827658][3009:3014] CHIP:DMG: - [1646101689.827689][3009:3014] CHIP:DMG: ], - [1646101689.827730][3009:3014] CHIP:DMG: - [1646101689.827761][3009:3014] CHIP:DMG: InteractionModelRevision = 1 - [1646101689.827792][3009:3014] CHIP:DMG: }, - [1646101689.827875][3009:3014] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0508 Command=0x0000_0000 Status=0x0 - disabled: true + cluster: "Low Power" + command: "Sleep" - label: "TH sends a Wake-On LAN magic packet containing the MAC address from @@ -90,4 +58,12 @@ tests: [1654248854.491994][3652:3657] CHIP:TOO: AcceptedCommandList: 1 entries [1654248854.492040][3652:3657] CHIP:TOO: [1]: 0 [1654248854.492157][3652:3657] CHIP:EM: Sending Standalone Ack for MessageCounter:15063522 on exchange 51389i - disabled: true + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT + arguments: + values: + - name: "message" + value: "Please enter 'y' after success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml index 3edc2309c25772..d97d7b954dd7b4 100644 --- a/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml @@ -42,6 +42,9 @@ tests: - label: "DUT sends GoToLiftPercentage command with 50% to TH" PICS: WNCV.C.C05.Tx verification: | + DUT sends GoToLiftPercentage command with 50% to TH + + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool windowcovering go-to-lift-percentage 5000 1 1 @@ -83,6 +86,9 @@ tests: - label: "DUT sends GoToTiltPercentage command with 50% to TH" PICS: WNCV.C.C08.Tx verification: | + DUT sends GoToTiltPercentage command with 50% to TH + + Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool windowcovering go-to-tilt-percentage 5000 1 1 diff --git a/src/app/tests/suites/ciTests.json b/src/app/tests/suites/ciTests.json index d8c37bd6f5e0e4..63380e81651c69 100644 --- a/src/app/tests/suites/ciTests.json +++ b/src/app/tests/suites/ciTests.json @@ -14,7 +14,10 @@ "AccessControlEnforcement": ["Test_TC_ACE_1_1", "Test_TC_ACE_1_5"], "BooleanState": ["Test_TC_BOOL_1_1", "Test_TC_BOOL_2_1"], "Binding": ["Test_TC_BIND_1_1"], - "BridgedDeviceBasicInformation": [], + "BridgedDeviceBasicInformation": [ + "Test_TC_BRBINFO_1_1", + "Test_TC_BRBINFO_2_1" + ], "Actions": ["Test_TC_ACT_1_1"], "ColorControl": [ "Test_TC_CC_1_1", @@ -127,7 +130,9 @@ "Test_TC_AUDIOOUTPUT_7_2", "Test_TC_TGTNAV_8_1", "Test_TC_APBSC_9_1", - "Test_TC_CONTENTLAUNCHER_10_1" + "Test_TC_CONTENTLAUNCHER_10_1", + "Test_TC_WAKEONLAN_4_1", + "Test_TC_ALOGIN_12_1" ], "ModeSelect": ["Test_TC_MOD_1_1"], "MultipleFabrics": [], diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json index 1b34a8cd69930e..1dc3116a25925c 100644 --- a/src/app/tests/suites/manualTests.json +++ b/src/app/tests/suites/manualTests.json @@ -106,7 +106,7 @@ "Test_TC_DGGEN_2_3", "Test_TC_DGGEN_3_1" ], - "Identify": ["Test_TC_I_3_1", "Test_TC_I_3_2"], + "Identify": ["Test_TC_I_3_2"], "IlluminanceMeasurement": ["Test_TC_ILL_3_1"], "InteractionDataModel": [ "Test_TC_IDM_1_1", @@ -151,9 +151,7 @@ "Test_TC_CONTENTLAUNCHER_10_7", "Test_TC_MC_11_1", "Test_TC_MC_11_2", - "Test_TC_ALOGIN_12_2", - "Test_TC_WAKEONLAN_4_1", - "Test_TC_ALOGIN_12_1" + "Test_TC_ALOGIN_12_2" ], "MultipleFabrics": [ "Test_TC_CADMIN_1_1", @@ -208,8 +206,8 @@ "Test_TC_SU_4_1", "Test_TC_SU_4_2" ], - "PowerSourceConfiguration": ["Test_TC_PSCFG_2_2", "Test_TC_PSCFG_3_1"], - "PressureMeasurement": ["Test_TC_PRS_3_1"], + "PowerSourceConfiguration": ["Test_TC_PSCFG_2_2"], + "PressureMeasurement": [], "SecureChannel": [ "Test_TC_SC_1_1", "Test_TC_SC_1_2", @@ -245,10 +243,10 @@ "EthernetNetworkDiagnostics": ["Test_TC_DGETH_3_2"], "WiFiNetworkDiagnostics": ["Test_TC_DGWIFI_2_2", "Test_TC_DGWIFI_3_2"], "WindowCovering": ["Test_TC_WNCV_6_1", "Test_TC_WNCV_7_1"], - "FlowMeasurement": ["Test_TC_FLW_2_2", "Test_TC_FLW_3_1"], + "FlowMeasurement": ["Test_TC_FLW_2_2"], "OccupancySensing": ["Test_TC_OCC_3_1"], - "PowerSource": ["Test_TC_PS_2_2", "Test_TC_PS_3_1"], - "BooleanState": ["Test_TC_BOOL_2_2", "Test_TC_BOOL_3_1"], + "PowerSource": ["Test_TC_PS_2_2"], + "BooleanState": ["Test_TC_BOOL_2_2"], "ColorControl": [ "Test_TC_CC_2_2", "Test_TC_CC_3_4", @@ -275,7 +273,7 @@ "LevelControl": ["Test_TC_LVL_2_3", "Test_TC_LVL_7_1", "Test_TC_LVL_8_1"], "OnOff": ["Test_TC_OO_2_3", "Test_TC_OO_3_1", "Test_TC_OO_3_2"], "RelativeHumidityMeasurement": ["Test_TC_RH_2_2"], - "Switch": ["Test_TC_SWTCH_2_2", "Test_TC_SWTCH_3_1", "Test_TC_SWTCH_3_2"], + "Switch": ["Test_TC_SWTCH_2_2", "Test_TC_SWTCH_3_2"], "TemperatureMeasurement": ["Test_TC_TMP_2_2", "Test_TC_TMP_3_1"], "Thermostat": ["Test_TC_TSTAT_3_1", "Test_TC_TSTAT_3_2"], "ThermostatUserConfiguration": ["Test_TC_TSUIC_3_1"], @@ -284,15 +282,9 @@ "Test_TC_DGTHREAD_3_1", "Test_TC_DGTHREAD_3_2", "Test_TC_DGTHREAD_3_3", - "Test_TC_DGTHREAD_3_4", - "Test_TC_DGTHREAD_3_5" - ], - "Actions": [ - "Test_TC_ACT_2_1", - "Test_TC_ACT_2_2", - "Test_TC_ACT_3_1", - "Test_TC_ACT_3_2" + "Test_TC_DGTHREAD_3_4" ], + "Actions": ["Test_TC_ACT_2_1", "Test_TC_ACT_2_2", "Test_TC_ACT_3_2"], "TimeFormatLocalization": ["Test_TC_LTIME_2_1", "Test_TC_LTIME_3_1"], "UnitLocalization": [], "Binding": ["Test_TC_BIND_2_1", "Test_TC_BIND_2_2", "Test_TC_BIND_2_3"], @@ -307,8 +299,6 @@ "AccessControl": ["Test_TC_ACL_2_5", "Test_TC_ACL_2_6"], "UserLabel": [], "BridgedDeviceBasicInformation": [ - "Test_TC_BRBINFO_1_1", - "Test_TC_BRBINFO_2_1", "Test_TC_BRBINFO_2_2", "Test_TC_BRBINFO_2_3" ], diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 5fd032665223ff..fa2779748c7e6d 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -49,6 +49,8 @@ class TestList : public Command printf("Test_TC_ACE_1_5\n"); printf("Test_TC_BOOL_1_1\n"); printf("Test_TC_BOOL_2_1\n"); + printf("Test_TC_BRBINFO_1_1\n"); + printf("Test_TC_BRBINFO_2_1\n"); printf("Test_TC_ACT_1_1\n"); printf("Test_TC_BIND_1_1\n"); printf("Test_TC_CC_1_1\n"); @@ -143,6 +145,8 @@ class TestList : public Command printf("Test_TC_TGTNAV_8_1\n"); printf("Test_TC_APBSC_9_1\n"); printf("Test_TC_CONTENTLAUNCHER_10_1\n"); + printf("Test_TC_WAKEONLAN_4_1\n"); + printf("Test_TC_ALOGIN_12_1\n"); printf("Test_TC_MOD_1_1\n"); printf("OTA_SuccessfulTransfer\n"); printf("Test_TC_OCC_1_1\n"); @@ -376,7 +380,6 @@ class ManualTestList : public Command printf("Test_TC_DGGEN_2_2\n"); printf("Test_TC_DGGEN_2_3\n"); printf("Test_TC_DGGEN_3_1\n"); - printf("Test_TC_I_3_1\n"); printf("Test_TC_I_3_2\n"); printf("Test_TC_ILL_3_1\n"); printf("Test_TC_IDM_1_1\n"); @@ -420,8 +423,6 @@ class ManualTestList : public Command printf("Test_TC_MC_11_1\n"); printf("Test_TC_MC_11_2\n"); printf("Test_TC_ALOGIN_12_2\n"); - printf("Test_TC_WAKEONLAN_4_1\n"); - printf("Test_TC_ALOGIN_12_1\n"); printf("Test_TC_CADMIN_1_1\n"); printf("Test_TC_CADMIN_1_2\n"); printf("Test_TC_CADMIN_1_7\n"); @@ -470,8 +471,6 @@ class ManualTestList : public Command printf("Test_TC_SU_4_1\n"); printf("Test_TC_SU_4_2\n"); printf("Test_TC_PSCFG_2_2\n"); - printf("Test_TC_PSCFG_3_1\n"); - printf("Test_TC_PRS_3_1\n"); printf("Test_TC_SC_1_1\n"); printf("Test_TC_SC_1_2\n"); printf("Test_TC_SC_1_3\n"); @@ -505,12 +504,9 @@ class ManualTestList : public Command printf("Test_TC_WNCV_6_1\n"); printf("Test_TC_WNCV_7_1\n"); printf("Test_TC_FLW_2_2\n"); - printf("Test_TC_FLW_3_1\n"); printf("Test_TC_OCC_3_1\n"); printf("Test_TC_PS_2_2\n"); - printf("Test_TC_PS_3_1\n"); printf("Test_TC_BOOL_2_2\n"); - printf("Test_TC_BOOL_3_1\n"); printf("Test_TC_CC_2_2\n"); printf("Test_TC_CC_3_4\n"); printf("Test_TC_CC_4_5\n"); @@ -538,7 +534,6 @@ class ManualTestList : public Command printf("Test_TC_OO_3_2\n"); printf("Test_TC_RH_2_2\n"); printf("Test_TC_SWTCH_2_2\n"); - printf("Test_TC_SWTCH_3_1\n"); printf("Test_TC_SWTCH_3_2\n"); printf("Test_TC_TMP_2_2\n"); printf("Test_TC_TMP_3_1\n"); @@ -550,10 +545,8 @@ class ManualTestList : public Command printf("Test_TC_DGTHREAD_3_2\n"); printf("Test_TC_DGTHREAD_3_3\n"); printf("Test_TC_DGTHREAD_3_4\n"); - printf("Test_TC_DGTHREAD_3_5\n"); printf("Test_TC_ACT_2_1\n"); printf("Test_TC_ACT_2_2\n"); - printf("Test_TC_ACT_3_1\n"); printf("Test_TC_ACT_3_2\n"); printf("Test_TC_LTIME_2_1\n"); printf("Test_TC_LTIME_3_1\n"); @@ -568,8 +561,6 @@ class ManualTestList : public Command printf("Test_TC_PCC_3_1\n"); printf("Test_TC_ACL_2_5\n"); printf("Test_TC_ACL_2_6\n"); - printf("Test_TC_BRBINFO_1_1\n"); - printf("Test_TC_BRBINFO_2_1\n"); printf("Test_TC_BRBINFO_2_2\n"); printf("Test_TC_BRBINFO_2_3\n"); printf("Test_TC_ACE_1_2\n"); @@ -5593,7 +5584,29 @@ class Test_TC_ACL_2_4Suite : public TestCommand ListFreer listFreer; chip::app::DataModel::List value; - value = chip::app::DataModel::List(); + { + auto * listHolder_0 = + new ListHolder(1); + listFreer.add(listHolder_0); + + listHolder_0->mList[0].privilege = + static_cast(5); + listHolder_0->mList[0].authMode = + static_cast(2); + listHolder_0->mList[0].subjects.SetNonNull(); + + { + auto * listHolder_3 = new ListHolder(1); + listFreer.add(listHolder_3); + listHolder_3->mList[0] = CommissionerNodeId; + listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); + } + listHolder_0->mList[0].targets.SetNull(); + listHolder_0->mList[0].fabricIndex = 1U; + + value = chip::app::DataModel::List( + listHolder_0->mList, 1); + } return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } @@ -6766,7 +6779,7 @@ class Test_TC_ACL_2_9Suite : public TestCommand { uint16_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 3U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 4U)); } break; case 11: @@ -7729,7 +7742,29 @@ class Test_TC_ACL_2_10Suite : public TestCommand ListFreer listFreer; chip::app::DataModel::List value; - value = chip::app::DataModel::List(); + { + auto * listHolder_0 = + new ListHolder(1); + listFreer.add(listHolder_0); + + listHolder_0->mList[0].privilege = + static_cast(5); + listHolder_0->mList[0].authMode = + static_cast(2); + listHolder_0->mList[0].subjects.SetNonNull(); + + { + auto * listHolder_3 = new ListHolder(1); + listFreer.add(listHolder_3); + listHolder_3->mList[0] = TH1CommissionerNodeId; + listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List(listHolder_3->mList, 1); + } + listHolder_0->mList[0].targets.SetNull(); + listHolder_0->mList[0].fabricIndex = 1U; + + value = chip::app::DataModel::List( + listHolder_0->mList, 1); + } return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } @@ -8542,7 +8577,7 @@ class Test_TC_ACE_1_1Suite : public TestCommand class Test_TC_ACE_1_5Suite : public TestCommand { public: - Test_TC_ACE_1_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACE_1_5", 17, credsIssuerConfig) + Test_TC_ACE_1_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACE_1_5", 18, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -8602,10 +8637,10 @@ class Test_TC_ACE_1_5Suite : public TestCommand break; case 2: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 3: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 4: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -8616,6 +8651,10 @@ class Test_TC_ACE_1_5Suite : public TestCommand shouldContinue = true; break; case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 7: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint8_t value; @@ -8623,7 +8662,7 @@ class Test_TC_ACE_1_5Suite : public TestCommand th2FabricIndex = value; } break; - case 7: + case 8: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value; @@ -8632,10 +8671,10 @@ class Test_TC_ACE_1_5Suite : public TestCommand } shouldContinue = true; break; - case 8: + case 9: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 9: + case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value; @@ -8644,10 +8683,10 @@ class Test_TC_ACE_1_5Suite : public TestCommand } shouldContinue = true; break; - case 10: + case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 11: + case 12: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList @@ -8655,23 +8694,23 @@ class Test_TC_ACE_1_5Suite : public TestCommand VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); } break; - case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS)); - break; case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS)); break; case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS)); + break; + case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::VendorId value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); } break; - case 15: + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 16: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType value; @@ -8706,7 +8745,18 @@ class Test_TC_ACE_1_5Suite : public TestCommand OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } case 2: { - LogStep(2, "Open Commissioning Window from alpha"); + LogStep(2, "Step 3 & 4: TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 3: { + LogStep(3, "Open Commissioning Window from alpha"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; value.commissioningTimeout = 180U; @@ -8728,41 +8778,44 @@ class Test_TC_ACE_1_5Suite : public TestCommand ); } - case 3: { - LogStep(3, "Waiting after opening commissioning window"); + case 4: { + LogStep(4, "Waiting after opening commissioning window"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = mWaitAfterCommissioning.HasValue() ? mWaitAfterCommissioning.Value() : 5000UL; return WaitForMs(kIdentityAlpha, value); } - case 4: { - LogStep(4, "Commission from TH2"); + case 5: { + LogStep(5, "Commission from TH2"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; value.payload = mPayload.HasValue() ? mPayload.Value() : chip::Span("MT:-24J0AFN00KA0648G00", 22); return PairWithCode(kIdentityBeta, value); } - case 5: { - LogStep(5, "Wait for the commissioned device to be retrieved for TH2"); + case 6: { + LogStep(6, "Wait for the commissioned device to be retrieved for TH2"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; return WaitForCommissionee(kIdentityBeta, value); } - case 6: { - LogStep(6, "TH2 reads the fabric index"); + case 7: { + LogStep(7, "TH2 reads the fabric index"); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } - case 7: { - LogStep(7, "Read the commissioner node ID from the alpha fabric"); + case 8: { + LogStep(8, "Read the commissioner node ID from the alpha fabric"); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; return GetCommissionerNodeId(kIdentityAlpha, value); } - case 8: { - LogStep(8, "TH1 writes ACL giving view privilege for descriptor cluster"); + case 9: { + LogStep(9, "TH1 writes ACL giving view privilege for descriptor cluster"); ListFreer listFreer; chip::app::DataModel::List value; @@ -8830,14 +8883,14 @@ class Test_TC_ACE_1_5Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 9: { - LogStep(9, "Read the commissioner node ID from the beta fabric"); + case 10: { + LogStep(10, "Read the commissioner node ID from the beta fabric"); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; return GetCommissionerNodeId(kIdentityBeta, value); } - case 10: { - LogStep(10, "TH2 writes ACL giving view privilge for basic cluster"); + case 11: { + LogStep(11, "TH2 writes ACL giving view privilge for basic cluster"); ListFreer listFreer; chip::app::DataModel::List value; @@ -8905,28 +8958,28 @@ class Test_TC_ACE_1_5Suite : public TestCommand return WriteAttribute(kIdentityBeta, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 11: { - LogStep(11, "TH1 reads descriptor cluster - expect SUCCESS"); + case 12: { + LogStep(12, "TH1 reads descriptor cluster - expect SUCCESS"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::DeviceTypeList::Id, true, chip::NullOptional); } - case 12: { - LogStep(12, "TH1 reads basic cluster - expect UNSUPPORTED_ACCESS"); + case 13: { + LogStep(13, "TH1 reads basic cluster - expect UNSUPPORTED_ACCESS"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::VendorID::Id, true, chip::NullOptional); } - case 13: { - LogStep(13, "TH2 reads descriptor cluster - expect UNSUPPORTED_ACCESS"); + case 14: { + LogStep(14, "TH2 reads descriptor cluster - expect UNSUPPORTED_ACCESS"); return ReadAttribute(kIdentityBeta, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::DeviceTypeList::Id, true, chip::NullOptional); } - case 14: { - LogStep(14, "TH2 reads basic cluster - expect SUCCESS"); + case 15: { + LogStep(15, "TH2 reads basic cluster - expect SUCCESS"); return ReadAttribute(kIdentityBeta, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::VendorID::Id, true, chip::NullOptional); } - case 15: { - LogStep(15, "TH1 resets ACL to default"); + case 16: { + LogStep(16, "TH1 resets ACL to default"); ListFreer listFreer; chip::app::DataModel::List value; @@ -8956,8 +9009,8 @@ class Test_TC_ACE_1_5Suite : public TestCommand return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value, chip::NullOptional, chip::NullOptional); } - case 16: { - LogStep(16, "TH1 sends RemoveFabric command for TH2"); + case 17: { + LogStep(17, "TH1 sends RemoveFabric command for TH2"); ListFreer listFreer; chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::Type value; value.fabricIndex = th2FabricIndex; @@ -9200,10 +9253,11 @@ class Test_TC_BOOL_2_1Suite : public TestCommand } }; -class Test_TC_ACT_1_1Suite : public TestCommand +class Test_TC_BRBINFO_1_1Suite : public TestCommand { public: - Test_TC_ACT_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_1_1", 7, credsIssuerConfig) + Test_TC_BRBINFO_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_BRBINFO_1_1", 20, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -9211,7 +9265,7 @@ class Test_TC_ACT_1_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ACT_1_1Suite() {} + ~Test_TC_BRBINFO_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -9264,8 +9318,7 @@ class Test_TC_ACT_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 17UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); @@ -9279,16 +9332,1300 @@ class Test_TC_ACT_1_1Suite : public TestCommand chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); } break; case 5: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - chip::app::DataModel::DecodableList value; + chip::app::DataModel::DecodableList value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintMaxLength("value", value, 11)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 13UL)); + } + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 14UL)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 15UL)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 18UL)); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("acceptedCommandList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("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"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ClusterRevision::Id, true, chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads the FeatureMap from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::FeatureMap::Id, true, chip::NullOptional); + } + case 3: { + LogStep(3, "TH reads AttributeList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, "TH reads optional attribute(VendorName) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 5: { + LogStep(5, "TH reads optional attribute(VendorID) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "TH reads optional attribute(ProductName) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads optional attribute(NodeLabel) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 8: { + LogStep(8, "TH reads optional attribute(HardwareVersion) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 9: { + LogStep(9, "TH reads optional attribute(HardwareVersionString) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 10: { + LogStep(10, "TH reads optional attribute(SoftwareVersion) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 11: { + LogStep(11, "TH reads optional attribute(SoftwareVersionString) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 12: { + LogStep(12, "TH reads optional attribute(ManufacturingDate) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 13: { + LogStep(13, "TH reads optional attribute(PartNumber) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 14: { + LogStep(14, "TH reads optional attribute(ProductURL) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 15: { + LogStep(15, "TH reads optional attribute(ProductLabel) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 16: { + LogStep(16, "TH reads optional attribute(SerialNumber) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 17: { + LogStep(17, "TH reads optional attribute(UniqueID) in AttributeList"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AttributeList::Id, true, chip::NullOptional); + } + case 18: { + LogStep(18, "TH1 reads AcceptedCommandList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 19: { + LogStep(19, "TH1 reads GeneratedCommandList from DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_BRBINFO_2_1Suite : public TestCommand +{ +public: + Test_TC_BRBINFO_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_BRBINFO_2_1", 50, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_BRBINFO_2_1Suite() + { + if (VendorNameValueBuffer != nullptr) + { + chip::Platform::MemoryFree(VendorNameValueBuffer); + VendorNameValueBuffer = nullptr; + } + if (ProductNameValueBuffer != nullptr) + { + chip::Platform::MemoryFree(ProductNameValueBuffer); + ProductNameValueBuffer = nullptr; + } + if (NodeLabelValueBuffer != nullptr) + { + chip::Platform::MemoryFree(NodeLabelValueBuffer); + NodeLabelValueBuffer = nullptr; + } + if (HardwareVersionStringValueBuffer != nullptr) + { + chip::Platform::MemoryFree(HardwareVersionStringValueBuffer); + HardwareVersionStringValueBuffer = nullptr; + } + if (SoftwareVersionStringValueBuffer != nullptr) + { + chip::Platform::MemoryFree(SoftwareVersionStringValueBuffer); + SoftwareVersionStringValueBuffer = nullptr; + } + if (ManufacturingDateValueBuffer != nullptr) + { + chip::Platform::MemoryFree(ManufacturingDateValueBuffer); + ManufacturingDateValueBuffer = nullptr; + } + if (PartNumberValueBuffer != nullptr) + { + chip::Platform::MemoryFree(PartNumberValueBuffer); + PartNumberValueBuffer = nullptr; + } + if (ProductURLValueBuffer != nullptr) + { + chip::Platform::MemoryFree(ProductURLValueBuffer); + ProductURLValueBuffer = nullptr; + } + if (ProductLabelValueBuffer != nullptr) + { + chip::Platform::MemoryFree(ProductLabelValueBuffer); + ProductLabelValueBuffer = nullptr; + } + if (SerialNumberValueBuffer != nullptr) + { + chip::Platform::MemoryFree(SerialNumberValueBuffer); + SerialNumberValueBuffer = nullptr; + } + if (UniqueIDValueBuffer != nullptr) + { + chip::Platform::MemoryFree(UniqueIDValueBuffer); + UniqueIDValueBuffer = nullptr; + } + } + + 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; + + char * VendorNameValueBuffer = nullptr; + chip::CharSpan VendorNameValue; + chip::VendorId VendorIDValue; + char * ProductNameValueBuffer = nullptr; + chip::CharSpan ProductNameValue; + char * NodeLabelValueBuffer = nullptr; + chip::CharSpan NodeLabelValue; + uint16_t HardwareVersionValue; + char * HardwareVersionStringValueBuffer = nullptr; + chip::CharSpan HardwareVersionStringValue; + uint32_t SoftwareVersionValue; + char * SoftwareVersionStringValueBuffer = nullptr; + chip::CharSpan SoftwareVersionStringValue; + char * ManufacturingDateValueBuffer = nullptr; + chip::CharSpan ManufacturingDateValue; + char * PartNumberValueBuffer = nullptr; + chip::CharSpan PartNumberValue; + char * ProductURLValueBuffer = nullptr; + chip::CharSpan ProductURLValue; + char * ProductLabelValueBuffer = nullptr; + chip::CharSpan ProductLabelValue; + char * SerialNumberValueBuffer = nullptr; + chip::CharSpan SerialNumberValue; + char * UniqueIDValueBuffer = nullptr; + chip::CharSpan UniqueIDValue; + + 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)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 32)); + if (VendorNameValueBuffer != nullptr) + { + chip::Platform::MemoryFree(VendorNameValueBuffer); + } + VendorNameValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(VendorNameValueBuffer, value.data(), value.size()); + VendorNameValue = chip::CharSpan(VendorNameValueBuffer, value.size()); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueAsString("vendorName", value, VendorNameValue)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::VendorId value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "vendor_id", "vendor_id")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 1U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65521U)); + VendorIDValue = value; + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::VendorId value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("vendorID", value, VendorIDValue)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 32)); + if (ProductNameValueBuffer != nullptr) + { + chip::Platform::MemoryFree(ProductNameValueBuffer); + } + ProductNameValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(ProductNameValueBuffer, value.data(), value.size()); + ProductNameValue = chip::CharSpan(ProductNameValueBuffer, value.size()); + } + 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)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueAsString("productName", value, ProductNameValue)); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 32)); + if (NodeLabelValueBuffer != nullptr) + { + chip::Platform::MemoryFree(NodeLabelValueBuffer); + } + NodeLabelValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(NodeLabelValueBuffer, value.data(), value.size()); + NodeLabelValue = chip::CharSpan(NodeLabelValueBuffer, value.size()); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65534U)); + HardwareVersionValue = value; + } + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("hardwareVersion", value, HardwareVersionValue)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMinLength("value", value, 1)); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 64)); + if (HardwareVersionStringValueBuffer != nullptr) + { + chip::Platform::MemoryFree(HardwareVersionStringValueBuffer); + } + HardwareVersionStringValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(HardwareVersionStringValueBuffer, value.data(), value.size()); + HardwareVersionStringValue = chip::CharSpan(HardwareVersionStringValueBuffer, value.size()); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueAsString("hardwareVersionString", value, HardwareVersionStringValue)); + } + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 4294967294UL)); + SoftwareVersionValue = value; + } + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("softwareVersion", value, SoftwareVersionValue)); + } + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintMinLength("value", value, 1)); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 64)); + if (SoftwareVersionStringValueBuffer != nullptr) + { + chip::Platform::MemoryFree(SoftwareVersionStringValueBuffer); + } + SoftwareVersionStringValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(SoftwareVersionStringValueBuffer, value.data(), value.size()); + SoftwareVersionStringValue = chip::CharSpan(SoftwareVersionStringValueBuffer, value.size()); + } + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueAsString("softwareVersionString", value, SoftwareVersionStringValue)); + } + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMinLength("value", value, 8)); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 16)); + if (ManufacturingDateValueBuffer != nullptr) + { + chip::Platform::MemoryFree(ManufacturingDateValueBuffer); + } + ManufacturingDateValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(ManufacturingDateValueBuffer, value.data(), value.size()); + ManufacturingDateValue = chip::CharSpan(ManufacturingDateValueBuffer, value.size()); + } + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueAsString("manufacturingDate", value, ManufacturingDateValue)); + } + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 32)); + if (PartNumberValueBuffer != nullptr) + { + chip::Platform::MemoryFree(PartNumberValueBuffer); + } + PartNumberValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(PartNumberValueBuffer, value.data(), value.size()); + PartNumberValue = chip::CharSpan(PartNumberValueBuffer, value.size()); + } + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueAsString("partNumber", value, PartNumberValue)); + } + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "long_char_string", "long_char_string")); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 256)); + if (ProductURLValueBuffer != nullptr) + { + chip::Platform::MemoryFree(ProductURLValueBuffer); + } + ProductURLValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(ProductURLValueBuffer, value.data(), value.size()); + ProductURLValue = chip::CharSpan(ProductURLValueBuffer, value.size()); + } + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueAsString("productURL", value, ProductURLValue)); + } + break; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 64)); + if (ProductLabelValueBuffer != nullptr) + { + chip::Platform::MemoryFree(ProductLabelValueBuffer); + } + ProductLabelValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(ProductLabelValueBuffer, value.data(), value.size()); + ProductLabelValue = chip::CharSpan(ProductLabelValueBuffer, value.size()); + } + break; + case 38: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 39: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 40: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueAsString("productLabel", value, ProductLabelValue)); + } + break; + case 41: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 32)); + if (SerialNumberValueBuffer != nullptr) + { + chip::Platform::MemoryFree(SerialNumberValueBuffer); + } + SerialNumberValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(SerialNumberValueBuffer, value.data(), value.size()); + SerialNumberValue = chip::CharSpan(SerialNumberValueBuffer, value.size()); + } + break; + case 42: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 43: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueAsString("serialNumber", value, SerialNumberValue)); + } + break; + case 44: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("reachable", value, true)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + break; + case 45: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 46: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("reachable", value, true)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + break; + case 47: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMaxLength("value", value, 32)); + if (UniqueIDValueBuffer != nullptr) + { + chip::Platform::MemoryFree(UniqueIDValueBuffer); + } + UniqueIDValueBuffer = static_cast(chip::Platform::MemoryAlloc(value.size())); + memcpy(UniqueIDValueBuffer, value.data(), value.size()); + UniqueIDValue = chip::CharSpan(UniqueIDValueBuffer, value.size()); + } + break; + case 48: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 49: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueAsString("uniqueID", value, UniqueIDValue)); + } + 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 VendorName from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::VendorName::Id, true, chip::NullOptional); + } + case 2: { + LogStep(2, "TH writes VendorName from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::CharSpan value; + value = chip::Span("samplegarbage: not in length on purpose", 6); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::VendorName::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 3: { + LogStep(3, "TH reads VendorName from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::VendorName::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, "TH reads VendorID from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::VendorID::Id, true, chip::NullOptional); + } + case 5: { + LogStep(5, "Verify that VendorID matches the value assigned to this manufacturer"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && BRBINFO.S.A0002"), 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 6: { + LogStep(6, "TH writes VendorID from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::VendorId value; + value = static_cast(17); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::VendorID::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads VendorID from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::VendorID::Id, true, chip::NullOptional); + } + case 8: { + LogStep(8, "TH reads ProductName from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ProductName::Id, true, chip::NullOptional); + } + case 9: { + LogStep(9, "TH writes ProductName from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::CharSpan value; + value = chip::Span("newproductgarbage: not in length on purpose", 10); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ProductName::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 10: { + LogStep(10, "TH reads ProductName from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ProductName::Id, true, chip::NullOptional); + } + case 11: { + LogStep(11, "TH reads NodeLabel from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::NodeLabel::Id, true, chip::NullOptional); + } + case 12: { + LogStep(12, "TH writes NodeLabel from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0005 && PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 13: { + LogStep(13, "TH reads NodeLabel from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0005 && PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 14: { + LogStep(14, "TH reads HardwareVersion from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::HardwareVersion::Id, true, chip::NullOptional); + } + case 15: { + LogStep(15, "TH writes HardwareVersion from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint16_t value; + value = 17713U; + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::HardwareVersion::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 16: { + LogStep(16, "TH reads HardwareVersion from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::HardwareVersion::Id, true, chip::NullOptional); + } + case 17: { + LogStep(17, "TH reads HardwareVersionString from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::HardwareVersionString::Id, true, chip::NullOptional); + } + case 18: { + LogStep(18, "TH writes HardwareVersionString from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::CharSpan value; + value = chip::Span("newhardwareversiongarbage: not in length on purpose", 18); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::HardwareVersionString::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 19: { + LogStep(19, "TH reads HardwareVersionString from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::HardwareVersionString::Id, true, chip::NullOptional); + } + case 20: { + LogStep(20, "TH reads SoftwareVersion from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::SoftwareVersion::Id, true, chip::NullOptional); + } + case 21: { + LogStep(21, "TH writes SoftwareVersion from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint32_t value; + value = 33299UL; + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::SoftwareVersion::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 22: { + LogStep(22, "TH reads SoftwareVersion from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::SoftwareVersion::Id, true, chip::NullOptional); + } + case 23: { + LogStep(23, "TH reads SoftwareVersionString from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::SoftwareVersionString::Id, true, chip::NullOptional); + } + case 24: { + LogStep(24, "TH writes SoftwareVersionString from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::CharSpan value; + value = chip::Span("1.0garbage: not in length on purpose", 3); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::SoftwareVersionString::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 25: { + LogStep(25, "TH reads SoftwareVersionString from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::SoftwareVersionString::Id, true, chip::NullOptional); + } + case 26: { + LogStep(26, "TH reads ManufacturingDate from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ManufacturingDate::Id, true, chip::NullOptional); + } + case 27: { + LogStep(27, "Verify if the first 8 characters specify date according to ISO 8601, i.e, YYYYMMDD."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && BRBINFO.S.A000b"), 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 28: { + LogStep(28, "TH writes ManufacturingDate from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::CharSpan value; + value = chip::Span("20210814789452INgarbage: not in length on purpose", 16); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ManufacturingDate::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 29: { + LogStep(29, "TH reads ManufacturingDate from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ManufacturingDate::Id, true, chip::NullOptional); + } + case 30: { + LogStep(30, "TH reads PartNumber from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::PartNumber::Id, true, chip::NullOptional); + } + case 31: { + LogStep(31, "TH writes PartNumber from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::CharSpan value; + value = chip::Span("newpartgarbage: not in length on purpose", 7); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::PartNumber::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 32: { + LogStep(32, "TH reads PartNumber from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::PartNumber::Id, true, chip::NullOptional); + } + case 33: { + LogStep(33, "TH reads ProductURL from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ProductURL::Id, true, chip::NullOptional); + } + case 34: { + LogStep(34, + "Verify that it specifies a link to a specific web page, Verify that it follows the syntax rules specified in " + "RFC 3986."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && BRBINFO.S.A000d"), 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 35: { + LogStep(35, "TH writes ProductURL from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::CharSpan value; + value = chip::Span("https://www.example.comgarbage: not in length on purpose", 23); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ProductURL::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 36: { + LogStep(36, "TH reads ProductURL from the DUT"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ProductURL::Id, true, chip::NullOptional); + } + case 37: { + LogStep(37, "TH reads ProductLabel from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ProductLabel::Id, true, chip::NullOptional); + } + case 38: { + LogStep(38, "Verify that it does not include the name of the vendor as defined within the VendorName attribute"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && BRBINFO.S.A000e"), 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 39: { + LogStep(39, "TH writes ProductLabel from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::CharSpan value; + value = chip::Span("newproductlabelgarbage: not in length on purpose", 15); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ProductLabel::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 40: { + LogStep(40, "TH reads ProductLabel from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::ProductLabel::Id, true, chip::NullOptional); + } + case 41: { + LogStep(41, "TH reads SerialNumber from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::SerialNumber::Id, true, chip::NullOptional); + } + case 42: { + LogStep(42, "TH writes SerialNumber from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::CharSpan value; + value = chip::Span("newserialnumbergarbage: not in length on purpose", 15); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::SerialNumber::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 43: { + LogStep(43, "TH reads SerialNumber from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::SerialNumber::Id, true, chip::NullOptional); + } + case 44: { + LogStep(44, "TH reads Reachable from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::Reachable::Id, true, chip::NullOptional); + } + case 45: { + LogStep(45, "TH sends Write request message to DUT to change value of Reachable to false"); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + bool value; + value = false; + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::Reachable::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 46: { + LogStep(46, "TH reads Reachable from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::Reachable::Id, true, chip::NullOptional); + } + case 47: { + LogStep(47, "TH reads UniqueID from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::UniqueID::Id, true, chip::NullOptional); + } + case 48: { + LogStep(48, "TH writes UniqueID from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::CharSpan value; + value = chip::Span("newidgarbage: not in length on purpose", 5); + return WriteAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::UniqueID::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 49: { + LogStep(49, "TH reads UniqueID from the DUT."); + VerifyOrDo(!ShouldSkip("BRBINFO.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), BridgedDeviceBasicInformation::Id, + BridgedDeviceBasicInformation::Attributes::UniqueID::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_ACT_1_1Suite : public TestCommand +{ +public: + Test_TC_ACT_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_1_1", 7, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ACT_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) + { + 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)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 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, 2UL)); + } + 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(CheckConstraintMaxLength("value", value, 11)); } break; case 6: @@ -35896,71 +37233,286 @@ class Test_TC_APBSC_9_1Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "Reads the VendorName attribute"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::VendorName::Id, - true, chip::NullOptional); + LogStep(1, "Reads the VendorName attribute"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::VendorName::Id, + true, chip::NullOptional); + } + case 2: { + LogStep(2, "Reads the VendorID attribute"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::VendorID::Id, + true, chip::NullOptional); + } + case 3: { + LogStep(3, "Reads the ApplicationName attribute"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, + ApplicationBasic::Attributes::ApplicationName::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, "Reads the ProductID attribute"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::ProductID::Id, + true, chip::NullOptional); + } + case 5: { + LogStep(5, "Reads the Application attribute"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, + ApplicationBasic::Attributes::Application::Id, true, chip::NullOptional); + } + case 6: { + LogStep(6, "Reads the Status attribute"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "Reads the ApplicationVersion attribute"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, + ApplicationBasic::Attributes::ApplicationVersion::Id, true, chip::NullOptional); + } + case 8: { + LogStep(8, "Reads the AllowedVendorList attribute"); + VerifyOrDo(!ShouldSkip("APBSC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, + ApplicationBasic::Attributes::AllowedVendorList::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CONTENTLAUNCHER_10_1Suite : public TestCommand +{ +public: + Test_TC_CONTENTLAUNCHER_10_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CONTENTLAUNCHER_10_1", 3, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CONTENTLAUNCHER_10_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 2: + 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")); + } + 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 AcceptHeader attribute from the DUT"); + VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AcceptHeader::Id, + true, chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads the SupportedStreamingProtocols attribute from the DUT"); + VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, + ContentLauncher::Attributes::SupportedStreamingProtocols::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WAKEONLAN_4_1Suite : public TestCommand +{ +public: + Test_TC_WAKEONLAN_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_WAKEONLAN_4_1", 4, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WAKEONLAN_4_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::CharSpan value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintMinLength("value", value, 12)); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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 MACAddress attribute from the DUT"); + VerifyOrDo(!ShouldSkip("WAKEONLAN.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), WakeOnLan::Id, WakeOnLan::Attributes::MACAddress::Id, true, + chip::NullOptional); } case 2: { - LogStep(2, "Reads the VendorID attribute"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::VendorID::Id, - true, chip::NullOptional); + LogStep(2, "TH sends a Sleep command to DUT"); + VerifyOrDo(!ShouldSkip("LOWPOWER.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LowPower::Commands::Sleep::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), LowPower::Id, LowPower::Commands::Sleep::Id, value, + chip::NullOptional + + ); } case 3: { - LogStep(3, "Reads the ApplicationName attribute"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, - ApplicationBasic::Attributes::ApplicationName::Id, true, chip::NullOptional); - } - case 4: { - LogStep(4, "Reads the ProductID attribute"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::ProductID::Id, - true, chip::NullOptional); - } - case 5: { - LogStep(5, "Reads the Application attribute"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, - ApplicationBasic::Attributes::Application::Id, true, chip::NullOptional); - } - case 6: { - LogStep(6, "Reads the Status attribute"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id, - true, chip::NullOptional); - } - case 7: { - LogStep(7, "Reads the ApplicationVersion attribute"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, - ApplicationBasic::Attributes::ApplicationVersion::Id, true, chip::NullOptional); - } - case 8: { - LogStep(8, "Reads the AllowedVendorList attribute"); - VerifyOrDo(!ShouldSkip("APBSC.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, - ApplicationBasic::Attributes::AllowedVendorList::Id, true, chip::NullOptional); + LogStep(3, "TH sends a Wake-On LAN magic packet containing the MAC address from step 1"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } } return CHIP_NO_ERROR; } }; -class Test_TC_CONTENTLAUNCHER_10_1Suite : public TestCommand +class Test_TC_ALOGIN_12_1Suite : public TestCommand { public: - Test_TC_CONTENTLAUNCHER_10_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CONTENTLAUNCHER_10_1", 3, credsIssuerConfig) + Test_TC_ALOGIN_12_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_ALOGIN_12_1", 5, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("TempAccountIdentifier", &mTempAccountIdentifier); + AddArgument("catalogVendorId", 0, UINT16_MAX, &mCatalogVendorId); + AddArgument("applicationId", &mApplicationId); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CONTENTLAUNCHER_10_1Suite() {} + ~Test_TC_ALOGIN_12_1Suite() + { + if (setupPINBuffer != nullptr) + { + chip::Platform::MemoryFree(setupPINBuffer); + setupPINBuffer = nullptr; + } + } chip::System::Clock::Timeout GetWaitDuration() const override { @@ -35971,8 +37523,14 @@ class Test_TC_CONTENTLAUNCHER_10_1Suite : public TestCommand chip::Optional mNodeId; chip::Optional mCluster; chip::Optional mEndpoint; + chip::Optional mTempAccountIdentifier; + chip::Optional mCatalogVendorId; + chip::Optional mApplicationId; chip::Optional mTimeout; + char * setupPINBuffer = nullptr; + chip::CharSpan setupPIN; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -35992,19 +37550,31 @@ class Test_TC_CONTENTLAUNCHER_10_1Suite : public TestCommand case 1: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - chip::app::DataModel::DecodableList value; + chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckValue("status", value.status, 0U)); } break; case 2: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - uint32_t value; + chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + if (setupPINBuffer != nullptr) + { + chip::Platform::MemoryFree(setupPINBuffer); + } + setupPINBuffer = static_cast(chip::Platform::MemoryAlloc(value.setupPIN.size())); + memcpy(setupPINBuffer, value.setupPIN.data(), value.setupPIN.size()); + setupPIN = chip::CharSpan(setupPINBuffer, value.setupPIN.size()); } 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; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -36028,16 +37598,57 @@ class Test_TC_CONTENTLAUNCHER_10_1Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "TH reads the AcceptHeader attribute from the DUT"); - VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, ContentLauncher::Attributes::AcceptHeader::Id, - true, chip::NullOptional); + LogStep(1, "Launch an app with the provided a application ID"); + VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::Type value; + value.application.Emplace(); + + value.application.Value().catalogVendorID = mCatalogVendorId.HasValue() ? mCatalogVendorId.Value() : 123U; + value.application.Value().applicationID = + mApplicationId.HasValue() ? mApplicationId.Value() : chip::Span("exampleid", 9); + + value.data.Emplace(); + value.data.Value() = chip::ByteSpan(chip::Uint8::from_const_char("Hello Worldgarbage: not in length on purpose"), 11); + return SendCommand(kIdentityAlpha, GetEndpoint(3), ApplicationLauncher::Id, + ApplicationLauncher::Commands::LaunchApp::Id, value, chip::NullOptional + + ); } case 2: { - LogStep(2, "TH reads the SupportedStreamingProtocols attribute from the DUT"); - VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id, - ContentLauncher::Attributes::SupportedStreamingProtocols::Id, true, chip::NullOptional); + LogStep(2, "TH sends a GetSetupPIN command to the DUT with test values provided by the product maker."); + VerifyOrDo(!ShouldSkip("ALOGIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AccountLogin::Commands::GetSetupPIN::Type value; + value.tempAccountIdentifier = + mTempAccountIdentifier.HasValue() ? mTempAccountIdentifier.Value() : chip::Span("1111", 4); + return SendCommand(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Commands::GetSetupPIN::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 3: { + LogStep(3, "TH sends a Login command to the DUT with test values provided by the product maker."); + VerifyOrDo(!ShouldSkip("ALOGIN.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AccountLogin::Commands::Login::Type value; + value.tempAccountIdentifier = + mTempAccountIdentifier.HasValue() ? mTempAccountIdentifier.Value() : chip::Span("1111", 4); + value.setupPIN = setupPIN; + return SendCommand(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Commands::Login::Id, value, + chip::Optional(10000), chip::NullOptional + + ); + } + case 4: { + LogStep(4, "TH sends a Logout command to the DUT with test values provided by the product maker."); + VerifyOrDo(!ShouldSkip("ALOGIN.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::AccountLogin::Commands::Logout::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(3), AccountLogin::Id, AccountLogin::Commands::Logout::Id, value, + chip::Optional(10000), chip::NullOptional + + ); } } return CHIP_NO_ERROR; @@ -42756,6 +44367,7 @@ class Test_TC_SC_5_2Suite : public TestCommand } case 15: { LogStep(15, "TH removes the GroupKeySet"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::Type value; value.groupKeySetID = 419U; @@ -48198,7 +49810,7 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand { public: Test_TC_DGTHREAD_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_1_1", 16, credsIssuerConfig) + TestCommand("Test_TC_DGTHREAD_1_1", 17, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -48418,11 +50030,23 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand { 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")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); } break; case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::DecodableList value; @@ -48535,11 +50159,18 @@ class Test_TC_DGTHREAD_1_1Suite : public TestCommand } case 14: { LogStep(14, "TH reads AcceptedCommandList from DUT"); + VerifyOrDo(!ShouldSkip(" !DGTHREAD.S.F01 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); } case 15: { - LogStep(15, "TH reads GeneratedCommandList from DUT"); + LogStep(15, "TH reads AcceptedCommandList from DUT"); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 16: { + LogStep(16, "TH reads GeneratedCommandList from DUT"); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); } @@ -48951,7 +50582,7 @@ class Test_TC_DGTHREAD_2_1Suite : public TestCommand } case 10: { LogStep(10, "TH reads OverrunCount attribute value from DUT"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0006 && DGTHREAD.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::OverrunCount::Id, true, chip::NullOptional); } @@ -49023,50 +50654,50 @@ class Test_TC_DGTHREAD_2_1Suite : public TestCommand } case 19: { LogStep(19, "TH reads DetachedRoleCount attribute value from DUT"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A000e && DGTHREAD.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::DetachedRoleCount::Id, true, chip::NullOptional); } case 20: { LogStep(20, "TH reads ChildRoleCount attribute value from DUT"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A000f && DGTHREAD.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::ChildRoleCount::Id, true, chip::NullOptional); } case 21: { LogStep(21, "TH reads RouterRoleCount attribute value from DUT"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0010 && DGTHREAD.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::RouterRoleCount::Id, true, chip::NullOptional); } case 22: { LogStep(22, "TH reads LeaderRoleCount attribute value from DUT"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0011 && DGTHREAD.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::LeaderRoleCount::Id, true, chip::NullOptional); } case 23: { LogStep(23, "TH reads AttachAttemptCount attribute value from DUT"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0012 && DGTHREAD.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::AttachAttemptCount::Id, true, chip::NullOptional); } case 24: { LogStep(24, "TH reads PartitionIdChangeCount attribute value from DUT"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0013 && DGTHREAD.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::PartitionIdChangeCount::Id, true, chip::NullOptional); } case 25: { LogStep(25, "TH reads BetterPartitionAttachAttemptCount attribute value from DUT"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0014 && DGTHREAD.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::BetterPartitionAttachAttemptCount::Id, true, chip::NullOptional); } case 26: { LogStep(26, "TH reads ParentChangeCount attribute value from DUT"); - VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0015 && DGTHREAD.S.F02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, ThreadNetworkDiagnostics::Attributes::ParentChangeCount::Id, true, chip::NullOptional); } @@ -49638,7 +51269,13 @@ class Test_TC_DGTHREAD_2_3Suite : public TestCommand break; case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int32u", "int32u")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0UL)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 4294967295UL)); + } break; case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -49771,14 +51408,10 @@ class Test_TC_DGTHREAD_2_3Suite : public TestCommand ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id, true, chip::NullOptional); } case 14: { - LogStep(14, "TH reads RxErrInvalidScrAddrCount attribute value from DUT and verify data type"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DGTHREAD.S.A0034"), 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); + LogStep(14, "TH reads RxErrInvalidSrcAddrCount attribute value from DUT and verify data type"); + VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0034"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id, + ThreadNetworkDiagnostics::Attributes::RxErrInvalidSrcAddrCount::Id, true, chip::NullOptional); } case 15: { LogStep(15, "TH reads RxErrSecCount attribute value from DUT"); @@ -83644,7 +85277,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", 36, credsIssuerConfig) + Test_TC_DRLK_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_3", 39, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -83815,17 +85448,21 @@ class Test_TC_DRLK_2_3Suite : public TestCommand break; case 26: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 28: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); 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; @@ -83833,7 +85470,7 @@ class Test_TC_DRLK_2_3Suite : public TestCommand VerifyOrReturn(CheckValue("autoRelockTime", value, 10UL)); } break; - case 31: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { uint32_t value; @@ -83841,18 +85478,30 @@ class Test_TC_DRLK_2_3Suite : public TestCommand VerifyOrReturn(CheckValue("autoRelockTime", value, 60UL)); } break; - case 32: + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 33: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 34: + case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValueNonNull("lockState", value)); + VerifyOrReturn(CheckValue("lockState.Value()", value.Value(), 1U)); + } break; - case 35: + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; default: @@ -84163,7 +85812,15 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } case 26: { - LogStep(26, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); + LogStep(26, "Wait for UserCodeTemporaryDisableTime expires"); + VerifyOrDo(!ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 15000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 27: { + LogStep(27, "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; @@ -84171,8 +85828,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 27: { - LogStep(27, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); + case 28: { + LogStep(28, "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; @@ -84180,8 +85837,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 10 seconds on the DUT"); + case 29: { + LogStep(29, "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; @@ -84189,8 +85846,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 60 seconds on the DUT"); + case 30: { + LogStep(30, "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; @@ -84198,42 +85855,56 @@ 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 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_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, chip::NullOptional); } - case 31: { - LogStep(31, "TH reads the AutoRelockTime attribute from the DUT"); + case 32: { + LogStep(32, "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 32: { - LogStep(32, + case 33: { + LogStep(33, "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)); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), 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); + chip::app::Clusters::DoorLock::Commands::UnlockDoor::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::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); } - 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)); + case 34: { + LogStep(34, "Wait for AutoRelockTime Expires"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY"), 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); + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 10000UL; + return WaitForMs(kIdentityAlpha, value); } - case 34: { - LogStep(34, "Cleanup the created user"); + case 35: { + LogStep(35, "Wait for AutoRelockTime Expires"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 60000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 36: { + LogStep(36, "TH reads LockState attribute"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0000 && DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id, true, + chip::NullOptional); + } + case 37: { + LogStep(37, "Cleanup the created user"); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = 1U; @@ -84242,8 +85913,8 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ); } - case 35: { - LogStep(35, "Clean the created credential"); + case 38: { + LogStep(38, "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; @@ -95090,65 +96761,10 @@ class Test_TC_DLOG_2_2Suite : public TestCommand } }; -class Test_TC_DLOG_3_1Suite : public TestCommand -{ -public: - Test_TC_DLOG_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DLOG_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_DLOG_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_DESC_2_1Suite : public TestCommand +class Test_TC_DLOG_3_1Suite : public TestCommand { public: - Test_TC_DESC_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DESC_2_1", 0, credsIssuerConfig) + Test_TC_DLOG_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DLOG_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -95156,7 +96772,7 @@ class Test_TC_DESC_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DESC_2_1Suite() {} + ~Test_TC_DLOG_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -95200,10 +96816,10 @@ class Test_TC_DESC_2_1Suite : public TestCommand } }; -class Test_TC_DGETH_3_2Suite : public TestCommand +class Test_TC_DESC_2_1Suite : public TestCommand { public: - Test_TC_DGETH_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGETH_3_2", 0, credsIssuerConfig) + Test_TC_DESC_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DESC_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -95211,7 +96827,7 @@ class Test_TC_DGETH_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGETH_3_2Suite() {} + ~Test_TC_DESC_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -95255,10 +96871,10 @@ class Test_TC_DGETH_3_2Suite : public TestCommand } }; -class Test_TC_CGEN_2_2Suite : public TestCommand +class Test_TC_DGETH_3_2Suite : public TestCommand { public: - Test_TC_CGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_2_2", 0, credsIssuerConfig) + Test_TC_DGETH_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGETH_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -95266,7 +96882,7 @@ class Test_TC_CGEN_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CGEN_2_2Suite() {} + ~Test_TC_DGETH_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -95310,10 +96926,10 @@ class Test_TC_CGEN_2_2Suite : public TestCommand } }; -class Test_TC_DGGEN_2_2Suite : public TestCommand +class Test_TC_CGEN_2_2Suite : public TestCommand { public: - Test_TC_DGGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_2", 0, credsIssuerConfig) + Test_TC_CGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -95321,7 +96937,7 @@ class Test_TC_DGGEN_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGGEN_2_2Suite() {} + ~Test_TC_CGEN_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -95365,10 +96981,10 @@ class Test_TC_DGGEN_2_2Suite : public TestCommand } }; -class Test_TC_DGGEN_2_3Suite : public TestCommand +class Test_TC_DGGEN_2_2Suite : public TestCommand { public: - Test_TC_DGGEN_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_3", 0, credsIssuerConfig) + Test_TC_DGGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -95376,7 +96992,7 @@ class Test_TC_DGGEN_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGGEN_2_3Suite() {} + ~Test_TC_DGGEN_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -95420,10 +97036,10 @@ class Test_TC_DGGEN_2_3Suite : public TestCommand } }; -class Test_TC_DGGEN_3_1Suite : public TestCommand +class Test_TC_DGGEN_2_3Suite : public TestCommand { public: - Test_TC_DGGEN_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_3_1", 0, credsIssuerConfig) + Test_TC_DGGEN_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -95431,7 +97047,7 @@ class Test_TC_DGGEN_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGGEN_3_1Suite() {} + ~Test_TC_DGGEN_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -95475,10 +97091,10 @@ class Test_TC_DGGEN_3_1Suite : public TestCommand } }; -class Test_TC_I_3_1Suite : public TestCommand +class Test_TC_DGGEN_3_1Suite : public TestCommand { public: - Test_TC_I_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_3_1", 0, credsIssuerConfig) + Test_TC_DGGEN_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -95486,7 +97102,7 @@ class Test_TC_I_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_I_3_1Suite() {} + ~Test_TC_DGGEN_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -97916,118 +99532,6 @@ class Test_TC_ALOGIN_12_2Suite : public TestCommand } }; -class Test_TC_WAKEONLAN_4_1Suite : public TestCommand -{ -public: - Test_TC_WAKEONLAN_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_WAKEONLAN_4_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_WAKEONLAN_4_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_ALOGIN_12_1Suite : public TestCommand -{ -public: - Test_TC_ALOGIN_12_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_ALOGIN_12_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_ALOGIN_12_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_CADMIN_1_1Suite : public TestCommand { public: @@ -101796,120 +103300,10 @@ class Test_TC_MOD_3_2Suite : public TestCommand } }; -class Test_TC_MOD_3_3Suite : public TestCommand -{ -public: - Test_TC_MOD_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_3_3", 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_MOD_3_3Suite() {} - - 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_MOD_3_4Suite : public TestCommand -{ -public: - Test_TC_MOD_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_3_4", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_MOD_3_4Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_SU_1_1Suite : public TestCommand +class Test_TC_MOD_3_3Suite : public TestCommand { public: - Test_TC_SU_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_1_1", 0, credsIssuerConfig) + Test_TC_MOD_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_3_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101917,7 +103311,7 @@ class Test_TC_SU_1_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_1_1Suite() {} + ~Test_TC_MOD_3_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -101961,10 +103355,10 @@ class Test_TC_SU_1_1Suite : public TestCommand } }; -class Test_TC_SU_2_1Suite : public TestCommand +class Test_TC_MOD_3_4Suite : public TestCommand { public: - Test_TC_SU_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_1", 0, credsIssuerConfig) + Test_TC_MOD_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_3_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -101972,7 +103366,7 @@ class Test_TC_SU_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_2_1Suite() {} + ~Test_TC_MOD_3_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102016,10 +103410,10 @@ class Test_TC_SU_2_1Suite : public TestCommand } }; -class Test_TC_SU_2_2Suite : public TestCommand +class Test_TC_SU_1_1Suite : public TestCommand { public: - Test_TC_SU_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_2", 0, credsIssuerConfig) + Test_TC_SU_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102027,7 +103421,7 @@ class Test_TC_SU_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_2_2Suite() {} + ~Test_TC_SU_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102071,10 +103465,10 @@ class Test_TC_SU_2_2Suite : public TestCommand } }; -class Test_TC_SU_2_3Suite : public TestCommand +class Test_TC_SU_2_1Suite : public TestCommand { public: - Test_TC_SU_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_3", 0, credsIssuerConfig) + Test_TC_SU_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102082,7 +103476,7 @@ class Test_TC_SU_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_2_3Suite() {} + ~Test_TC_SU_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102126,10 +103520,10 @@ class Test_TC_SU_2_3Suite : public TestCommand } }; -class Test_TC_SU_2_4Suite : public TestCommand +class Test_TC_SU_2_2Suite : public TestCommand { public: - Test_TC_SU_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_4", 0, credsIssuerConfig) + Test_TC_SU_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102137,7 +103531,7 @@ class Test_TC_SU_2_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_2_4Suite() {} + ~Test_TC_SU_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102181,10 +103575,10 @@ class Test_TC_SU_2_4Suite : public TestCommand } }; -class Test_TC_SU_2_5Suite : public TestCommand +class Test_TC_SU_2_3Suite : public TestCommand { public: - Test_TC_SU_2_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_5", 0, credsIssuerConfig) + Test_TC_SU_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102192,7 +103586,7 @@ class Test_TC_SU_2_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_2_5Suite() {} + ~Test_TC_SU_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102236,10 +103630,10 @@ class Test_TC_SU_2_5Suite : public TestCommand } }; -class Test_TC_SU_2_6Suite : public TestCommand +class Test_TC_SU_2_4Suite : public TestCommand { public: - Test_TC_SU_2_6Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_6", 0, credsIssuerConfig) + Test_TC_SU_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102247,7 +103641,7 @@ class Test_TC_SU_2_6Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_2_6Suite() {} + ~Test_TC_SU_2_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102291,10 +103685,10 @@ class Test_TC_SU_2_6Suite : public TestCommand } }; -class Test_TC_SU_2_7Suite : public TestCommand +class Test_TC_SU_2_5Suite : public TestCommand { public: - Test_TC_SU_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_7", 0, credsIssuerConfig) + Test_TC_SU_2_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_5", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102302,7 +103696,7 @@ class Test_TC_SU_2_7Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_2_7Suite() {} + ~Test_TC_SU_2_5Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102346,10 +103740,10 @@ class Test_TC_SU_2_7Suite : public TestCommand } }; -class Test_TC_SU_2_8Suite : public TestCommand +class Test_TC_SU_2_6Suite : public TestCommand { public: - Test_TC_SU_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_8", 0, credsIssuerConfig) + Test_TC_SU_2_6Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_6", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102357,7 +103751,7 @@ class Test_TC_SU_2_8Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_2_8Suite() {} + ~Test_TC_SU_2_6Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102401,10 +103795,10 @@ class Test_TC_SU_2_8Suite : public TestCommand } }; -class Test_TC_SU_3_1Suite : public TestCommand +class Test_TC_SU_2_7Suite : public TestCommand { public: - Test_TC_SU_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_1", 0, credsIssuerConfig) + Test_TC_SU_2_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_7", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102412,7 +103806,7 @@ class Test_TC_SU_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_3_1Suite() {} + ~Test_TC_SU_2_7Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102456,10 +103850,10 @@ class Test_TC_SU_3_1Suite : public TestCommand } }; -class Test_TC_SU_3_2Suite : public TestCommand +class Test_TC_SU_2_8Suite : public TestCommand { public: - Test_TC_SU_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_2", 0, credsIssuerConfig) + Test_TC_SU_2_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_2_8", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102467,7 +103861,7 @@ class Test_TC_SU_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_3_2Suite() {} + ~Test_TC_SU_2_8Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102511,10 +103905,10 @@ class Test_TC_SU_3_2Suite : public TestCommand } }; -class Test_TC_SU_3_3Suite : public TestCommand +class Test_TC_SU_3_1Suite : public TestCommand { public: - Test_TC_SU_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_3", 0, credsIssuerConfig) + Test_TC_SU_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102522,7 +103916,7 @@ class Test_TC_SU_3_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_3_3Suite() {} + ~Test_TC_SU_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102566,10 +103960,10 @@ class Test_TC_SU_3_3Suite : public TestCommand } }; -class Test_TC_SU_3_4Suite : public TestCommand +class Test_TC_SU_3_2Suite : public TestCommand { public: - Test_TC_SU_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_4", 0, credsIssuerConfig) + Test_TC_SU_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102577,7 +103971,7 @@ class Test_TC_SU_3_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_3_4Suite() {} + ~Test_TC_SU_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102621,10 +104015,10 @@ class Test_TC_SU_3_4Suite : public TestCommand } }; -class Test_TC_SU_4_1Suite : public TestCommand +class Test_TC_SU_3_3Suite : public TestCommand { public: - Test_TC_SU_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_1", 0, credsIssuerConfig) + Test_TC_SU_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102632,7 +104026,7 @@ class Test_TC_SU_4_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_4_1Suite() {} + ~Test_TC_SU_3_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102676,10 +104070,10 @@ class Test_TC_SU_4_1Suite : public TestCommand } }; -class Test_TC_SU_4_2Suite : public TestCommand +class Test_TC_SU_3_4Suite : public TestCommand { public: - Test_TC_SU_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_2", 0, credsIssuerConfig) + Test_TC_SU_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_3_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102687,7 +104081,7 @@ class Test_TC_SU_4_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SU_4_2Suite() {} + ~Test_TC_SU_3_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102731,10 +104125,10 @@ class Test_TC_SU_4_2Suite : public TestCommand } }; -class Test_TC_PSCFG_2_2Suite : public TestCommand +class Test_TC_SU_4_1Suite : public TestCommand { public: - Test_TC_PSCFG_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PSCFG_2_2", 0, credsIssuerConfig) + Test_TC_SU_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102742,7 +104136,7 @@ class Test_TC_PSCFG_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_PSCFG_2_2Suite() {} + ~Test_TC_SU_4_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102786,10 +104180,10 @@ class Test_TC_PSCFG_2_2Suite : public TestCommand } }; -class Test_TC_PSCFG_3_1Suite : public TestCommand +class Test_TC_SU_4_2Suite : public TestCommand { public: - Test_TC_PSCFG_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PSCFG_3_1", 0, credsIssuerConfig) + Test_TC_SU_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SU_4_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102797,7 +104191,7 @@ class Test_TC_PSCFG_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_PSCFG_3_1Suite() {} + ~Test_TC_SU_4_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -102841,10 +104235,10 @@ class Test_TC_PSCFG_3_1Suite : public TestCommand } }; -class Test_TC_PRS_3_1Suite : public TestCommand +class Test_TC_PSCFG_2_2Suite : public TestCommand { public: - Test_TC_PRS_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PRS_3_1", 0, credsIssuerConfig) + Test_TC_PSCFG_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PSCFG_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -102852,7 +104246,7 @@ class Test_TC_PRS_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_PRS_3_1Suite() {} + ~Test_TC_PSCFG_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -104773,61 +106167,6 @@ class Test_TC_FLW_2_2Suite : public TestCommand } }; -class Test_TC_FLW_3_1Suite : public TestCommand -{ -public: - Test_TC_FLW_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLW_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_FLW_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_OCC_3_1Suite : public TestCommand { public: @@ -104994,61 +106333,6 @@ class Test_TC_PS_2_2Suite : public TestCommand } }; -class Test_TC_PS_3_1Suite : public TestCommand -{ -public: - Test_TC_PS_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PS_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_PS_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_BOOL_2_2Suite : public TestCommand { public: @@ -105104,61 +106388,6 @@ class Test_TC_BOOL_2_2Suite : public TestCommand } }; -class Test_TC_BOOL_3_1Suite : public TestCommand -{ -public: - Test_TC_BOOL_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BOOL_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_BOOL_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_CC_2_2Suite : public TestCommand { public: @@ -112079,61 +113308,6 @@ class Test_TC_SWTCH_2_2Suite : public TestCommand } }; -class Test_TC_SWTCH_3_1Suite : public TestCommand -{ -public: - Test_TC_SWTCH_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SWTCH_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_SWTCH_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_SWTCH_3_2Suite : public TestCommand { public: @@ -112782,232 +113956,11 @@ class Test_TC_DGTHREAD_3_3Suite : public TestCommand } }; -class Test_TC_DGTHREAD_3_4Suite : public TestCommand -{ -public: - Test_TC_DGTHREAD_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_3_4", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_DGTHREAD_3_4Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_DGTHREAD_3_5Suite : public TestCommand -{ -public: - Test_TC_DGTHREAD_3_5Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_3_5", 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_DGTHREAD_3_5Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_ACT_2_1Suite : public TestCommand -{ -public: - Test_TC_ACT_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_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_ACT_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_ACT_2_2Suite : public TestCommand -{ -public: - Test_TC_ACT_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_2_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_ACT_2_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_ACT_3_1Suite : public TestCommand +class Test_TC_DGTHREAD_3_4Suite : public TestCommand { public: - Test_TC_ACT_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_3_1", 0, credsIssuerConfig) + Test_TC_DGTHREAD_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_DGTHREAD_3_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113015,7 +113968,7 @@ class Test_TC_ACT_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ACT_3_1Suite() {} + ~Test_TC_DGTHREAD_3_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113059,10 +114012,10 @@ class Test_TC_ACT_3_1Suite : public TestCommand } }; -class Test_TC_ACT_3_2Suite : public TestCommand +class Test_TC_ACT_2_1Suite : public TestCommand { public: - Test_TC_ACT_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_3_2", 0, credsIssuerConfig) + Test_TC_ACT_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113070,7 +114023,7 @@ class Test_TC_ACT_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ACT_3_2Suite() {} + ~Test_TC_ACT_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113114,10 +114067,10 @@ class Test_TC_ACT_3_2Suite : public TestCommand } }; -class Test_TC_LTIME_2_1Suite : public TestCommand +class Test_TC_ACT_2_2Suite : public TestCommand { public: - Test_TC_LTIME_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LTIME_2_1", 0, credsIssuerConfig) + Test_TC_ACT_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113125,7 +114078,7 @@ class Test_TC_LTIME_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_LTIME_2_1Suite() {} + ~Test_TC_ACT_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113169,10 +114122,10 @@ class Test_TC_LTIME_2_1Suite : public TestCommand } }; -class Test_TC_LTIME_3_1Suite : public TestCommand +class Test_TC_ACT_3_2Suite : public TestCommand { public: - Test_TC_LTIME_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LTIME_3_1", 0, credsIssuerConfig) + Test_TC_ACT_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113180,7 +114133,7 @@ class Test_TC_LTIME_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_LTIME_3_1Suite() {} + ~Test_TC_ACT_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113224,10 +114177,10 @@ class Test_TC_LTIME_3_1Suite : public TestCommand } }; -class Test_TC_BIND_2_1Suite : public TestCommand +class Test_TC_LTIME_2_1Suite : public TestCommand { public: - Test_TC_BIND_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BIND_2_1", 0, credsIssuerConfig) + Test_TC_LTIME_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LTIME_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113235,7 +114188,7 @@ class Test_TC_BIND_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_BIND_2_1Suite() {} + ~Test_TC_LTIME_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113279,10 +114232,10 @@ class Test_TC_BIND_2_1Suite : public TestCommand } }; -class Test_TC_BIND_2_2Suite : public TestCommand +class Test_TC_LTIME_3_1Suite : public TestCommand { public: - Test_TC_BIND_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BIND_2_2", 0, credsIssuerConfig) + Test_TC_LTIME_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LTIME_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113290,7 +114243,7 @@ class Test_TC_BIND_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_BIND_2_2Suite() {} + ~Test_TC_LTIME_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113334,10 +114287,10 @@ class Test_TC_BIND_2_2Suite : public TestCommand } }; -class Test_TC_BIND_2_3Suite : public TestCommand +class Test_TC_BIND_2_1Suite : public TestCommand { public: - Test_TC_BIND_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BIND_2_3", 0, credsIssuerConfig) + Test_TC_BIND_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BIND_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113345,7 +114298,7 @@ class Test_TC_BIND_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_BIND_2_3Suite() {} + ~Test_TC_BIND_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113389,10 +114342,10 @@ class Test_TC_BIND_2_3Suite : public TestCommand } }; -class Test_TC_S_1_1Suite : public TestCommand +class Test_TC_BIND_2_2Suite : public TestCommand { public: - Test_TC_S_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_1_1", 11, credsIssuerConfig) + Test_TC_BIND_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BIND_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113400,7 +114353,7 @@ class Test_TC_S_1_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_S_1_1Suite() {} + ~Test_TC_BIND_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113425,152 +114378,6 @@ class Test_TC_S_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, 5U)); - 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, 0UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 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)); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); - } - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "list", "list")); - } - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); - } - break; - case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); - } - break; - case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); - } - break; - case 10: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::DecodableList value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "list", "list")); - VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); - VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); - } - break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -113585,81 +114392,15 @@ class Test_TC_S_1_1Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - { - case 0: { - LogStep(0, "Commission DUT to TH (can be skipped if done in a preceding test)"); - 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, "Read ClusterRevision (global attribute 65533)"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::ClusterRevision::Id, true, - chip::NullOptional); - } - case 2: { - LogStep(2, "Read FeatureMap (global attribute 65532)"); - VerifyOrDo(!ShouldSkip("(!S.S.F00)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::FeatureMap::Id, true, - chip::NullOptional); - } - case 3: { - LogStep(3, "Read FeatureMap (global attribute 65532)"); - VerifyOrDo(!ShouldSkip("S.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::FeatureMap::Id, true, - chip::NullOptional); - } - case 4: { - LogStep(4, "Read AttributeList (global attribute 65531)"); - VerifyOrDo(!ShouldSkip("S.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AttributeList::Id, true, - chip::NullOptional); - } - case 5: { - LogStep(5, "Read AttributeList (global attribute 65531)"); - VerifyOrDo(!ShouldSkip("(!S.S.A0005)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AttributeList::Id, true, - chip::NullOptional); - } - case 6: { - LogStep(6, "Read EventList (global attribute 65530)"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::EventList::Id, true, - chip::NullOptional); - } - case 7: { - LogStep(7, "Read AcceptedCommandList (global attribute 65529)"); - VerifyOrDo(!ShouldSkip("S.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, - chip::NullOptional); - } - case 8: { - LogStep(8, "Read AcceptedCommandList (global attribute 65529)"); - VerifyOrDo(!ShouldSkip("(!S.S.C40.Rsp)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, - chip::NullOptional); - } - case 9: { - LogStep(9, "Read GeneratedCommandList (global attribute 65528)"); - VerifyOrDo(!ShouldSkip("S.C.C40.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, - chip::NullOptional); - } - case 10: { - LogStep(10, "Read GeneratedCommandList (global attribute 65528)"); - VerifyOrDo(!ShouldSkip("(!S.C.C40.Tx)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, - chip::NullOptional); - } - } + {} return CHIP_NO_ERROR; } }; -class Test_TC_S_2_1Suite : public TestCommand +class Test_TC_BIND_2_3Suite : public TestCommand { public: - Test_TC_S_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_2_1", 0, credsIssuerConfig) + Test_TC_BIND_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BIND_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113667,7 +114408,7 @@ class Test_TC_S_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_S_2_1Suite() {} + ~Test_TC_BIND_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113711,10 +114452,10 @@ class Test_TC_S_2_1Suite : public TestCommand } }; -class Test_TC_S_2_2Suite : public TestCommand +class Test_TC_S_1_1Suite : public TestCommand { public: - Test_TC_S_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_2_2", 0, credsIssuerConfig) + Test_TC_S_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_1_1", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113722,7 +114463,7 @@ class Test_TC_S_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_S_2_2Suite() {} + ~Test_TC_S_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113747,6 +114488,152 @@ class Test_TC_S_2_2Suite : 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, 5U)); + 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, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 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)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 40UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 41UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 42UL)); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -113761,15 +114648,81 @@ class Test_TC_S_2_2Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - {} + { + case 0: { + LogStep(0, "Commission DUT to TH (can be skipped if done in a preceding test)"); + 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, "Read ClusterRevision (global attribute 65533)"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::ClusterRevision::Id, true, + chip::NullOptional); + } + case 2: { + LogStep(2, "Read FeatureMap (global attribute 65532)"); + VerifyOrDo(!ShouldSkip("(!S.S.F00)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 3: { + LogStep(3, "Read FeatureMap (global attribute 65532)"); + VerifyOrDo(!ShouldSkip("S.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 4: { + LogStep(4, "Read AttributeList (global attribute 65531)"); + VerifyOrDo(!ShouldSkip("S.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "Read AttributeList (global attribute 65531)"); + VerifyOrDo(!ShouldSkip("(!S.S.A0005)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "Read EventList (global attribute 65530)"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, "Read AcceptedCommandList (global attribute 65529)"); + VerifyOrDo(!ShouldSkip("S.S.C40.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Read AcceptedCommandList (global attribute 65529)"); + VerifyOrDo(!ShouldSkip("(!S.S.C40.Rsp)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + case 9: { + LogStep(9, "Read GeneratedCommandList (global attribute 65528)"); + VerifyOrDo(!ShouldSkip("S.C.C40.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + case 10: { + LogStep(10, "Read GeneratedCommandList (global attribute 65528)"); + VerifyOrDo(!ShouldSkip("(!S.C.C40.Tx)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Scenes::Id, Scenes::Attributes::AcceptedCommandList::Id, true, + chip::NullOptional); + } + } return CHIP_NO_ERROR; } }; -class Test_TC_S_2_3Suite : public TestCommand +class Test_TC_S_2_1Suite : public TestCommand { public: - Test_TC_S_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_2_3", 0, credsIssuerConfig) + Test_TC_S_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113777,7 +114730,7 @@ class Test_TC_S_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_S_2_3Suite() {} + ~Test_TC_S_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113821,10 +114774,10 @@ class Test_TC_S_2_3Suite : public TestCommand } }; -class Test_TC_S_3_1Suite : public TestCommand +class Test_TC_S_2_2Suite : public TestCommand { public: - Test_TC_S_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_3_1", 0, credsIssuerConfig) + Test_TC_S_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113832,7 +114785,7 @@ class Test_TC_S_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_S_3_1Suite() {} + ~Test_TC_S_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113876,10 +114829,10 @@ class Test_TC_S_3_1Suite : public TestCommand } }; -class Test_TC_PCC_3_1Suite : public TestCommand +class Test_TC_S_2_3Suite : public TestCommand { public: - Test_TC_PCC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PCC_3_1", 0, credsIssuerConfig) + Test_TC_S_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113887,7 +114840,7 @@ class Test_TC_PCC_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_PCC_3_1Suite() {} + ~Test_TC_S_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113931,10 +114884,10 @@ class Test_TC_PCC_3_1Suite : public TestCommand } }; -class Test_TC_ACL_2_5Suite : public TestCommand +class Test_TC_S_3_1Suite : public TestCommand { public: - Test_TC_ACL_2_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_5", 0, credsIssuerConfig) + Test_TC_S_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113942,7 +114895,7 @@ class Test_TC_ACL_2_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ACL_2_5Suite() {} + ~Test_TC_S_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -113986,10 +114939,10 @@ class Test_TC_ACL_2_5Suite : public TestCommand } }; -class Test_TC_ACL_2_6Suite : public TestCommand +class Test_TC_PCC_3_1Suite : public TestCommand { public: - Test_TC_ACL_2_6Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_6", 0, credsIssuerConfig) + Test_TC_PCC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PCC_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -113997,7 +114950,7 @@ class Test_TC_ACL_2_6Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ACL_2_6Suite() {} + ~Test_TC_PCC_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -114041,11 +114994,10 @@ class Test_TC_ACL_2_6Suite : public TestCommand } }; -class Test_TC_BRBINFO_1_1Suite : public TestCommand +class Test_TC_ACL_2_5Suite : public TestCommand { public: - Test_TC_BRBINFO_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_BRBINFO_1_1", 0, credsIssuerConfig) + Test_TC_ACL_2_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_5", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -114053,7 +115005,7 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_BRBINFO_1_1Suite() {} + ~Test_TC_ACL_2_5Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -114097,11 +115049,10 @@ class Test_TC_BRBINFO_1_1Suite : public TestCommand } }; -class Test_TC_BRBINFO_2_1Suite : public TestCommand +class Test_TC_ACL_2_6Suite : public TestCommand { public: - Test_TC_BRBINFO_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_BRBINFO_2_1", 0, credsIssuerConfig) + Test_TC_ACL_2_6Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_6", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -114109,7 +115060,7 @@ class Test_TC_BRBINFO_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_BRBINFO_2_1Suite() {} + ~Test_TC_ACL_2_6Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -114344,6 +115295,8 @@ 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), @@ -114438,6 +115391,8 @@ 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), @@ -114660,7 +115615,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -114704,8 +115658,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -114754,8 +115706,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -114789,12 +115739,9 @@ 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), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -114822,7 +115769,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -114834,10 +115780,8 @@ 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), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -114852,8 +115796,6 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), 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 9ef1f81f31958c..93478f10d4b8d6 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -45,6 +45,7 @@ class TestList : public Command { printf("Test_TC_ACE_1_5\n"); printf("Test_TC_BOOL_1_1\n"); printf("Test_TC_BOOL_2_1\n"); + printf("Test_TC_BRBINFO_1_1\n"); printf("Test_TC_ACT_1_1\n"); printf("Test_TC_BIND_1_1\n"); printf("Test_TC_CC_1_1\n"); @@ -130,6 +131,8 @@ class TestList : public Command { printf("Test_TC_TGTNAV_8_1\n"); printf("Test_TC_APBSC_9_1\n"); printf("Test_TC_CONTENTLAUNCHER_10_1\n"); + printf("Test_TC_WAKEONLAN_4_1\n"); + printf("Test_TC_ALOGIN_12_1\n"); printf("Test_TC_MOD_1_1\n"); printf("OTA_SuccessfulTransfer\n"); printf("Test_TC_OCC_1_1\n"); @@ -5599,64 +5602,90 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { err = TestTh1ReadsTheFabricIndex_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Open Commissioning Window from alpha\n"); - err = TestOpenCommissioningWindowFromAlpha_2(); + ChipLogProgress(chipTool, + " ***** Test Step 2 : Step 3 & 4: TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID " + "N2\n"); + if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = TestStep34Th1PutsDutIntoCommissioningModeTh2CommissionsDutUsingAdminNodeIdN2_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Waiting after opening commissioning window\n"); - err = TestWaitingAfterOpeningCommissioningWindow_3(); + ChipLogProgress(chipTool, " ***** Test Step 3 : Open Commissioning Window from alpha\n"); + if (ShouldSkip("PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestOpenCommissioningWindowFromAlpha_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Commission from TH2\n"); - err = TestCommissionFromTh2_4(); + ChipLogProgress(chipTool, " ***** Test Step 4 : Waiting after opening commissioning window\n"); + if (ShouldSkip("PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestWaitingAfterOpeningCommissioningWindow_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Wait for the commissioned device to be retrieved for TH2\n"); - err = TestWaitForTheCommissionedDeviceToBeRetrievedForTh2_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : Commission from TH2\n"); + if (ShouldSkip("PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestCommissionFromTh2_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : TH2 reads the fabric index\n"); - err = TestTh2ReadsTheFabricIndex_6(); + ChipLogProgress(chipTool, " ***** Test Step 6 : Wait for the commissioned device to be retrieved for TH2\n"); + if (ShouldSkip("PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestWaitForTheCommissionedDeviceToBeRetrievedForTh2_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Read the commissioner node ID from the alpha fabric\n"); - err = TestReadTheCommissionerNodeIdFromTheAlphaFabric_7(); + ChipLogProgress(chipTool, " ***** Test Step 7 : TH2 reads the fabric index\n"); + err = TestTh2ReadsTheFabricIndex_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : TH1 writes ACL giving view privilege for descriptor cluster\n"); - err = TestTh1WritesAclGivingViewPrivilegeForDescriptorCluster_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : Read the commissioner node ID from the alpha fabric\n"); + err = TestReadTheCommissionerNodeIdFromTheAlphaFabric_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Read the commissioner node ID from the beta fabric\n"); - err = TestReadTheCommissionerNodeIdFromTheBetaFabric_9(); + ChipLogProgress(chipTool, " ***** Test Step 9 : TH1 writes ACL giving view privilege for descriptor cluster\n"); + err = TestTh1WritesAclGivingViewPrivilegeForDescriptorCluster_9(); break; case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : TH2 writes ACL giving view privilge for basic cluster\n"); - err = TestTh2WritesAclGivingViewPrivilgeForBasicCluster_10(); + ChipLogProgress(chipTool, " ***** Test Step 10 : Read the commissioner node ID from the beta fabric\n"); + err = TestReadTheCommissionerNodeIdFromTheBetaFabric_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : TH1 reads descriptor cluster - expect SUCCESS\n"); - err = TestTh1ReadsDescriptorClusterExpectSuccess_11(); + ChipLogProgress(chipTool, " ***** Test Step 11 : TH2 writes ACL giving view privilge for basic cluster\n"); + err = TestTh2WritesAclGivingViewPrivilgeForBasicCluster_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : TH1 reads basic cluster - expect UNSUPPORTED_ACCESS\n"); - err = TestTh1ReadsBasicClusterExpectUnsupportedAccess_12(); + ChipLogProgress(chipTool, " ***** Test Step 12 : TH1 reads descriptor cluster - expect SUCCESS\n"); + err = TestTh1ReadsDescriptorClusterExpectSuccess_12(); break; case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : TH2 reads descriptor cluster - expect UNSUPPORTED_ACCESS\n"); - err = TestTh2ReadsDescriptorClusterExpectUnsupportedAccess_13(); + ChipLogProgress(chipTool, " ***** Test Step 13 : TH1 reads basic cluster - expect UNSUPPORTED_ACCESS\n"); + err = TestTh1ReadsBasicClusterExpectUnsupportedAccess_13(); break; case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : TH2 reads basic cluster - expect SUCCESS\n"); - err = TestTh2ReadsBasicClusterExpectSuccess_14(); + ChipLogProgress(chipTool, " ***** Test Step 14 : TH2 reads descriptor cluster - expect UNSUPPORTED_ACCESS\n"); + err = TestTh2ReadsDescriptorClusterExpectUnsupportedAccess_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : TH1 resets ACL to default\n"); - err = TestTh1ResetsAclToDefault_15(); + ChipLogProgress(chipTool, " ***** Test Step 15 : TH2 reads basic cluster - expect SUCCESS\n"); + err = TestTh2ReadsBasicClusterExpectSuccess_15(); break; case 16: - ChipLogProgress(chipTool, " ***** Test Step 16 : TH1 sends RemoveFabric command for TH2\n"); - err = TestTh1SendsRemoveFabricCommandForTh2_16(); + ChipLogProgress(chipTool, " ***** Test Step 16 : TH1 resets ACL to default\n"); + err = TestTh1ResetsAclToDefault_16(); + break; + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : TH1 sends RemoveFabric command for TH2\n"); + err = TestTh1SendsRemoveFabricCommandForTh2_17(); break; } @@ -5706,13 +5735,13 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 12: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 13: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS)); break; case 14: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_ACCESS)); break; case 15: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -5720,6 +5749,9 @@ class Test_TC_ACE_1_5 : 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; } // Go on to the next test. @@ -5733,7 +5765,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 17; + const uint16_t mTestCount = 18; chip::Optional mNodeId; chip::Optional mCluster; @@ -5777,7 +5809,17 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestOpenCommissioningWindowFromAlpha_2() + CHIP_ERROR TestStep34Th1PutsDutIntoCommissioningModeTh2CommissionsDutUsingAdminNodeIdN2_2() + { + + 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("alpha", value); + } + + CHIP_ERROR TestOpenCommissioningWindowFromAlpha_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -5812,7 +5854,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestWaitingAfterOpeningCommissioningWindow_3() + CHIP_ERROR TestWaitingAfterOpeningCommissioningWindow_4() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; @@ -5820,7 +5862,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { return WaitForMs("alpha", value); } - CHIP_ERROR TestCommissionFromTh2_4() + CHIP_ERROR TestCommissionFromTh2_5() { chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; @@ -5829,7 +5871,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { return PairWithCode("beta", value); } - CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrievedForTh2_5() + CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrievedForTh2_6() { chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; @@ -5838,7 +5880,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { } NSNumber * _Nonnull th2FabricIndex; - CHIP_ERROR TestTh2ReadsTheFabricIndex_6() + CHIP_ERROR TestTh2ReadsTheFabricIndex_7() { MTRBaseDevice * device = GetDevice("beta"); @@ -5863,7 +5905,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { } NSNumber * _Nonnull commissionerNodeIdAlpha; - CHIP_ERROR TestReadTheCommissionerNodeIdFromTheAlphaFabric_7() + CHIP_ERROR TestReadTheCommissionerNodeIdFromTheAlphaFabric_8() { chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; @@ -5875,7 +5917,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { }); } - CHIP_ERROR TestTh1WritesAclGivingViewPrivilegeForDescriptorCluster_8() + CHIP_ERROR TestTh1WritesAclGivingViewPrivilegeForDescriptorCluster_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -5934,7 +5976,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { } NSNumber * _Nonnull commissionerNodeIdBeta; - CHIP_ERROR TestReadTheCommissionerNodeIdFromTheBetaFabric_9() + CHIP_ERROR TestReadTheCommissionerNodeIdFromTheBetaFabric_10() { chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value; @@ -5946,7 +5988,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { }); } - CHIP_ERROR TestTh2WritesAclGivingViewPrivilgeForBasicCluster_10() + CHIP_ERROR TestTh2WritesAclGivingViewPrivilgeForBasicCluster_11() { MTRBaseDevice * device = GetDevice("beta"); @@ -6004,7 +6046,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTh1ReadsDescriptorClusterExpectSuccess_11() + CHIP_ERROR TestTh1ReadsDescriptorClusterExpectSuccess_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -6022,7 +6064,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTh1ReadsBasicClusterExpectUnsupportedAccess_12() + CHIP_ERROR TestTh1ReadsBasicClusterExpectUnsupportedAccess_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -6041,7 +6083,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTh2ReadsDescriptorClusterExpectUnsupportedAccess_13() + CHIP_ERROR TestTh2ReadsDescriptorClusterExpectUnsupportedAccess_14() { MTRBaseDevice * device = GetDevice("beta"); @@ -6060,7 +6102,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTh2ReadsBasicClusterExpectSuccess_14() + CHIP_ERROR TestTh2ReadsBasicClusterExpectSuccess_15() { MTRBaseDevice * device = GetDevice("beta"); @@ -6078,7 +6120,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTh1ResetsAclToDefault_15() + CHIP_ERROR TestTh1ResetsAclToDefault_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -6113,7 +6155,7 @@ class Test_TC_ACE_1_5 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTh1SendsRemoveFabricCommandForTh2_16() + CHIP_ERROR TestTh1SendsRemoveFabricCommandForTh2_17() { MTRBaseDevice * device = GetDevice("alpha"); @@ -6495,11 +6537,11 @@ class Test_TC_BOOL_2_1 : public TestCommandBridge { } }; -class Test_TC_ACT_1_1 : public TestCommandBridge { +class Test_TC_BRBINFO_1_1 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_ACT_1_1() - : TestCommandBridge("Test_TC_ACT_1_1") + Test_TC_BRBINFO_1_1() + : TestCommandBridge("Test_TC_BRBINFO_1_1") , mTestIndex(0) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); @@ -6509,7 +6551,7 @@ class Test_TC_ACT_1_1 : public TestCommandBridge { } // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - ~Test_TC_ACT_1_1() {} + ~Test_TC_BRBINFO_1_1() {} /////////// TestCommand Interface ///////// void NextTest() override @@ -6517,11 +6559,11 @@ class Test_TC_ACT_1_1 : public TestCommandBridge { CHIP_ERROR err = CHIP_NO_ERROR; if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_ACT_1_1\n"); + ChipLogProgress(chipTool, " **** Test Start: Test_TC_BRBINFO_1_1\n"); } if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_ACT_1_1\n"); + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_BRBINFO_1_1\n"); SetCommandExitStatus(CHIP_NO_ERROR); return; } @@ -6538,295 +6580,1024 @@ class Test_TC_ACT_1_1 : public TestCommandBridge { err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); break; case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : Read the global attribute: ClusterRevision\n"); - err = TestReadTheGlobalAttributeClusterRevision_1(); + ChipLogProgress(chipTool, " ***** Test Step 1 : TH reads the ClusterRevision from DUT\n"); + err = TestThReadsTheClusterRevisionFromDut_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - err = TestReadTheGlobalAttributeFeatureMap_2(); + ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads the FeatureMap from DUT\n"); + err = TestThReadsTheFeatureMapFromDut_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: AttributeList\n"); - err = TestReadTheGlobalAttributeAttributeList_3(); + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads AttributeList from DUT\n"); + err = TestThReadsAttributeListFromDut_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Read the optional attribute(SetupURL) in AttributeList\n"); - if (ShouldSkip("ACT.S.A0002")) { + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads optional attribute(VendorName) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0001")) { NextTest(); return; } - err = TestReadTheOptionalAttributeSetupURLInAttributeList_4(); + err = TestThReadsOptionalAttributeVendorNameInAttributeList_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AcceptedCommandList\n"); - err = TestReadTheGlobalAttributeAcceptedCommandList_5(); + ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads optional attribute(VendorID) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0002")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeVendorIDInAttributeList_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: GeneratedCommandList\n"); - err = TestReadTheGlobalAttributeGeneratedCommandList_6(); - break; - } - - if (CHIP_NO_ERROR != err) { - ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); - SetCommandExitStatus(err); - } - } - - 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)); + ChipLogProgress(chipTool, " ***** Test Step 6 : TH reads optional attribute(ProductName) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0003")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeProductNameInAttributeList_6(); break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 7: + ChipLogProgress(chipTool, " ***** Test Step 7 : TH reads optional attribute(NodeLabel) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0005")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeNodeLabelInAttributeList_7(); break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads optional attribute(HardwareVersion) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0007")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeHardwareVersionInAttributeList_8(); break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : TH reads optional attribute(HardwareVersionString) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0008")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeHardwareVersionStringInAttributeList_9(); break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : TH reads optional attribute(SoftwareVersion) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0009")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeSoftwareVersionInAttributeList_10(); break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + case 11: + ChipLogProgress( + chipTool, " ***** Test Step 11 : TH reads optional attribute(SoftwareVersionString) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A000a")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeSoftwareVersionStringInAttributeList_11(); 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(kTimeoutInSeconds)); - } - -private: - std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 7; - - 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 TestReadTheGlobalAttributeClusterRevision_1() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeClusterRevisionWithCompletion:^(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)); + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads optional attribute(ManufacturingDate) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A000b")) { + NextTest(); + return; } - - VerifyOrReturn(CheckConstraintType("clusterRevision", "int16u", "int16u")); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheGlobalAttributeFeatureMap_2() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: FeatureMap Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("FeatureMap", actualValue, 0UL)); + err = TestThReadsOptionalAttributeManufacturingDateInAttributeList_12(); + break; + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads optional attribute(PartNumber) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A000c")) { + NextTest(); + return; } - - VerifyOrReturn(CheckConstraintType("featureMap", "bitmap32", "bitmap32")); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheGlobalAttributeAttributeList_3() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: AttributeList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 1UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheOptionalAttributeSetupURLInAttributeList_4() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the optional attribute(SetupURL) in AttributeList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); - VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_5() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: AcceptedCommandList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("acceptedCommandList", "list", "list")); - VerifyOrReturn(CheckConstraintMaxLength("acceptedCommandList", value, 11)); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_6() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Read the global attribute: GeneratedCommandList Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("GeneratedCommandList", [actualValue count], static_cast(0))); + err = TestThReadsOptionalAttributePartNumberInAttributeList_13(); + break; + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : TH reads optional attribute(ProductURL) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A000d")) { + NextTest(); + return; } - - VerifyOrReturn(CheckConstraintType("generatedCommandList", "list", "list")); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } -}; - -class Test_TC_BIND_1_1 : public TestCommandBridge { -public: - // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_BIND_1_1() - : TestCommandBridge("Test_TC_BIND_1_1") - , mTestIndex(0) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - - ~Test_TC_BIND_1_1() {} - - /////////// TestCommand Interface ///////// - void NextTest() override - { - CHIP_ERROR err = CHIP_NO_ERROR; - - if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_BIND_1_1\n"); - } - - if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_BIND_1_1\n"); - SetCommandExitStatus(CHIP_NO_ERROR); - return; - } - - Wait(); - - // Ensure we increment mTestIndex before we start running the relevant - // command. That way if we lose the timeslice after we send the message - // 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(); + err = TestThReadsOptionalAttributeProductURLInAttributeList_14(); break; - case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : TH reads the ClusterRevision from DUT\n"); - err = TestThReadsTheClusterRevisionFromDut_1(); + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads optional attribute(ProductLabel) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A000e")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeProductLabelInAttributeList_15(); break; - case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads the FeatureMap from DUT\n"); - err = TestThReadsTheFeatureMapFromDut_2(); + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads optional attribute(SerialNumber) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A000f")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeSerialNumberInAttributeList_16(); break; - case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads AttributeList from DUT\n"); - err = TestThReadsAttributeListFromDut_3(); + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads optional attribute(UniqueID) in AttributeList\n"); + if (ShouldSkip("BRBINFO.S.A0012")) { + NextTest(); + return; + } + err = TestThReadsOptionalAttributeUniqueIDInAttributeList_17(); break; - case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads AcceptedCommandList from DUT\n"); - err = TestThReadsAcceptedCommandListFromDut_4(); + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : TH1 reads AcceptedCommandList from DUT\n"); + err = TestTh1ReadsAcceptedCommandListFromDut_18(); break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads GeneratedCommandList from DUT\n"); - err = TestThReadsGeneratedCommandListFromDut_5(); + case 19: + ChipLogProgress(chipTool, " ***** Test Step 19 : TH1 reads GeneratedCommandList from DUT\n"); + err = TestTh1ReadsGeneratedCommandListFromDut_19(); + break; + } + + if (CHIP_NO_ERROR != err) { + ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); + SetCommandExitStatus(err); + } + } + + 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; + 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; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + } + + // Go on to the next test. + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + + 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 = 20; + + 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"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeClusterRevisionWithCompletion:^(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"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletion:^(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 TestThReadsAttributeListFromDut_3() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads AttributeList from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 17UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeVendorNameInAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(VendorName) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 1UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeVendorIDInAttributeList_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(VendorID) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeProductNameInAttributeList_6() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(ProductName) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 3UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeNodeLabelInAttributeList_7() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(NodeLabel) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 5UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeHardwareVersionInAttributeList_8() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(HardwareVersion) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 7UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeHardwareVersionStringInAttributeList_9() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(HardwareVersionString) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 8UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeSoftwareVersionInAttributeList_10() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(SoftwareVersion) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 9UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeSoftwareVersionStringInAttributeList_11() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(SoftwareVersionString) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 10UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeManufacturingDateInAttributeList_12() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(ManufacturingDate) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 11UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributePartNumberInAttributeList_13() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(PartNumber) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 12UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeProductURLInAttributeList_14() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(ProductURL) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 13UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeProductLabelInAttributeList_15() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(ProductLabel) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 14UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeSerialNumberInAttributeList_16() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(SerialNumber) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 15UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsOptionalAttributeUniqueIDInAttributeList_17() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads optional attribute(UniqueID) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 18UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestTh1ReadsAcceptedCommandListFromDut_18() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH1 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 TestTh1ReadsGeneratedCommandListFromDut_19() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterBridgedDeviceBasicInformation alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH1 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_ACT_1_1 : public TestCommandBridge { +public: + // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced + Test_TC_ACT_1_1() + : TestCommandBridge("Test_TC_ACT_1_1") + , mTestIndex(0) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) + + ~Test_TC_ACT_1_1() {} + + /////////// TestCommand Interface ///////// + void NextTest() override + { + CHIP_ERROR err = CHIP_NO_ERROR; + + if (0 == mTestIndex) { + ChipLogProgress(chipTool, " **** Test Start: Test_TC_ACT_1_1\n"); + } + + if (mTestCount == mTestIndex) { + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_ACT_1_1\n"); + SetCommandExitStatus(CHIP_NO_ERROR); + return; + } + + Wait(); + + // Ensure we increment mTestIndex before we start running the relevant + // command. That way if we lose the timeslice after we send the message + // 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 : Read the global attribute: ClusterRevision\n"); + err = TestReadTheGlobalAttributeClusterRevision_1(); + break; + case 2: + ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); + err = TestReadTheGlobalAttributeFeatureMap_2(); + break; + case 3: + ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: AttributeList\n"); + err = TestReadTheGlobalAttributeAttributeList_3(); + break; + case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Read the optional attribute(SetupURL) in AttributeList\n"); + if (ShouldSkip("ACT.S.A0002")) { + NextTest(); + return; + } + err = TestReadTheOptionalAttributeSetupURLInAttributeList_4(); + break; + case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Read the global attribute: AcceptedCommandList\n"); + err = TestReadTheGlobalAttributeAcceptedCommandList_5(); + break; + case 6: + ChipLogProgress(chipTool, " ***** Test Step 6 : Read the global attribute: GeneratedCommandList\n"); + err = TestReadTheGlobalAttributeGeneratedCommandList_6(); + break; + } + + if (CHIP_NO_ERROR != err) { + ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); + SetCommandExitStatus(err); + } + } + + 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; + } + + // Go on to the next test. + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + + 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 = 7; + + 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 TestReadTheGlobalAttributeClusterRevision_1() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeClusterRevisionWithCompletion:^(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 TestReadTheGlobalAttributeFeatureMap_2() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the global attribute: FeatureMap 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 TestReadTheGlobalAttributeAttributeList_3() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the global attribute: AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 65533UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheOptionalAttributeSetupURLInAttributeList_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the optional attribute(SetupURL) in AttributeList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("attributeList", "list", "list")); + VerifyOrReturn(CheckConstraintContains("attributeList", value, 2UL)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeAcceptedCommandList_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the global attribute: AcceptedCommandList Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptedCommandList", "list", "list")); + VerifyOrReturn(CheckConstraintMaxLength("acceptedCommandList", value, 11)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheGlobalAttributeGeneratedCommandList_6() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterActions alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Read the global attribute: GeneratedCommandList 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_BIND_1_1 : public TestCommandBridge { +public: + // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced + Test_TC_BIND_1_1() + : TestCommandBridge("Test_TC_BIND_1_1") + , mTestIndex(0) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) + + ~Test_TC_BIND_1_1() {} + + /////////// TestCommand Interface ///////// + void NextTest() override + { + CHIP_ERROR err = CHIP_NO_ERROR; + + if (0 == mTestIndex) { + ChipLogProgress(chipTool, " **** Test Start: Test_TC_BIND_1_1\n"); + } + + if (mTestCount == mTestIndex) { + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_BIND_1_1\n"); + SetCommandExitStatus(CHIP_NO_ERROR); + return; + } + + Wait(); + + // Ensure we increment mTestIndex before we start running the relevant + // command. That way if we lose the timeslice after we send the message + // 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"); + err = TestThReadsTheClusterRevisionFromDut_1(); + break; + case 2: + ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads the FeatureMap from DUT\n"); + err = TestThReadsTheFeatureMapFromDut_2(); + break; + case 3: + ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads AttributeList from DUT\n"); + err = TestThReadsAttributeListFromDut_3(); + break; + case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads AcceptedCommandList from DUT\n"); + err = TestThReadsAcceptedCommandListFromDut_4(); + break; + case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads GeneratedCommandList from DUT\n"); + err = TestThReadsGeneratedCommandListFromDut_5(); break; } @@ -49342,21 +50113,446 @@ class Test_TC_APBSC_9_1 : public TestCommandBridge { 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; - case 8: - 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; + case 8: + 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(kTimeoutInSeconds)); + } + +private: + std::atomic_uint16_t mTestIndex; + const uint16_t mTestCount = 9; + + 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 TestReadsTheVendorNameAttribute_1() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeVendorNameWithCompletion:^(NSString * _Nullable value, NSError * _Nullable err) { + NSLog(@"Reads the VendorName attribute Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("vendorName", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMaxLength("vendorName", value, 32)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadsTheVendorIDAttribute_2() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeVendorIDWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Reads the VendorID attribute Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("vendorID", "vendor_id", "vendor_id")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadsTheApplicationNameAttribute_3() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeApplicationNameWithCompletion:^(NSString * _Nullable value, NSError * _Nullable err) { + NSLog(@"Reads the ApplicationName attribute Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("applicationName", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMaxLength("applicationName", value, 256)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadsTheProductIDAttribute_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeProductIDWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Reads the ProductID attribute Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("productID", "int16u", "int16u")); + VerifyOrReturn(CheckConstraintMinValue("productID", [value unsignedShortValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("productID", [value unsignedShortValue], 65535U)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadsTheApplicationAttribute_5() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeApplicationWithCompletion:^( + MTRApplicationBasicClusterApplicationStruct * _Nullable value, NSError * _Nullable err) { + NSLog(@"Reads the Application attribute Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("application", "ApplicationStruct", "ApplicationStruct")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadsTheStatusAttribute_6() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeStatusWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"Reads the Status attribute Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintMinValue("status", [value unsignedCharValue], 0U)); + VerifyOrReturn(CheckConstraintMaxValue("status", [value unsignedCharValue], 3U)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadsTheApplicationVersionAttribute_7() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeApplicationVersionWithCompletion:^(NSString * _Nullable value, NSError * _Nullable err) { + NSLog(@"Reads the ApplicationVersion attribute Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("applicationVersion", "char_string", "char_string")); + VerifyOrReturn(CheckConstraintMaxLength("applicationVersion", value, 32)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadsTheAllowedVendorListAttribute_8() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAllowedVendorListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"Reads the AllowedVendorList attribute Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("allowedVendorList", "list", "list")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CONTENTLAUNCHER_10_1 : public TestCommandBridge { +public: + // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced + Test_TC_CONTENTLAUNCHER_10_1() + : TestCommandBridge("Test_TC_CONTENTLAUNCHER_10_1") + , mTestIndex(0) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) + + ~Test_TC_CONTENTLAUNCHER_10_1() {} + + /////////// TestCommand Interface ///////// + void NextTest() override + { + CHIP_ERROR err = CHIP_NO_ERROR; + + if (0 == mTestIndex) { + ChipLogProgress(chipTool, " **** Test Start: Test_TC_CONTENTLAUNCHER_10_1\n"); + } + + if (mTestCount == mTestIndex) { + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CONTENTLAUNCHER_10_1\n"); + SetCommandExitStatus(CHIP_NO_ERROR); + return; + } + + Wait(); + + // Ensure we increment mTestIndex before we start running the relevant + // command. That way if we lose the timeslice after we send the message + // 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 AcceptHeader attribute from the DUT\n"); + if (ShouldSkip("CONTENTLAUNCHER.S.A0000")) { + NextTest(); + return; + } + err = TestThReadsTheAcceptHeaderAttributeFromTheDut_1(); + break; + case 2: + ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads the SupportedStreamingProtocols attribute from the DUT\n"); + if (ShouldSkip("CONTENTLAUNCHER.S.A0001")) { + NextTest(); + return; + } + err = TestThReadsTheSupportedStreamingProtocolsAttributeFromTheDut_2(); + break; + } + + if (CHIP_NO_ERROR != err) { + ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); + SetCommandExitStatus(err); + } + } + + 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; + } + + // Go on to the next test. + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + + 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 = 3; + + 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 TestThReadsTheAcceptHeaderAttributeFromTheDut_1() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAcceptHeaderWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the AcceptHeader attribute from the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("acceptHeader", "list", "list")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsTheSupportedStreamingProtocolsAttributeFromTheDut_2() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeSupportedStreamingProtocolsWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the SupportedStreamingProtocols attribute from the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + VerifyOrReturn(CheckConstraintType("supportedStreamingProtocols", "bitmap32", "bitmap32")); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WAKEONLAN_4_1 : public TestCommandBridge { +public: + // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced + Test_TC_WAKEONLAN_4_1() + : TestCommandBridge("Test_TC_WAKEONLAN_4_1") + , mTestIndex(0) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) + + ~Test_TC_WAKEONLAN_4_1() {} + + /////////// TestCommand Interface ///////// + void NextTest() override + { + CHIP_ERROR err = CHIP_NO_ERROR; + + if (0 == mTestIndex) { + ChipLogProgress(chipTool, " **** Test Start: Test_TC_WAKEONLAN_4_1\n"); + } + + if (mTestCount == mTestIndex) { + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_WAKEONLAN_4_1\n"); + SetCommandExitStatus(CHIP_NO_ERROR); + return; + } + + Wait(); + + // Ensure we increment mTestIndex before we start running the relevant + // command. That way if we lose the timeslice after we send the message + // 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 MACAddress attribute from the DUT\n"); + if (ShouldSkip("WAKEONLAN.S.A0000")) { + NextTest(); + return; + } + err = TestThReadsTheMACAddressAttributeFromTheDut_1(); + break; + case 2: + ChipLogProgress(chipTool, " ***** Test Step 2 : TH sends a Sleep command to DUT\n"); + if (ShouldSkip("LOWPOWER.S.C00.Rsp")) { + NextTest(); + return; + } + err = TestThSendsASleepCommandToDut_2(); + break; + case 3: + ChipLogProgress( + chipTool, " ***** Test Step 3 : TH sends a Wake-On LAN magic packet containing the MAC address from step 1\n"); + if (ShouldSkip("PICS_USER_PROMPT")) { + NextTest(); + return; + } + err = TestThSendsAWakeOnLanMagicPacketContainingTheMacAddressFromStep1_3(); + break; + } + + if (CHIP_NO_ERROR != err) { + ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); + SetCommandExitStatus(err); + } + } + + 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; } // Go on to the next test. @@ -49370,7 +50566,7 @@ class Test_TC_APBSC_9_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 9; + const uint16_t mTestCount = 4; chip::Optional mNodeId; chip::Optional mCluster; @@ -49385,183 +50581,72 @@ class Test_TC_APBSC_9_1 : public TestCommandBridge { return WaitForCommissionee("alpha", value); } - CHIP_ERROR TestReadsTheVendorNameAttribute_1() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeVendorNameWithCompletion:^(NSString * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the VendorName attribute Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("vendorName", "char_string", "char_string")); - VerifyOrReturn(CheckConstraintMaxLength("vendorName", value, 32)); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadsTheVendorIDAttribute_2() + CHIP_ERROR TestThReadsTheMACAddressAttributeFromTheDut_1() { MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeVendorIDWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the VendorID attribute Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("vendorID", "vendor_id", "vendor_id")); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadsTheApplicationNameAttribute_3() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeApplicationNameWithCompletion:^(NSString * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the ApplicationName attribute Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("applicationName", "char_string", "char_string")); - VerifyOrReturn(CheckConstraintMaxLength("applicationName", value, 256)); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadsTheProductIDAttribute_4() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeProductIDWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the ProductID attribute Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("productID", "int16u", "int16u")); - VerifyOrReturn(CheckConstraintMinValue("productID", [value unsignedShortValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("productID", [value unsignedShortValue], 65535U)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadsTheApplicationAttribute_5() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeApplicationWithCompletion:^( - MTRApplicationBasicClusterApplicationStruct * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the Application attribute Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("application", "ApplicationStruct", "ApplicationStruct")); - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestReadsTheStatusAttribute_6() - { - - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + __auto_type * cluster = [[MTRBaseClusterWakeOnLAN alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeStatusWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the Status attribute Error: %@", err); + [cluster readAttributeMACAddressWithCompletion:^(NSString * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the MACAddress attribute from the DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("status", [value unsignedCharValue], 0U)); - VerifyOrReturn(CheckConstraintMaxValue("status", [value unsignedCharValue], 3U)); - + VerifyOrReturn(CheckConstraintMinLength("MACAddress", value, 12)); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheApplicationVersionAttribute_7() + CHIP_ERROR TestThSendsASleepCommandToDut_2() { MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + __auto_type * cluster = [[MTRBaseClusterLowPower alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeApplicationVersionWithCompletion:^(NSString * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the ApplicationVersion attribute Error: %@", err); + [cluster sleepWithCompletion:^(NSError * _Nullable err) { + NSLog(@"TH sends a Sleep command to DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("applicationVersion", "char_string", "char_string")); - VerifyOrReturn(CheckConstraintMaxLength("applicationVersion", value, 32)); NextTest(); }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestReadsTheAllowedVendorListAttribute_8() + CHIP_ERROR TestThSendsAWakeOnLanMagicPacketContainingTheMacAddressFromStep1_3() { - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterApplicationBasic alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAllowedVendorListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Reads the AllowedVendorList attribute Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - VerifyOrReturn(CheckConstraintType("allowedVendorList", "list", "list")); - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' after successgarbage: not in length on purpose", 30); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } }; -class Test_TC_CONTENTLAUNCHER_10_1 : public TestCommandBridge { +class Test_TC_ALOGIN_12_1 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_CONTENTLAUNCHER_10_1() - : TestCommandBridge("Test_TC_CONTENTLAUNCHER_10_1") + Test_TC_ALOGIN_12_1() + : TestCommandBridge("Test_TC_ALOGIN_12_1") , mTestIndex(0) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("TempAccountIdentifier", &mTempAccountIdentifier); + AddArgument("catalogVendorId", 0, UINT16_MAX, &mCatalogVendorId); + AddArgument("applicationId", &mApplicationId); AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - ~Test_TC_CONTENTLAUNCHER_10_1() {} + ~Test_TC_ALOGIN_12_1() {} /////////// TestCommand Interface ///////// void NextTest() override @@ -49569,11 +50654,11 @@ class Test_TC_CONTENTLAUNCHER_10_1 : public TestCommandBridge { CHIP_ERROR err = CHIP_NO_ERROR; if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_CONTENTLAUNCHER_10_1\n"); + ChipLogProgress(chipTool, " **** Test Start: Test_TC_ALOGIN_12_1\n"); } if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_CONTENTLAUNCHER_10_1\n"); + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_ALOGIN_12_1\n"); SetCommandExitStatus(CHIP_NO_ERROR); return; } @@ -49590,20 +50675,39 @@ class Test_TC_CONTENTLAUNCHER_10_1 : public TestCommandBridge { err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); break; case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : TH reads the AcceptHeader attribute from the DUT\n"); - if (ShouldSkip("CONTENTLAUNCHER.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 1 : Launch an app with the provided a application ID\n"); + if (ShouldSkip("APPLAUNCHER.S.C00.Rsp")) { NextTest(); return; } - err = TestThReadsTheAcceptHeaderAttributeFromTheDut_1(); + err = TestLaunchAnAppWithTheProvidedAApplicationId_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads the SupportedStreamingProtocols attribute from the DUT\n"); - if (ShouldSkip("CONTENTLAUNCHER.S.A0001")) { + ChipLogProgress(chipTool, + " ***** Test Step 2 : TH sends a GetSetupPIN command to the DUT with test values provided by the product maker.\n"); + if (ShouldSkip("ALOGIN.S.C00.Rsp")) { NextTest(); return; } - err = TestThReadsTheSupportedStreamingProtocolsAttributeFromTheDut_2(); + err = TestThSendsAGetSetupPINCommandToTheDutWithTestValuesProvidedByTheProductMaker_2(); + break; + case 3: + ChipLogProgress(chipTool, + " ***** Test Step 3 : TH sends a Login command to the DUT with test values provided by the product maker.\n"); + if (ShouldSkip("ALOGIN.S.C02.Rsp")) { + NextTest(); + return; + } + err = TestThSendsALoginCommandToTheDutWithTestValuesProvidedByTheProductMaker_3(); + break; + case 4: + ChipLogProgress(chipTool, + " ***** Test Step 4 : TH sends a Logout command to the DUT with test values provided by the product maker.\n"); + if (ShouldSkip("ALOGIN.S.C03.Rsp")) { + NextTest(); + return; + } + err = TestThSendsALogoutCommandToTheDutWithTestValuesProvidedByTheProductMaker_4(); break; } @@ -49625,6 +50729,12 @@ class Test_TC_CONTENTLAUNCHER_10_1 : public TestCommandBridge { 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; } // Go on to the next test. @@ -49638,11 +50748,14 @@ class Test_TC_CONTENTLAUNCHER_10_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 3; + const uint16_t mTestCount = 5; chip::Optional mNodeId; chip::Optional mCluster; chip::Optional mEndpoint; + chip::Optional mTempAccountIdentifier; + chip::Optional mCatalogVendorId; + chip::Optional mApplicationId; chip::Optional mTimeout; CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0() @@ -49653,38 +50766,117 @@ class Test_TC_CONTENTLAUNCHER_10_1 : public TestCommandBridge { return WaitForCommissionee("alpha", value); } - CHIP_ERROR TestThReadsTheAcceptHeaderAttributeFromTheDut_1() + CHIP_ERROR TestLaunchAnAppWithTheProvidedAApplicationId_1() { MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + __auto_type * cluster = [[MTRBaseClusterApplicationLauncher alloc] initWithDevice:device + endpointID:@(3) + queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeAcceptHeaderWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads the AcceptHeader attribute from the DUT Error: %@", err); + __auto_type * params = [[MTRApplicationLauncherClusterLaunchAppParams alloc] init]; + params.application = [[MTRApplicationLauncherClusterApplicationStruct alloc] init]; + ((MTRApplicationLauncherClusterApplicationStruct *) params.application).catalogVendorID = mCatalogVendorId.HasValue() + ? [NSNumber numberWithUnsignedShort:mCatalogVendorId.Value()] + : [NSNumber numberWithUnsignedShort:123U]; + ((MTRApplicationLauncherClusterApplicationStruct *) params.application).applicationID = mApplicationId.HasValue() + ? [[NSString alloc] initWithBytes:mApplicationId.Value().data() + length:mApplicationId.Value().size() + encoding:NSUTF8StringEncoding] + : @"exampleid"; + + params.data = [[NSData alloc] initWithBytes:"Hello World" length:11]; + [cluster + launchAppWithParams:params + completion:^(MTRApplicationLauncherClusterLauncherResponseParams * _Nullable values, NSError * _Nullable err) { + NSLog(@"Launch an app with the provided a application ID Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("acceptHeader", "list", "list")); - NextTest(); - }]; + { + id actualValue = values.status; + VerifyOrReturn(CheckValue("Status", actualValue, 0U)); + } + + NextTest(); + }]; return CHIP_NO_ERROR; } + NSString * _Nonnull setupPIN; - CHIP_ERROR TestThReadsTheSupportedStreamingProtocolsAttributeFromTheDut_2() + CHIP_ERROR TestThSendsAGetSetupPINCommandToTheDutWithTestValuesProvidedByTheProductMaker_2() { MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterContentLauncher alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + __auto_type * cluster = [[MTRBaseClusterAccountLogin alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - [cluster readAttributeSupportedStreamingProtocolsWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads the SupportedStreamingProtocols attribute from the DUT Error: %@", err); + __auto_type * params = [[MTRAccountLoginClusterGetSetupPINParams alloc] init]; + params.tempAccountIdentifier = mTempAccountIdentifier.HasValue() + ? [[NSString alloc] initWithBytes:mTempAccountIdentifier.Value().data() + length:mTempAccountIdentifier.Value().size() + encoding:NSUTF8StringEncoding] + : @"1111"; + [cluster + getSetupPINWithParams:params + completion:^(MTRAccountLoginClusterGetSetupPINResponseParams * _Nullable values, NSError * _Nullable err) { + NSLog(@"TH sends a GetSetupPIN command to the DUT with test values provided by the product maker. " + @"Error: %@", + err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + setupPIN = values.setupPIN; + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsALoginCommandToTheDutWithTestValuesProvidedByTheProductMaker_3() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterAccountLogin alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRAccountLoginClusterLoginParams alloc] init]; + params.tempAccountIdentifier = mTempAccountIdentifier.HasValue() + ? [[NSString alloc] initWithBytes:mTempAccountIdentifier.Value().data() + length:mTempAccountIdentifier.Value().size() + encoding:NSUTF8StringEncoding] + : @"1111"; + params.setupPIN = [setupPIN copy]; + [cluster + loginWithParams:params + completion:^(NSError * _Nullable err) { + NSLog(@"TH sends a Login command to the DUT with test values provided by the product maker. Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsALogoutCommandToTheDutWithTestValuesProvidedByTheProductMaker_4() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterAccountLogin alloc] initWithDevice:device endpointID:@(3) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster logoutWithCompletion:^(NSError * _Nullable err) { + NSLog(@"TH sends a Logout command to the DUT with test values provided by the product maker. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintType("supportedStreamingProtocols", "bitmap32", "bitmap32")); NextTest(); }]; @@ -65149,11 +66341,23 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { break; case 14: ChipLogProgress(chipTool, " ***** Test Step 14 : TH reads AcceptedCommandList from DUT\n"); + if (ShouldSkip(" !DGTHREAD.S.F01 ")) { + NextTest(); + return; + } err = TestThReadsAcceptedCommandListFromDut_14(); break; case 15: - ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads GeneratedCommandList from DUT\n"); - err = TestThReadsGeneratedCommandListFromDut_15(); + ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads AcceptedCommandList from DUT\n"); + if (ShouldSkip("DGTHREAD.S.F01")) { + NextTest(); + return; + } + err = TestThReadsAcceptedCommandListFromDut_15(); + break; + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads GeneratedCommandList from DUT\n"); + err = TestThReadsGeneratedCommandListFromDut_16(); break; } @@ -65214,6 +66418,9 @@ class Test_TC_DGTHREAD_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; } // Go on to the next test. @@ -65227,7 +66434,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 16; + const uint16_t mTestCount = 17; chip::Optional mNodeId; chip::Optional mCluster; @@ -65609,6 +66816,32 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAcceptedCommandListWithCompletion:^(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 TestThReadsAcceptedCommandListFromDut_15() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device + endpointID:@(0) + queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { NSLog(@"TH reads AcceptedCommandList from DUT Error: %@", err); @@ -65623,7 +66856,7 @@ class Test_TC_DGTHREAD_1_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsGeneratedCommandListFromDut_15() + CHIP_ERROR TestThReadsGeneratedCommandListFromDut_16() { MTRBaseDevice * device = GetDevice("alpha"); @@ -127958,84 +129191,106 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_25(); break; 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")) { + ChipLogProgress(chipTool, " ***** Test Step 26 : Wait for UserCodeTemporaryDisableTime expires\n"); + if (ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0031")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_26(); + err = TestWaitForUserCodeTemporaryDisableTimeExpires_26(); break; 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")) { + ChipLogProgress(chipTool, " ***** Test Step 27 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_27(); + err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_27(); break; 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")) { + ChipLogProgress(chipTool, " ***** Test Step 28 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_28(); + err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_28(); break; 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")) { + ChipLogProgress(chipTool, " ***** Test Step 29 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); + if (ShouldSkip("!DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { NextTest(); return; } - err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_29(); + err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_29(); break; 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")) { + ChipLogProgress(chipTool, " ***** Test Step 30 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); + if (ShouldSkip("!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = TestThReadsTheAutoRelockTimeAttributeFromTheDut_30(); + err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_30(); break; 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")) { + if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { NextTest(); return; } err = TestThReadsTheAutoRelockTimeAttributeFromTheDut_31(); break; case 32: - ChipLogProgress(chipTool, - " ***** 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")) { + ChipLogProgress(chipTool, " ***** Test Step 32 : TH reads the AutoRelockTime attribute from the DUT\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCodeAndVerifyThatDutSendsSuccessResponseToTheTh_32(); + err = TestThReadsTheAutoRelockTimeAttributeFromTheDut_32(); break; case 33: ChipLogProgress(chipTool, - " ***** 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")) { + " ***** Test Step 33 : 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("DRLK.S.C01.Rsp")) { NextTest(); return; } - err = TestThReadsLockStateAttributeAfterAutoRelockTimeExpiresAndVerifyThatTheDutIsLocked_33(); + err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCodeAndVerifyThatDutSendsSuccessResponseToTheTh_33(); break; case 34: - ChipLogProgress(chipTool, " ***** Test Step 34 : Cleanup the created user\n"); - err = TestCleanupTheCreatedUser_34(); + ChipLogProgress(chipTool, " ***** Test Step 34 : Wait for AutoRelockTime Expires\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestWaitForAutoRelockTimeExpires_34(); break; case 35: - ChipLogProgress(chipTool, " ***** Test Step 35 : Clean the created credential\n"); + ChipLogProgress(chipTool, " ***** Test Step 35 : Wait for AutoRelockTime Expires\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = TestWaitForAutoRelockTimeExpires_35(); + break; + case 36: + ChipLogProgress(chipTool, " ***** Test Step 36 : TH reads LockState attribute\n"); + if (ShouldSkip("DRLK.S.A0000 && DRLK.S.C01.Rsp")) { + NextTest(); + return; + } + err = TestThReadsLockStateAttribute_36(); + break; + case 37: + ChipLogProgress(chipTool, " ***** Test Step 37 : Cleanup the created user\n"); + err = TestCleanupTheCreatedUser_37(); + break; + case 38: + ChipLogProgress(chipTool, " ***** Test Step 38 : Clean the created credential\n"); if (ShouldSkip("DRLK.S.C26.Rsp")) { NextTest(); return; } - err = TestCleanTheCreatedCredential_35(); + err = TestCleanTheCreatedCredential_38(); break; } @@ -128133,13 +129388,13 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 28: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); 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), 0)); + 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)); @@ -128156,6 +129411,15 @@ 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; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 38: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. @@ -128166,7 +129430,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 36; + const uint16_t mTestCount = 39; chip::Optional mNodeId; chip::Optional mCluster; @@ -128891,7 +130155,15 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_26() + CHIP_ERROR TestWaitForUserCodeTemporaryDisableTimeExpires_26() + { + + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 15000UL; + return WaitForMs("alpha", value); + } + + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_27() { MTRBaseDevice * device = GetDevice("alpha"); @@ -128914,7 +130186,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_27() + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_28() { MTRBaseDevice * device = GetDevice("alpha"); @@ -128937,7 +130209,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_28() + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_29() { MTRBaseDevice * device = GetDevice("alpha"); @@ -128964,7 +130236,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_29() + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_30() { MTRBaseDevice * device = GetDevice("alpha"); @@ -128991,7 +130263,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsTheAutoRelockTimeAttributeFromTheDut_30() + CHIP_ERROR TestThReadsTheAutoRelockTimeAttributeFromTheDut_31() { MTRBaseDevice * device = GetDevice("alpha"); @@ -129014,7 +130286,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsTheAutoRelockTimeAttributeFromTheDut_31() + CHIP_ERROR TestThReadsTheAutoRelockTimeAttributeFromTheDut_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -129037,27 +130309,70 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCodeAndVerifyThatDutSendsSuccessResponseToTheTh_32() + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCodeAndVerifyThatDutSendsSuccessResponseToTheTh_33() { - 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); + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; + [cluster unlockDoorWithParams:params + completion:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT with valid PINCode and Verify that DUT sends " + @"SUCCESS response to the TH Error: %@", + err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; } - CHIP_ERROR TestThReadsLockStateAttributeAfterAutoRelockTimeExpiresAndVerifyThatTheDutIsLocked_33() + CHIP_ERROR TestWaitForAutoRelockTimeExpires_34() { - 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::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 10000UL; + return WaitForMs("alpha", value); + } + + CHIP_ERROR TestWaitForAutoRelockTimeExpires_35() + { + + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 60000UL; + return WaitForMs("alpha", value); + } + + CHIP_ERROR TestThReadsLockStateAttribute_36() + { + + MTRBaseDevice * device = GetDevice("alpha"); + __auto_type * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeLockStateWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads LockState attribute Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValueNonNull("LockState", actualValue)); + VerifyOrReturn(CheckValue("LockState", actualValue, 1U)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; } - CHIP_ERROR TestCleanupTheCreatedUser_34() + CHIP_ERROR TestCleanupTheCreatedUser_37() { MTRBaseDevice * device = GetDevice("alpha"); @@ -129078,7 +130393,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCleanTheCreatedCredential_35() + CHIP_ERROR TestCleanTheCreatedCredential_38() { MTRBaseDevice * device = GetDevice("alpha"); @@ -137451,6 +138766,7 @@ void registerCommandsTests(Commands & commands) make_unique(), make_unique(), make_unique(), + make_unique(), make_unique(), make_unique(), make_unique(), @@ -137536,6 +138852,8 @@ void registerCommandsTests(Commands & commands) make_unique(), make_unique(), make_unique(), + make_unique(), + make_unique(), make_unique(), make_unique(), make_unique(), diff --git a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h index ae60cba97fc3b1..9cfbd2002d3332 100644 --- a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h @@ -185,6 +185,222 @@ class Test_TC_BINFO_2_3_SimulatedSuite : public TestCommand } }; +class Test_TC_ACT_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_ACT_3_1_SimulatedSuite() : TestCommand("Test_TC_ACT_3_1_Simulated", 6) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ACT_3_1_SimulatedSuite() {} + +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 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + 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, "Read attribute: ActionList"); + VerifyOrDo(!ShouldSkip("ACT.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::ActionList::Id); + } + case 1: { + LogStep(1, "Read attribute: EndpointLists"); + VerifyOrDo(!ShouldSkip("ACT.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::EndpointLists::Id); + } + case 2: { + LogStep(2, "Read attribute: SetupURL"); + VerifyOrDo(!ShouldSkip("ACT.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::SetupURL::Id); + } + case 3: { + LogStep(3, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACT.C.AO-READ"), 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 5: { + LogStep(5, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACT.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_BOOL_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_BOOL_3_1_SimulatedSuite() : TestCommand("Test_TC_BOOL_3_1_Simulated", 4) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_BOOL_3_1_SimulatedSuite() {} + +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 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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, "Read attribute: StateValue"); + VerifyOrDo(!ShouldSkip("BOOL.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), BooleanState::Id, BooleanState::Attributes::StateValue::Id); + } + case 1: { + LogStep(1, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 3: { + LogStep(3, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + class Test_TC_DESC_2_2_SimulatedSuite : public TestCommand { public: @@ -480,85 +696,742 @@ class Test_TC_DGWIFI_3_1_SimulatedSuite : public TestCommand switch (testIndex) { case 0: { - LogStep(0, "Read attribute: BSSID"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Bssid::Id); + LogStep(0, "Read attribute: BSSID"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Bssid::Id); + } + case 1: { + LogStep(1, "Read attribute: SecurityType"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::SecurityType::Id); + } + case 2: { + LogStep(2, "Read attribute: WiFiVersion"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::WiFiVersion::Id); + } + case 3: { + LogStep(3, "Read attribute: ChannelNumber"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::ChannelNumber::Id); + } + case 4: { + LogStep(4, "Read attribute: RSSI"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Rssi::Id); + } + case 5: { + LogStep(5, "Read attribute: BeaconLostCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::BeaconLostCount::Id); + } + case 6: { + LogStep(6, "Read attribute: BeaconRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::BeaconRxCount::Id); + } + case 7: { + LogStep(7, "Read attribute: PacketMulticastRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::Id); + } + case 8: { + LogStep(8, "Read attribute: PacketMulticastTxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::Id); + } + case 9: { + LogStep(9, "Read attribute: PacketUnicastRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::Id); + } + case 10: { + LogStep(10, "Read attribute: PacketUnicastTxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::Id); + } + case 11: { + LogStep(11, "Read attribute: CurrentMaxRate"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::CurrentMaxRate::Id); + } + case 12: { + LogStep(12, "Read attribute: OverrunCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::OverrunCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_FLW_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_FLW_3_1_SimulatedSuite() : TestCommand("Test_TC_FLW_3_1_Simulated", 7) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_FLW_3_1_SimulatedSuite() {} + +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 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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, "Read attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + VerifyOrDo(!ShouldSkip("FLW.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission " + "DUT to TH again."); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && FLW.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_G_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_G_3_1_SimulatedSuite() : TestCommand("Test_TC_G_3_1_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_G_3_1_SimulatedSuite() {} + +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) + { + case 0: { + LogStep(0, "DUT reads NameSupport attribute value from TH"); + VerifyOrDo(!ShouldSkip("G.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), Groups::Id, Groups::Attributes::NameSupport::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_I_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_I_3_1_SimulatedSuite() : TestCommand("Test_TC_I_3_1_Simulated", 7) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_I_3_1_SimulatedSuite() {} + +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 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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, "Read attribute: IdentifyTime"); + VerifyOrDo(!ShouldSkip("I.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 1: { + LogStep(1, "Read attribute: identifytype"); + VerifyOrDo(!ShouldSkip("I.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyType::Id); + } + case 2: { + LogStep(2, "write attribute: IdentifyTime"); + VerifyOrDo(!ShouldSkip("I.C.AM-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 3: { + LogStep(3, "Readback attribute: IdentifyTime"); + VerifyOrDo(!ShouldSkip("I.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 4: { + LogStep(4, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_PRS_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_PRS_3_1_SimulatedSuite() : TestCommand("Test_TC_PRS_3_1_Simulated", 12) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_PRS_3_1_SimulatedSuite() {} + +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 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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, "Read attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, "Read attribute: ScaledValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::ScaledValue::Id); + } + case 5: { + LogStep(5, "Read attribute: MinScaledValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MinScaledValue::Id); + } + case 6: { + LogStep(6, "Read attribute: MaxScaledValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MaxScaledValue::Id); + } + case 7: { + LogStep(7, "Read attribute: ScaledTolerance"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::ScaledTolerance::Id); + } + case 8: { + LogStep(8, "Read attribute: Scale"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::Scale::Id); + } + case 9: { + LogStep(9, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again."); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PRS.C.AO-READ"), 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 11: { + LogStep(11, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_PS_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_PS_3_1_SimulatedSuite() : TestCommand("Test_TC_PS_3_1_Simulated", 34) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_PS_3_1_SimulatedSuite() {} + +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 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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, "Read attribute: Status"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Status::Id); } case 1: { - LogStep(1, "Read attribute: SecurityType"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::SecurityType::Id); + LogStep(1, "Read attribute: Order"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Order::Id); } case 2: { - LogStep(2, "Read attribute: WiFiVersion"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::WiFiVersion::Id); + LogStep(2, "Read attribute: Description"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Description::Id); } case 3: { - LogStep(3, "Read attribute: ChannelNumber"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::ChannelNumber::Id); + LogStep(3, "Read attribute: WiredAssessedInputVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedInputVoltage::Id); } case 4: { - LogStep(4, "Read attribute: RSSI"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Rssi::Id); + LogStep(4, "Read attribute: WiredAssessedInputFrequency"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedInputFrequency::Id); } case 5: { - LogStep(5, "Read attribute: BeaconLostCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::BeaconLostCount::Id); + LogStep(5, "Read attribute: WiredCurrentType"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredCurrentType::Id); } case 6: { - LogStep(6, "Read attribute: BeaconRxCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::BeaconRxCount::Id); + LogStep(6, "Read attribute: WiredAssessedCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedCurrent::Id); } case 7: { - LogStep(7, "Read attribute: PacketMulticastRxCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::Id); + LogStep(7, "Read attribute: WiredNominalVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredNominalVoltage::Id); } case 8: { - LogStep(8, "Read attribute: PacketMulticastTxCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::Id); + LogStep(8, "Read attribute: WiredPresent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredPresent::Id); } case 9: { - LogStep(9, "Read attribute: PacketUnicastRxCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::Id); + LogStep(9, "Read attribute: WiredMaximumCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredMaximumCurrent::Id); } case 10: { - LogStep(10, "Read attribute: PacketUnicastTxCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::Id); + LogStep(10, "Read attribute: ActiveWiredFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveWiredFaults::Id); } case 11: { - LogStep(11, "Read attribute: CurrentMaxRate"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::CurrentMaxRate::Id); + LogStep(11, "Read attribute: BatVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatVoltage::Id); } case 12: { - LogStep(12, "Read attribute: OverrunCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::OverrunCount::Id); + LogStep(12, "Read attribute: BatPercentRemaining"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatPercentRemaining::Id); + } + case 13: { + LogStep(13, "Read attribute: BatTimeRemaining"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatTimeRemaining::Id); + } + case 14: { + LogStep(14, "Read attribute: BatChargeLevel"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargeLevel::Id); + } + case 15: { + LogStep(15, "Read attribute: BatReplacementNeeded"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplacementNeeded::Id); + } + case 16: { + LogStep(16, "Read attribute: BatReplaceability"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplaceability::Id); + } + case 17: { + LogStep(17, "Read attribute: BatPresent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatPresent::Id); + } + case 18: { + LogStep(18, "Read attribute: ActiveBatFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveBatFaults::Id); + } + case 19: { + LogStep(19, "Read attribute: BatReplacementDescription"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplacementDescription::Id); + } + case 20: { + LogStep(20, "Read attribute: BatCommonDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatCommonDesignation::Id); + } + case 21: { + LogStep(21, "Read attribute: BatANSIDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatANSIDesignation::Id); + } + case 22: { + LogStep(22, "Read attribute: BatIECDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatIECDesignation::Id); + } + case 23: { + LogStep(23, "Read attribute: BatApprovedChemistry"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatApprovedChemistry::Id); + } + case 24: { + LogStep(24, "Read attribute: BatCapacity"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatCapacity::Id); + } + case 25: { + LogStep(25, "Read attribute: BatQuantity"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatQuantity::Id); + } + case 26: { + LogStep(26, "Read attribute: BatChargeState"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargeState::Id); + } + case 27: { + LogStep(27, "Read attribute: BatTimeToFullCharge"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatTimeToFullCharge::Id); + } + case 28: { + LogStep(28, "Read attribute: BatFunctionalWhileCharging"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatFunctionalWhileCharging::Id); + } + case 29: { + LogStep(29, "Read attribute: BatChargingCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargingCurrent::Id); + } + case 30: { + LogStep(30, "Read attribute: ActiveBatChargeFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveBatChargeFaults::Id); + } + case 31: { + LogStep(31, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 32: { + LogStep(32, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.C.AO-READ"), 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 33: { + LogStep(33, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } } return CHIP_NO_ERROR; } }; -class Test_TC_G_3_1_SimulatedSuite : public TestCommand +class Test_TC_PSCFG_3_1_SimulatedSuite : public TestCommand { public: - Test_TC_G_3_1_SimulatedSuite() : TestCommand("Test_TC_G_3_1_Simulated", 1) + Test_TC_PSCFG_3_1_SimulatedSuite() : TestCommand("Test_TC_PSCFG_3_1_Simulated", 4) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -566,7 +1439,7 @@ class Test_TC_G_3_1_SimulatedSuite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_G_3_1_SimulatedSuite() {} + ~Test_TC_PSCFG_3_1_SimulatedSuite() {} private: chip::Optional mNodeId; @@ -586,6 +1459,18 @@ class Test_TC_G_3_1_SimulatedSuite : public TestCommand switch (mTestIndex - 1) { + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -602,9 +1487,44 @@ class Test_TC_G_3_1_SimulatedSuite : public TestCommand switch (testIndex) { case 0: { - LogStep(0, "DUT reads NameSupport attribute value from TH"); - VerifyOrDo(!ShouldSkip("G.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(1), Groups::Id, Groups::Attributes::NameSupport::Id); + LogStep(0, "Read attribute: Sources"); + VerifyOrDo(!ShouldSkip("PSCFG.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PowerSourceConfiguration::Id, PowerSourceConfiguration::Attributes::Sources::Id); + } + case 1: { + LogStep(1, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission " + "DUT to TH again."); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 3: { + LogStep(3, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } } return CHIP_NO_ERROR; @@ -729,6 +1649,119 @@ class Test_TC_RH_3_1_SimulatedSuite : public TestCommand } }; +class Test_TC_SWTCH_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_SWTCH_3_1_SimulatedSuite() : TestCommand("Test_TC_SWTCH_3_1_Simulated", 6) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SWTCH_3_1_SimulatedSuite() {} + +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 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + 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, "Read NumberOfPositions attribute"); + VerifyOrDo(!ShouldSkip("SWTCH.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::NumberOfPositions::Id); + } + case 1: { + LogStep(1, "Read CurrentPosition attribute"); + VerifyOrDo(!ShouldSkip("SWTCH.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::CurrentPosition::Id); + } + case 2: { + LogStep(2, "Read MultiPressMax attribute"); + VerifyOrDo(!ShouldSkip("SWTCH.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::MultiPressMax::Id); + } + case 3: { + LogStep(3, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission " + "DUT to TH again."); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && SWTCH.C.AO-READ"), 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 5: { + LogStep(5, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + class Test_TC_WNCV_5_1_SimulatedSuite : public TestCommand { public: @@ -1393,6 +2426,14 @@ std::unique_ptr GetTestCommand(std::string testName) { return std::unique_ptr(new Test_TC_BINFO_2_3_SimulatedSuite()); } + if (testName == "Test_TC_ACT_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_ACT_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_BOOL_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_BOOL_3_1_SimulatedSuite()); + } if (testName == "Test_TC_DESC_2_2_Simulated") { return std::unique_ptr(new Test_TC_DESC_2_2_SimulatedSuite()); @@ -1409,14 +2450,38 @@ std::unique_ptr GetTestCommand(std::string testName) { return std::unique_ptr(new Test_TC_DGWIFI_3_1_SimulatedSuite()); } + if (testName == "Test_TC_FLW_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_FLW_3_1_SimulatedSuite()); + } if (testName == "Test_TC_G_3_1_Simulated") { return std::unique_ptr(new Test_TC_G_3_1_SimulatedSuite()); } + if (testName == "Test_TC_I_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_I_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_PRS_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_PRS_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_PS_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_PS_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_PSCFG_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_PSCFG_3_1_SimulatedSuite()); + } if (testName == "Test_TC_RH_3_1_Simulated") { return std::unique_ptr(new Test_TC_RH_3_1_SimulatedSuite()); } + if (testName == "Test_TC_SWTCH_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_SWTCH_3_1_SimulatedSuite()); + } if (testName == "Test_TC_WNCV_5_1_Simulated") { return std::unique_ptr(new Test_TC_WNCV_5_1_SimulatedSuite()); @@ -1461,12 +2526,20 @@ void PrintTestCommands() { ChipLogError(chipTool, "Supported commands:"); ChipLogError(chipTool, "\t* Test_TC_BINFO_2_3_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_ACT_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_BOOL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_DESC_2_2_Simulated"); ChipLogError(chipTool, "\t* Test_TC_DGETH_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_DGSW_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_DGWIFI_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_FLW_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_G_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_I_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_PRS_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_PS_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_PSCFG_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_RH_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_SWTCH_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_WNCV_5_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_LCFG_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_LUNIT_1_1_Simulated"); diff --git a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h index ae60cba97fc3b1..9cfbd2002d3332 100644 --- a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h @@ -185,6 +185,222 @@ class Test_TC_BINFO_2_3_SimulatedSuite : public TestCommand } }; +class Test_TC_ACT_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_ACT_3_1_SimulatedSuite() : TestCommand("Test_TC_ACT_3_1_Simulated", 6) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ACT_3_1_SimulatedSuite() {} + +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 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + 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, "Read attribute: ActionList"); + VerifyOrDo(!ShouldSkip("ACT.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::ActionList::Id); + } + case 1: { + LogStep(1, "Read attribute: EndpointLists"); + VerifyOrDo(!ShouldSkip("ACT.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::EndpointLists::Id); + } + case 2: { + LogStep(2, "Read attribute: SetupURL"); + VerifyOrDo(!ShouldSkip("ACT.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::SetupURL::Id); + } + case 3: { + LogStep(3, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACT.C.AO-READ"), 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 5: { + LogStep(5, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && ACT.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_BOOL_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_BOOL_3_1_SimulatedSuite() : TestCommand("Test_TC_BOOL_3_1_Simulated", 4) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_BOOL_3_1_SimulatedSuite() {} + +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 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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, "Read attribute: StateValue"); + VerifyOrDo(!ShouldSkip("BOOL.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), BooleanState::Id, BooleanState::Attributes::StateValue::Id); + } + case 1: { + LogStep(1, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 3: { + LogStep(3, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + class Test_TC_DESC_2_2_SimulatedSuite : public TestCommand { public: @@ -480,85 +696,742 @@ class Test_TC_DGWIFI_3_1_SimulatedSuite : public TestCommand switch (testIndex) { case 0: { - LogStep(0, "Read attribute: BSSID"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Bssid::Id); + LogStep(0, "Read attribute: BSSID"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Bssid::Id); + } + case 1: { + LogStep(1, "Read attribute: SecurityType"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::SecurityType::Id); + } + case 2: { + LogStep(2, "Read attribute: WiFiVersion"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::WiFiVersion::Id); + } + case 3: { + LogStep(3, "Read attribute: ChannelNumber"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::ChannelNumber::Id); + } + case 4: { + LogStep(4, "Read attribute: RSSI"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Rssi::Id); + } + case 5: { + LogStep(5, "Read attribute: BeaconLostCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::BeaconLostCount::Id); + } + case 6: { + LogStep(6, "Read attribute: BeaconRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::BeaconRxCount::Id); + } + case 7: { + LogStep(7, "Read attribute: PacketMulticastRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::Id); + } + case 8: { + LogStep(8, "Read attribute: PacketMulticastTxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::Id); + } + case 9: { + LogStep(9, "Read attribute: PacketUnicastRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::Id); + } + case 10: { + LogStep(10, "Read attribute: PacketUnicastTxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::Id); + } + case 11: { + LogStep(11, "Read attribute: CurrentMaxRate"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::CurrentMaxRate::Id); + } + case 12: { + LogStep(12, "Read attribute: OverrunCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::OverrunCount::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_FLW_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_FLW_3_1_SimulatedSuite() : TestCommand("Test_TC_FLW_3_1_Simulated", 7) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_FLW_3_1_SimulatedSuite() {} + +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 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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, "Read attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + VerifyOrDo(!ShouldSkip("FLW.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission " + "DUT to TH again."); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && FLW.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_G_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_G_3_1_SimulatedSuite() : TestCommand("Test_TC_G_3_1_Simulated", 1) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_G_3_1_SimulatedSuite() {} + +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) + { + case 0: { + LogStep(0, "DUT reads NameSupport attribute value from TH"); + VerifyOrDo(!ShouldSkip("G.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), Groups::Id, Groups::Attributes::NameSupport::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_I_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_I_3_1_SimulatedSuite() : TestCommand("Test_TC_I_3_1_Simulated", 7) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_I_3_1_SimulatedSuite() {} + +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 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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, "Read attribute: IdentifyTime"); + VerifyOrDo(!ShouldSkip("I.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 1: { + LogStep(1, "Read attribute: identifytype"); + VerifyOrDo(!ShouldSkip("I.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyType::Id); + } + case 2: { + LogStep(2, "write attribute: IdentifyTime"); + VerifyOrDo(!ShouldSkip("I.C.AM-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 3: { + LogStep(3, "Readback attribute: IdentifyTime"); + VerifyOrDo(!ShouldSkip("I.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 4: { + LogStep(4, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 6: { + LogStep(6, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_PRS_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_PRS_3_1_SimulatedSuite() : TestCommand("Test_TC_PRS_3_1_Simulated", 12) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_PRS_3_1_SimulatedSuite() {} + +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 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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, "Read attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MeasuredValue::Id); + } + case 1: { + LogStep(1, "Read attribute: MinMeasuredValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MinMeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MaxMeasuredValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: Tolerance"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::Tolerance::Id); + } + case 4: { + LogStep(4, "Read attribute: ScaledValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::ScaledValue::Id); + } + case 5: { + LogStep(5, "Read attribute: MinScaledValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MinScaledValue::Id); + } + case 6: { + LogStep(6, "Read attribute: MaxScaledValue"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MaxScaledValue::Id); + } + case 7: { + LogStep(7, "Read attribute: ScaledTolerance"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::ScaledTolerance::Id); + } + case 8: { + LogStep(8, "Read attribute: Scale"); + VerifyOrDo(!ShouldSkip("PRS.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::Scale::Id); + } + case 9: { + LogStep(9, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList.Commission " + "DUT to TH again."); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PRS.C.AO-READ"), 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 11: { + LogStep(11, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_PS_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_PS_3_1_SimulatedSuite() : TestCommand("Test_TC_PS_3_1_Simulated", 34) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_PS_3_1_SimulatedSuite() {} + +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 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + 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, "Read attribute: Status"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Status::Id); } case 1: { - LogStep(1, "Read attribute: SecurityType"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::SecurityType::Id); + LogStep(1, "Read attribute: Order"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Order::Id); } case 2: { - LogStep(2, "Read attribute: WiFiVersion"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::WiFiVersion::Id); + LogStep(2, "Read attribute: Description"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Description::Id); } case 3: { - LogStep(3, "Read attribute: ChannelNumber"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::ChannelNumber::Id); + LogStep(3, "Read attribute: WiredAssessedInputVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedInputVoltage::Id); } case 4: { - LogStep(4, "Read attribute: RSSI"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Rssi::Id); + LogStep(4, "Read attribute: WiredAssessedInputFrequency"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedInputFrequency::Id); } case 5: { - LogStep(5, "Read attribute: BeaconLostCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::BeaconLostCount::Id); + LogStep(5, "Read attribute: WiredCurrentType"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredCurrentType::Id); } case 6: { - LogStep(6, "Read attribute: BeaconRxCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::BeaconRxCount::Id); + LogStep(6, "Read attribute: WiredAssessedCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedCurrent::Id); } case 7: { - LogStep(7, "Read attribute: PacketMulticastRxCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::Id); + LogStep(7, "Read attribute: WiredNominalVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredNominalVoltage::Id); } case 8: { - LogStep(8, "Read attribute: PacketMulticastTxCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::Id); + LogStep(8, "Read attribute: WiredPresent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredPresent::Id); } case 9: { - LogStep(9, "Read attribute: PacketUnicastRxCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::Id); + LogStep(9, "Read attribute: WiredMaximumCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredMaximumCurrent::Id); } case 10: { - LogStep(10, "Read attribute: PacketUnicastTxCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::Id); + LogStep(10, "Read attribute: ActiveWiredFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveWiredFaults::Id); } case 11: { - LogStep(11, "Read attribute: CurrentMaxRate"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, - WiFiNetworkDiagnostics::Attributes::CurrentMaxRate::Id); + LogStep(11, "Read attribute: BatVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatVoltage::Id); } case 12: { - LogStep(12, "Read attribute: OverrunCount"); - VerifyOrDo(!ShouldSkip("DGWIFI.C.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::OverrunCount::Id); + LogStep(12, "Read attribute: BatPercentRemaining"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatPercentRemaining::Id); + } + case 13: { + LogStep(13, "Read attribute: BatTimeRemaining"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatTimeRemaining::Id); + } + case 14: { + LogStep(14, "Read attribute: BatChargeLevel"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargeLevel::Id); + } + case 15: { + LogStep(15, "Read attribute: BatReplacementNeeded"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplacementNeeded::Id); + } + case 16: { + LogStep(16, "Read attribute: BatReplaceability"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplaceability::Id); + } + case 17: { + LogStep(17, "Read attribute: BatPresent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatPresent::Id); + } + case 18: { + LogStep(18, "Read attribute: ActiveBatFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveBatFaults::Id); + } + case 19: { + LogStep(19, "Read attribute: BatReplacementDescription"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplacementDescription::Id); + } + case 20: { + LogStep(20, "Read attribute: BatCommonDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatCommonDesignation::Id); + } + case 21: { + LogStep(21, "Read attribute: BatANSIDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatANSIDesignation::Id); + } + case 22: { + LogStep(22, "Read attribute: BatIECDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatIECDesignation::Id); + } + case 23: { + LogStep(23, "Read attribute: BatApprovedChemistry"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatApprovedChemistry::Id); + } + case 24: { + LogStep(24, "Read attribute: BatCapacity"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatCapacity::Id); + } + case 25: { + LogStep(25, "Read attribute: BatQuantity"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatQuantity::Id); + } + case 26: { + LogStep(26, "Read attribute: BatChargeState"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargeState::Id); + } + case 27: { + LogStep(27, "Read attribute: BatTimeToFullCharge"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatTimeToFullCharge::Id); + } + case 28: { + LogStep(28, "Read attribute: BatFunctionalWhileCharging"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatFunctionalWhileCharging::Id); + } + case 29: { + LogStep(29, "Read attribute: BatChargingCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargingCurrent::Id); + } + case 30: { + LogStep(30, "Read attribute: ActiveBatChargeFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveBatChargeFaults::Id); + } + case 31: { + LogStep(31, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission " + "DUT to TH again"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 32: { + LogStep(32, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.C.AO-READ"), 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 33: { + LogStep(33, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.C.AO-WRITE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } } return CHIP_NO_ERROR; } }; -class Test_TC_G_3_1_SimulatedSuite : public TestCommand +class Test_TC_PSCFG_3_1_SimulatedSuite : public TestCommand { public: - Test_TC_G_3_1_SimulatedSuite() : TestCommand("Test_TC_G_3_1_Simulated", 1) + Test_TC_PSCFG_3_1_SimulatedSuite() : TestCommand("Test_TC_PSCFG_3_1_Simulated", 4) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -566,7 +1439,7 @@ class Test_TC_G_3_1_SimulatedSuite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_G_3_1_SimulatedSuite() {} + ~Test_TC_PSCFG_3_1_SimulatedSuite() {} private: chip::Optional mNodeId; @@ -586,6 +1459,18 @@ class Test_TC_G_3_1_SimulatedSuite : public TestCommand switch (mTestIndex - 1) { + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -602,9 +1487,44 @@ class Test_TC_G_3_1_SimulatedSuite : public TestCommand switch (testIndex) { case 0: { - LogStep(0, "DUT reads NameSupport attribute value from TH"); - VerifyOrDo(!ShouldSkip("G.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(1), Groups::Id, Groups::Attributes::NameSupport::Id); + LogStep(0, "Read attribute: Sources"); + VerifyOrDo(!ShouldSkip("PSCFG.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), PowerSourceConfiguration::Id, PowerSourceConfiguration::Attributes::Sources::Id); + } + case 1: { + LogStep(1, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission " + "DUT to TH again."); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 2: { + LogStep(2, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 3: { + LogStep(3, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } } return CHIP_NO_ERROR; @@ -729,6 +1649,119 @@ class Test_TC_RH_3_1_SimulatedSuite : public TestCommand } }; +class Test_TC_SWTCH_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_SWTCH_3_1_SimulatedSuite() : TestCommand("Test_TC_SWTCH_3_1_Simulated", 6) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SWTCH_3_1_SimulatedSuite() {} + +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 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + 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, "Read NumberOfPositions attribute"); + VerifyOrDo(!ShouldSkip("SWTCH.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::NumberOfPositions::Id); + } + case 1: { + LogStep(1, "Read CurrentPosition attribute"); + VerifyOrDo(!ShouldSkip("SWTCH.C.AM-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::CurrentPosition::Id); + } + case 2: { + LogStep(2, "Read MultiPressMax attribute"); + VerifyOrDo(!ShouldSkip("SWTCH.C.AO-READ"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::MultiPressMax::Id); + } + case 3: { + LogStep(3, + "Configure TH such that it implements mandatory and none of the optional attributes of the server-side of the " + "cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission " + "DUT to TH again."); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 4: { + LogStep(4, "DUT reads all supported optional attributes from TH one at a time in a manufacturer specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && SWTCH.C.AO-READ"), 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 5: { + LogStep(5, + "DUT writes a suitable value to all supported optional attributes on the TH one at a time in a manufacturer " + "specific order"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Enter 'y' after successgarbage: not in length on purpose", 23); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + class Test_TC_WNCV_5_1_SimulatedSuite : public TestCommand { public: @@ -1393,6 +2426,14 @@ std::unique_ptr GetTestCommand(std::string testName) { return std::unique_ptr(new Test_TC_BINFO_2_3_SimulatedSuite()); } + if (testName == "Test_TC_ACT_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_ACT_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_BOOL_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_BOOL_3_1_SimulatedSuite()); + } if (testName == "Test_TC_DESC_2_2_Simulated") { return std::unique_ptr(new Test_TC_DESC_2_2_SimulatedSuite()); @@ -1409,14 +2450,38 @@ std::unique_ptr GetTestCommand(std::string testName) { return std::unique_ptr(new Test_TC_DGWIFI_3_1_SimulatedSuite()); } + if (testName == "Test_TC_FLW_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_FLW_3_1_SimulatedSuite()); + } if (testName == "Test_TC_G_3_1_Simulated") { return std::unique_ptr(new Test_TC_G_3_1_SimulatedSuite()); } + if (testName == "Test_TC_I_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_I_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_PRS_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_PRS_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_PS_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_PS_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_PSCFG_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_PSCFG_3_1_SimulatedSuite()); + } if (testName == "Test_TC_RH_3_1_Simulated") { return std::unique_ptr(new Test_TC_RH_3_1_SimulatedSuite()); } + if (testName == "Test_TC_SWTCH_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_SWTCH_3_1_SimulatedSuite()); + } if (testName == "Test_TC_WNCV_5_1_Simulated") { return std::unique_ptr(new Test_TC_WNCV_5_1_SimulatedSuite()); @@ -1461,12 +2526,20 @@ void PrintTestCommands() { ChipLogError(chipTool, "Supported commands:"); ChipLogError(chipTool, "\t* Test_TC_BINFO_2_3_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_ACT_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_BOOL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_DESC_2_2_Simulated"); ChipLogError(chipTool, "\t* Test_TC_DGETH_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_DGSW_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_DGWIFI_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_FLW_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_G_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_I_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_PRS_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_PS_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_PSCFG_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_RH_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_SWTCH_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_WNCV_5_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_LCFG_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_LUNIT_1_1_Simulated");