diff --git a/examples/placeholder/linux/apps/app1/ciTests.json b/examples/placeholder/linux/apps/app1/ciTests.json index 7d3af1e9b509ba..1b4508da3227a7 100644 --- a/examples/placeholder/linux/apps/app1/ciTests.json +++ b/examples/placeholder/linux/apps/app1/ciTests.json @@ -1,4 +1,24 @@ { - "Test": ["Test_TC_BINFO_2_3_Simulated"], + "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_DGETH_3_2_Simulated", + "Test_TC_DGSW_3_1_Simulated", + "Test_TC_DGSW_3_2_Simulated", + "Test_TC_DGWIFI_3_1_Simulated", + "Test_TC_DGWIFI_3_2_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" + ], "collection": ["Test"] } diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter index 1298138f97d403..c2fa5f0028e989 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -1438,6 +1438,26 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; } +client cluster FixedLabel = 64 { + struct LabelStruct { + char_string<16> label = 0; + char_string<16> value = 1; + } + + readonly attribute LabelStruct labelList[] = 0; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster FixedLabel = 64 { + struct LabelStruct { + char_string<16> label = 0; + char_string<16> value = 1; + } + + readonly attribute LabelStruct labelList[] = 0; + readonly attribute int16u clusterRevision = 65533; +} + server cluster BooleanState = 69 { info event StateChange = 0 { boolean stateValue = 0; @@ -1988,6 +2008,7 @@ client cluster TemperatureMeasurement = 1026 { readonly attribute nullable int16s measuredValue = 0; readonly attribute nullable int16s minMeasuredValue = 1; readonly attribute nullable int16s maxMeasuredValue = 2; + readonly attribute int16u tolerance = 3; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -1996,6 +2017,7 @@ server cluster TemperatureMeasurement = 1026 { readonly attribute nullable int16s measuredValue = 0; readonly attribute nullable int16s minMeasuredValue = 1; readonly attribute nullable int16s maxMeasuredValue = 2; + readonly attribute int16u tolerance = 3; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -2952,6 +2974,7 @@ endpoint 0 { ram attribute measuredValue default = 0x8000; ram attribute minMeasuredValue default = 0x8000; ram attribute maxMeasuredValue default = 0x8000; + ram attribute tolerance; ram attribute featureMap; ram attribute clusterRevision default = 4; } @@ -3038,6 +3061,7 @@ endpoint 0 { endpoint 1 { device type anonymousEndpointType = 258, version 1; binding cluster OnOff; + binding cluster FixedLabel; server cluster Identify { ram attribute identifyTime; @@ -3099,6 +3123,11 @@ endpoint 1 { ram attribute clusterRevision default = 1; } + server cluster FixedLabel { + callback attribute labelList; + ram attribute clusterRevision default = 1; + } + server cluster ColorControl { ram attribute currentX default = 0x616B; ram attribute currentY default = 0x607D; diff --git a/examples/placeholder/linux/apps/app1/config.zap b/examples/placeholder/linux/apps/app1/config.zap index a4bc36bb1d4283..18b4834c3909da 100644 --- a/examples/placeholder/linux/apps/app1/config.zap +++ b/examples/placeholder/linux/apps/app1/config.zap @@ -5516,7 +5516,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -8235,6 +8235,90 @@ "reportableChange": 0 } ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "client", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] } ] } diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index 1298138f97d403..c2fa5f0028e989 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -1438,6 +1438,26 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; } +client cluster FixedLabel = 64 { + struct LabelStruct { + char_string<16> label = 0; + char_string<16> value = 1; + } + + readonly attribute LabelStruct labelList[] = 0; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster FixedLabel = 64 { + struct LabelStruct { + char_string<16> label = 0; + char_string<16> value = 1; + } + + readonly attribute LabelStruct labelList[] = 0; + readonly attribute int16u clusterRevision = 65533; +} + server cluster BooleanState = 69 { info event StateChange = 0 { boolean stateValue = 0; @@ -1988,6 +2008,7 @@ client cluster TemperatureMeasurement = 1026 { readonly attribute nullable int16s measuredValue = 0; readonly attribute nullable int16s minMeasuredValue = 1; readonly attribute nullable int16s maxMeasuredValue = 2; + readonly attribute int16u tolerance = 3; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -1996,6 +2017,7 @@ server cluster TemperatureMeasurement = 1026 { readonly attribute nullable int16s measuredValue = 0; readonly attribute nullable int16s minMeasuredValue = 1; readonly attribute nullable int16s maxMeasuredValue = 2; + readonly attribute int16u tolerance = 3; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -2952,6 +2974,7 @@ endpoint 0 { ram attribute measuredValue default = 0x8000; ram attribute minMeasuredValue default = 0x8000; ram attribute maxMeasuredValue default = 0x8000; + ram attribute tolerance; ram attribute featureMap; ram attribute clusterRevision default = 4; } @@ -3038,6 +3061,7 @@ endpoint 0 { endpoint 1 { device type anonymousEndpointType = 258, version 1; binding cluster OnOff; + binding cluster FixedLabel; server cluster Identify { ram attribute identifyTime; @@ -3099,6 +3123,11 @@ endpoint 1 { ram attribute clusterRevision default = 1; } + server cluster FixedLabel { + callback attribute labelList; + ram attribute clusterRevision default = 1; + } + server cluster ColorControl { ram attribute currentX default = 0x616B; ram attribute currentY default = 0x607D; diff --git a/examples/placeholder/linux/apps/app2/config.zap b/examples/placeholder/linux/apps/app2/config.zap index a4bc36bb1d4283..a85e66cdef9859 100644 --- a/examples/placeholder/linux/apps/app2/config.zap +++ b/examples/placeholder/linux/apps/app2/config.zap @@ -5516,11 +5516,11 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -8066,6 +8066,90 @@ } ] }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 1, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "client", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, { "name": "Color Control", "code": 768, diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index cffcba6784369e..67d5ea70a77b02 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -590,6 +590,7 @@ PICS: id: TSUIC.S.A0002 # Software Diagnostics cluster + #Server Attributes - label: "The metrics for high watermark related to memory consumption." id: DGSW.S.F00 @@ -611,6 +612,7 @@ PICS: - label: "Does the device implement the ResetWaterMarks command?" id: DGSW.S.C00.Rsp + #Client Attributes - label: "Does the device implement the ThreadMetrics attribute" id: DGSW.C.A0000 @@ -3254,9 +3256,7 @@ PICS: - label: "Does the device implement the ResetCounts command?" id: DGETH.S.C00.Rsp - - label: "Does the device implement the ResetCounts command?" - id: DGETH.C.C00.Tx - + #Server - label: "Does the device implement the PHYRate attribute?" id: DGETH.S.A0000 @@ -3284,6 +3284,55 @@ PICS: - label: "Does the device implement the CarrierDetect attribute?" id: DGETH.S.A0008 + #Client + - label: "Does the device implement the ResetCounts command?" + id: DGETH.C.C00.Tx + + - label: + "Does the DUT(client) have access privileges for the PHYRate attribute + implemented on server" + id: DGETH.C.A0000 + + - label: + "Does the DUT(client) have access privileges for the FullDuplex + attribute implemented on server" + id: DGETH.C.A0001 + + - label: + "Does the DUT(client) have access privileges for the PacketRxCount + attribute implemented on server" + id: DGETH.C.A0002 + + - label: + "Does the DUT(client) have access privileges for the PacketTxCount + attribute implemented on server" + id: DGETH.C.A0003 + + - label: + "Does the DUT(client) have access privileges for the TxErrCount + attribute implemented on server" + id: DGETH.C.A0004 + + - label: + "Does the DUT(client) have access privileges for the CollisionCount + attribute implemented on server" + id: DGETH.C.A0005 + + - label: + "Does the DUT(client) have access privileges for the OverrunCount + attribute implemented on server" + id: DGETH.C.A0006 + + - label: + "Does the DUT(client) have access privileges for the CarrierDetect + attribute implemented on server" + id: DGETH.C.A0007 + + - label: + "Does the DUT(client) have access privileges for the CarrierDetect + attribute implemented on server" + id: DGETH.C.A0008 + #Features - label: "Counts for the number of received and transmitted packets on the @@ -3306,6 +3355,7 @@ PICS: of packets on the ethernet interface." id: DGWIFI.S.F01 + #Server - label: "Indicates the BSSID for which the Wi-Fi network the Node is currently connected. If the interface not configured, a NULL value should be @@ -3371,6 +3421,7 @@ PICS: the Node. This value should not be subscribed." id: DGWIFI.S.A000c + #Events - label: "Indicates Node’s Wi-Fi connection has been disconnected as a result of de-authenticated or dis-association and indicates the reason." @@ -3393,6 +3444,73 @@ PICS: PacketMulticastRxCount, PacketMulticastTxCount, PacketUnicastRxCount, PacketUnicastTxCount" id: DGWIFI.S.C00.Rsp + + #Client + - label: + "Does the DUT(client) have access privileges for the BSSID attribute + implemented on the server?" + id: DGWIFI.C.A0000 + + - label: + "Does the DUT(client) have access privileges for the SecurityType + attribute implemented on the server?" + id: DGWIFI.C.A0001 + + - label: + "Does the DUT(client) have access privileges for the WiFiVersion + attribute implemented on the server?" + id: DGWIFI.C.A0002 + + - label: + "Does the DUT(client) have access privileges for the ChannelNumber + attribute implemented on the server?" + id: DGWIFI.C.A0003 + + - label: + "Does the DUT(client) have access privileges for the RSSI attribute + implemented on the server?" + id: DGWIFI.C.A0004 + + - label: + "Does the DUT(client) have access privileges for the BeaconLostCount + attribute implemented on the server?" + id: DGWIFI.C.A0005 + + - label: + "Does the DUT(client) have access privileges for the BeaconRxCount + attribute implemented on the server?" + id: DGWIFI.C.A0006 + + - label: + "Does the DUT(client) have access privileges for the + PacketMulticastRxCount attribute implemented on the server?" + id: DGWIFI.C.A0007 + + - label: + "Does the DUT(client) have access privileges for the + PacketMulticastTxCount attribute implemented on the server?" + id: DGWIFI.C.A0008 + + - label: + "Does the DUT(client) have access privileges for the + PacketUnicastRxCount attribute implemented on the server?" + id: DGWIFI.C.A0009 + + - label: + "Does the DUT(client) have access privileges for the + PacketUnicastTxCount attribute implemented on the server?" + id: DGWIFI.C.A000a + + - label: + "Does the DUT(client) have access privileges for the CurrentMaxRate + attribute implemented on the server?" + id: DGWIFI.C.A000b + + - label: + "Does the DUT(client) have access privileges for the OverrunCount + attribute implemented on the server?" + id: DGWIFI.C.A000c + #Actions Cluster - label: "Does the device implement the ActionList attribute?" id: ACT.S.A0000 diff --git a/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml b/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml deleted file mode 100644 index 9bbfbe56d38ea5..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml +++ /dev/null @@ -1,229 +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: 77.2.3. [TC-ACT-3.1] GLobal attributes with client as DUT - -PICS: - - ACT.C - - ACT.C.AM-READ - - ACT.C.AO-READ - - ACT.C.AM-WRITE - - ACT.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic" - 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" - verification: | - ./chip-tool actions read action-list 1 1 - - Verify read command is received on TH(bridge-app) - - [1658848323.188336][28392:28392] CHIP:IM: Received Read request - [1658848323.188433][28392:28392] CHIP:DMG: ReadRequestMessage = - [1658848323.188470][28392:28392] CHIP:DMG: { - [1658848323.188500][28392:28392] CHIP:DMG: AttributePathIBs = - [1658848323.188535][28392:28392] CHIP:DMG: [ - [1658848323.188568][28392:28392] CHIP:DMG: AttributePathIB = - [1658848323.188605][28392:28392] CHIP:DMG: { - [1658848323.188643][28392:28392] CHIP:DMG: Endpoint = 0x1, - [1658848323.188690][28392:28392] CHIP:DMG: Cluster = 0x25, - [1658848323.188733][28392:28392] CHIP:DMG: Attribute = 0x0000_0000, - [1658848323.188774][28392:28392] CHIP:DMG: } - [1658848323.188812][28392:28392] CHIP:DMG: - [1658848323.188846][28392:28392] CHIP:DMG: ], - [1658848323.188884][28392:28392] CHIP:DMG: - [1658848323.188919][28392:28392] CHIP:DMG: isFabricFiltered = true, - [1658848323.188954][28392:28392] CHIP:DMG: InteractionModelRevision = 1 - [1658848323.188985][28392:28392] CHIP:DMG: }, - [1658848323.189080][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658848323.189190][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658848323.189229][28392:28392] CHIP:DMG: Cluster 25, Attribute 0 is dirty - - - - ./chip-tool actions read endpoint-lists 1 1 - - Verify read command is received on TH(all-clusters-app - ) - [1658848398.260378][28392:28392] CHIP:IM: Received Read request - [1658848398.260455][28392:28392] CHIP:DMG: ReadRequestMessage = - [1658848398.260483][28392:28392] CHIP:DMG: { - [1658848398.260505][28392:28392] CHIP:DMG: AttributePathIBs = - [1658848398.260531][28392:28392] CHIP:DMG: [ - [1658848398.260555][28392:28392] CHIP:DMG: AttributePathIB = - [1658848398.260583][28392:28392] CHIP:DMG: { - [1658848398.260611][28392:28392] CHIP:DMG: Endpoint = 0x1, - [1658848398.260642][28392:28392] CHIP:DMG: Cluster = 0x25, - [1658848398.260673][28392:28392] CHIP:DMG: Attribute = 0x0000_0001, - [1658848398.260702][28392:28392] CHIP:DMG: } - [1658848398.260731][28392:28392] CHIP:DMG: - [1658848398.260756][28392:28392] CHIP:DMG: ], - [1658848398.260784][28392:28392] CHIP:DMG: - [1658848398.260810][28392:28392] CHIP:DMG: isFabricFiltered = true, - [1658848398.260836][28392:28392] CHIP:DMG: InteractionModelRevision = 1 - [1658848398.260859][28392:28392] CHIP:DMG: }, - [1658848398.260930][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658848398.261011][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658848398.261040][28392:28392] CHIP:DMG: Cluster 25, Attribute 1 is dirty - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - Optional attibute - - ./chip-tool actions read setup-url 1 1 - - Verify read command is received on TH(bridge-app) - - [1658848453.728775][28392:28392] CHIP:IM: Received Read request - [1658848453.728895][28392:28392] CHIP:DMG: ReadRequestMessage = - [1658848453.728927][28392:28392] CHIP:DMG: { - [1658848453.728950][28392:28392] CHIP:DMG: AttributePathIBs = - [1658848453.728975][28392:28392] CHIP:DMG: [ - [1658848453.728999][28392:28392] CHIP:DMG: AttributePathIB = - [1658848453.729046][28392:28392] CHIP:DMG: { - [1658848453.729081][28392:28392] CHIP:DMG: Endpoint = 0x1, - [1658848453.729118][28392:28392] CHIP:DMG: Cluster = 0x25, - [1658848453.729157][28392:28392] CHIP:DMG: Attribute = 0x0000_0002, - [1658848453.729191][28392:28392] CHIP:DMG: } - [1658848453.729223][28392:28392] CHIP:DMG: - [1658848453.729251][28392:28392] CHIP:DMG: ], - [1658848453.729280][28392:28392] CHIP:DMG: - [1658848453.729307][28392:28392] CHIP:DMG: isFabricFiltered = true, - [1658848453.729332][28392:28392] CHIP:DMG: InteractionModelRevision = 1 - [1658848453.729358][28392:28392] CHIP:DMG: }, - [1658848453.729436][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658848453.729538][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658848453.729570][28392:28392] CHIP:DMG: Cluster 25, Attribute 2 is dirty - 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" - 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" - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - 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" - verification: | - ./chip-tool actions read attribute-list 1 1 - - Verify attribute-list attribute contains 7 entries on TH(all-clusters-minimal-app) - [1658393025.602745][13481:13486] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_FFFB DataVersion: 2868144574 - [1658393025.602867][13481:13486] CHIP:TOO: AttributeList: 7 entries - [1658393025.602917][13481:13486] CHIP:TOO: [1]: 0 - [1658393025.602945][13481:13486] CHIP:TOO: [2]: 1 - [1658393025.602997][13481:13486] CHIP:TOO: [3]: 65528 - [1658393025.603023][13481:13486] CHIP:TOO: [4]: 65529 - [1658393025.603049][13481:13486] CHIP:TOO: [5]: 65531 - [1658393025.603094][13481:13486] CHIP:TOO: [6]: 65532 - [1658393025.603121][13481:13486] CHIP:TOO: [7]: 65533 - [1658393025.603258][13481:13486] CHIP:EM: Sending Standalone Ack for MessageCounter:114510707 on exchange 23501i - - - ./chip-tool actions read action-list 1 1 - - Verify read command is received on TH(all-clusters-minimal-app) Log - - [1658848323.188336][28392:28392] CHIP:IM: Received Read request - [1658848323.188433][28392:28392] CHIP:DMG: ReadRequestMessage = - [1658848323.188470][28392:28392] CHIP:DMG: { - [1658848323.188500][28392:28392] CHIP:DMG: AttributePathIBs = - [1658848323.188535][28392:28392] CHIP:DMG: [ - [1658848323.188568][28392:28392] CHIP:DMG: AttributePathIB = - [1658848323.188605][28392:28392] CHIP:DMG: { - [1658848323.188643][28392:28392] CHIP:DMG: Endpoint = 0x1, - [1658848323.188690][28392:28392] CHIP:DMG: Cluster = 0x25, - [1658848323.188733][28392:28392] CHIP:DMG: Attribute = 0x0000_0000, - [1658848323.188774][28392:28392] CHIP:DMG: } - [1658848323.188812][28392:28392] CHIP:DMG: - [1658848323.188846][28392:28392] CHIP:DMG: ], - [1658848323.188884][28392:28392] CHIP:DMG: - [1658848323.188919][28392:28392] CHIP:DMG: isFabricFiltered = true, - [1658848323.188954][28392:28392] CHIP:DMG: InteractionModelRevision = 1 - [1658848323.188985][28392:28392] CHIP:DMG: }, - [1658848323.189080][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658848323.189190][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658848323.189229][28392:28392] CHIP:DMG: Cluster 25, Attribute 0 is dirty - - - - ./chip-tool actions read endpoint-lists 1 1 - - Verify read command is received on TH(all-clusters-minimal-app) - - [1658848398.260378][28392:28392] CHIP:IM: Received Read request - [1658848398.260455][28392:28392] CHIP:DMG: ReadRequestMessage = - [1658848398.260483][28392:28392] CHIP:DMG: { - [1658848398.260505][28392:28392] CHIP:DMG: AttributePathIBs = - [1658848398.260531][28392:28392] CHIP:DMG: [ - [1658848398.260555][28392:28392] CHIP:DMG: AttributePathIB = - [1658848398.260583][28392:28392] CHIP:DMG: { - [1658848398.260611][28392:28392] CHIP:DMG: Endpoint = 0x1, - [1658848398.260642][28392:28392] CHIP:DMG: Cluster = 0x25, - [1658848398.260673][28392:28392] CHIP:DMG: Attribute = 0x0000_0001, - [1658848398.260702][28392:28392] CHIP:DMG: } - [1658848398.260731][28392:28392] CHIP:DMG: - [1658848398.260756][28392:28392] CHIP:DMG: ], - [1658848398.260784][28392:28392] CHIP:DMG: - [1658848398.260810][28392:28392] CHIP:DMG: isFabricFiltered = true, - [1658848398.260836][28392:28392] CHIP:DMG: InteractionModelRevision = 1 - [1658848398.260859][28392:28392] CHIP:DMG: }, - [1658848398.260930][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658848398.261011][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658848398.261040][28392:28392] CHIP:DMG: Cluster 25, Attribute 1 is dirty - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - Optional attibute - - ./chip-tool actions read setup-url 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" - verification: | - This cluster doesn"t have any writable attributes - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ACT_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_ACT_3_1_Simulated.yaml new file mode 100644 index 00000000000000..bed71722748201 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_ACT_3_1_Simulated.yaml @@ -0,0 +1,37 @@ +# 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. + +name: 77.2.3. [TC-ACT-3.1] GLobal attributes with client as DUT + +config: + nodeId: 0x12344321 + cluster: "Actions" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute: ActionList" + wait: "readAttribute" + attribute: "ActionList" + + - label: "Read attribute: EndpointLists" + wait: "readAttribute" + attribute: "EndpointLists" + + - label: "Read attribute: SetupURL" + wait: "readAttribute" + attribute: "SetupURL" 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.yaml deleted file mode 100644 index 4e736f9e19211e..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_BOOL_3_1.yaml +++ /dev/null @@ -1,149 +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: 68.3.1. [TC-BOOL-3.1] Attributes with Client as DUT - -PICS: - - BOOL.C - - BOOL.C.AM-READ - - BOOL.C.AO-READ - - BOOL.C.AM-WRITE - - BOOL.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic" - 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" - verification: | - ./chip-tool booleanstate read state-value 1 1 - - Verify read command is received on TH(all-clusters-app) Log successfully - - [1658847009.838448][28392:28392] CHIP:IM: Received Read request - [1658847009.838537][28392:28392] CHIP:DMG: ReadRequestMessage = - [1658847009.838570][28392:28392] CHIP:DMG: { - [1658847009.838598][28392:28392] CHIP:DMG: AttributePathIBs = - [1658847009.838630][28392:28392] CHIP:DMG: [ - [1658847009.838660][28392:28392] CHIP:DMG: AttributePathIB = - [1658847009.838694][28392:28392] CHIP:DMG: { - [1658847009.838728][28392:28392] CHIP:DMG: Endpoint = 0x1, - [1658847009.838766][28392:28392] CHIP:DMG: Cluster = 0x45, - [1658847009.838806][28392:28392] CHIP:DMG: Attribute = 0x0000_0000, - [1658847009.838843][28392:28392] CHIP:DMG: } - [1658847009.838878][28392:28392] CHIP:DMG: - [1658847009.838909][28392:28392] CHIP:DMG: ], - [1658847009.838943][28392:28392] CHIP:DMG: - [1658847009.838975][28392:28392] CHIP:DMG: isFabricFiltered = true, - [1658847009.839006][28392:28392] CHIP:DMG: InteractionModelRevision = 1 - [1658847009.839034][28392:28392] CHIP:DMG: }, - [1658847009.839120][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658847009.839332][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658847009.839386][28392:28392] CHIP:DMG: Cluster 45, Attribute 0 is dirty - [1658847009.839426][28392:28392] CHIP:DMG: Reading attribute: Cluster=0x0000_0045 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1658847009.839474][28392:28392] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0045 e=1 p=v - [1658847009.839528][28392:28392] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - 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" - 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" - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - 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" - verification: | - ./chip-tool booleanstate read attribute-list 1 1 - - Verify none of the optional attributes of the server-side of the cluster is listed on TH(all-clusters-app) Log - [1654244313219] [91456:3997555] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0045 Attribute 0x0000_FFFB DataVersion: 2739318439 - [1654244313220] [91456:3997555] CHIP: [TOO] AttributeList: 6 entries - [1654244313220] [91456:3997555] CHIP: [TOO] [1]: 0 - [1654244313220] [91456:3997555] CHIP: [TOO] [2]: 65528 - [1654244313220] [91456:3997555] CHIP: [TOO] [3]: 65529 - [1654244313220] [91456:3997555] CHIP: [TOO] [4]: 65531 - [1654244313220] [91456:3997555] CHIP: [TOO] [5]: 65532 - [1654244313220] [91456:3997555] CHIP: [TOO] [6]: 65533 - - ./chip-tool booleanstate read state-value 1 1 - - Verify read command is received on TH (all-clusters-minimal-app) Log - - [1658847009.838448][28392:28392] CHIP:IM: Received Read request - [1658847009.838537][28392:28392] CHIP:DMG: ReadRequestMessage = - [1658847009.838570][28392:28392] CHIP:DMG: { - [1658847009.838598][28392:28392] CHIP:DMG: AttributePathIBs = - [1658847009.838630][28392:28392] CHIP:DMG: [ - [1658847009.838660][28392:28392] CHIP:DMG: AttributePathIB = - [1658847009.838694][28392:28392] CHIP:DMG: { - [1658847009.838728][28392:28392] CHIP:DMG: Endpoint = 0x1, - [1658847009.838766][28392:28392] CHIP:DMG: Cluster = 0x45, - [1658847009.838806][28392:28392] CHIP:DMG: Attribute = 0x0000_0000, - [1658847009.838843][28392:28392] CHIP:DMG: } - [1658847009.838878][28392:28392] CHIP:DMG: - [1658847009.838909][28392:28392] CHIP:DMG: ], - [1658847009.838943][28392:28392] CHIP:DMG: - [1658847009.838975][28392:28392] CHIP:DMG: isFabricFiltered = true, - [1658847009.839006][28392:28392] CHIP:DMG: InteractionModelRevision = 1 - [1658847009.839034][28392:28392] CHIP:DMG: }, - [1658847009.839120][28392:28392] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658847009.839332][28392:28392] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658847009.839386][28392:28392] CHIP:DMG: Cluster 45, Attribute 0 is dirty - [1658847009.839426][28392:28392] CHIP:DMG: Reading attribute: Cluster=0x0000_0045 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1658847009.839474][28392:28392] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0045 e=1 p=v - [1658847009.839528][28392:28392] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - This cluster doesn"t have any optional 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" - verification: | - This cluster doesn"t have any optional attribute - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_BOOL_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_BOOL_3_1_Simulated.yaml new file mode 100644 index 00000000000000..695ee104f8eed9 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_BOOL_3_1_Simulated.yaml @@ -0,0 +1,29 @@ +# 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. + +name: 68.3.1. [TC-BOOL-3.1] Attributes with Client as DUT + +config: + nodeId: 0x12344321 + cluster: "Boolean State" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute: StateValue" + wait: "readAttribute" + attribute: "StateValue" diff --git a/src/app/tests/suites/certification/Test_TC_DESC_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DESC_2_2.yaml deleted file mode 100644 index b31816c2524a44..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DESC_2_2.yaml +++ /dev/null @@ -1,141 +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: 84.2.2. [TC-DESC-2.2] Descriptor Cluster Attributes [DUT-Client] - -PICS: - - DESC.C - -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Pre-Conditions" - verification: | - Commission TH to DUT - disabled: true - - - label: "DUT reads DeviceTypeList from TH." - PICS: DESC.C.A0000 - 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 descriptor read device-list 1 0 - - verify the " device-list response" on the TH (all-cluster-app) log: - - [1660049876.238277][36511:36511] CHIP:IM: Received Read request - [1660049876.238408][36511:36511] CHIP:DMG: ReadRequestMessage = - [1660049876.238477][36511:36511] CHIP:DMG: { - [1660049876.238525][36511:36511] CHIP:DMG: AttributePathIBs = - [1660049876.238602][36511:36511] CHIP:DMG: [ - [1660049876.238677][36511:36511] CHIP:DMG: AttributePathIB = - [1660049876.238766][36511:36511] CHIP:DMG: { - [1660049876.238857][36511:36511] CHIP:DMG: Endpoint = 0x0, - [1660049876.238963][36511:36511] CHIP:DMG: Cluster = 0x1d, - [1660049876.239062][36511:36511] CHIP:DMG: Attribute = 0x0000_0000, - [1660049876.239156][36511:36511] CHIP:DMG: } - [1660049876.239246][36511:36511] CHIP:DMG: - [1660049876.239331][36511:36511] CHIP:DMG: ], - [1660049876.239408][36511:36511] CHIP:DMG: - [1660049876.239490][36511:36511] CHIP:DMG: isFabricFiltered = true, - [1660049876.239568][36511:36511] CHIP:DMG: InteractionModelRevision = 1 - [1660049876.239639][36511:36511] CHIP:DMG: }, - disabled: true - - - label: "DUT reads ServerList from the TH" - PICS: DESC.C.A0001 - verification: | - ./chip-tool descriptor read server-list 1 0 - - verify the " server-list response" on the TH (all-cluster-app) log: - - [1657095388.496869][3451:3456] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 2880250959 - [1660049905.629940][36511:36511] CHIP:IM: Received Read request - [1660049905.630388][36511:36511] CHIP:DMG: ReadRequestMessage = - [1660049905.630834][36511:36511] CHIP:DMG: { - [1660049905.631175][36511:36511] CHIP:DMG: AttributePathIBs = - [1660049905.631815][36511:36511] CHIP:DMG: [ - [1660049905.632509][36511:36511] CHIP:DMG: AttributePathIB = - [1660049905.633291][36511:36511] CHIP:DMG: { - [1660049905.634105][36511:36511] CHIP:DMG: Endpoint = 0x0, - [1660049905.634422][36511:36511] CHIP:DMG: Cluster = 0x1d, - [1660049905.634714][36511:36511] CHIP:DMG: Attribute = 0x0000_0001, - [1660049905.635065][36511:36511] CHIP:DMG: } - [1660049905.635366][36511:36511] CHIP:DMG: - [1660049905.635466][36511:36511] CHIP:DMG: ], - [1660049905.635925][36511:36511] CHIP:DMG: - [1660049905.636339][36511:36511] CHIP:DMG: isFabricFiltered = true, - [1660049905.636431][36511:36511] CHIP:DMG: InteractionModelRevision = 1 - [1660049905.636651][36511:36511] CHIP:DMG: }, - disabled: true - - - label: "DUT reads ClientList from the TH" - PICS: DESC.C.A0002 - verification: | - ./chip-tool descriptor read client-list 1 0 - - verify the " client-list response" on the TH (all-cluster-app) log: - [1660049929.094511][36511:36511] CHIP:IM: Received Read request - [1660049929.094621][36511:36511] CHIP:DMG: ReadRequestMessage = - [1660049929.094659][36511:36511] CHIP:DMG: { - [1660049929.094680][36511:36511] CHIP:DMG: AttributePathIBs = - [1660049929.094706][36511:36511] CHIP:DMG: [ - [1660049929.094729][36511:36511] CHIP:DMG: AttributePathIB = - [1660049929.094761][36511:36511] CHIP:DMG: { - [1660049929.094788][36511:36511] CHIP:DMG: Endpoint = 0x0, - [1660049929.094821][36511:36511] CHIP:DMG: Cluster = 0x1d, - [1660049929.094855][36511:36511] CHIP:DMG: Attribute = 0x0000_0002, - [1660049929.094886][36511:36511] CHIP:DMG: } - [1660049929.094914][36511:36511] CHIP:DMG: - [1660049929.094940][36511:36511] CHIP:DMG: ], - [1660049929.094966][36511:36511] CHIP:DMG: - [1660049929.094993][36511:36511] CHIP:DMG: isFabricFiltered = true, - [1660049929.095019][36511:36511] CHIP:DMG: InteractionModelRevision = 1 - [1660049929.095041][36511:36511] CHIP:DMG: }, - disabled: true - - - label: "DUT reads PartsList from the TH" - PICS: DESC.C.A0003 - verification: | - ./chip-tool descriptor read parts-list 1 0 - - verify the " parts-list response" on the TH (all-cluster-app) log: - - [1660049948.708577][36511:36511] CHIP:IM: Received Read request - [1660049948.708668][36511:36511] CHIP:DMG: ReadRequestMessage = - [1660049948.708701][36511:36511] CHIP:DMG: { - [1660049948.708723][36511:36511] CHIP:DMG: AttributePathIBs = - [1660049948.708748][36511:36511] CHIP:DMG: [ - [1660049948.708771][36511:36511] CHIP:DMG: AttributePathIB = - [1660049948.708832][36511:36511] CHIP:DMG: { - [1660049948.708925][36511:36511] CHIP:DMG: Endpoint = 0x0, - [1660049948.709818][36511:36511] CHIP:DMG: Cluster = 0x1d, - [1660049948.710771][36511:36511] CHIP:DMG: Attribute = 0x0000_0003, - [1660049948.711682][36511:36511] CHIP:DMG: } - [1660049948.712502][36511:36511] CHIP:DMG: - [1660049948.713252][36511:36511] CHIP:DMG: ], - [1660049948.713823][36511:36511] CHIP:DMG: - [1660049948.714389][36511:36511] CHIP:DMG: isFabricFiltered = true, - [1660049948.714998][36511:36511] CHIP:DMG: InteractionModelRevision = 1 - [1660049948.715573][36511:36511] CHIP:DMG: }, - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DESC_2_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DESC_2_2_Simulated.yaml new file mode 100644 index 00000000000000..71904d370d0dc4 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DESC_2_2_Simulated.yaml @@ -0,0 +1,48 @@ +# 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. + +name: 84.2.2. [TC-DESC-2.2] Descriptor Cluster Attributes [DUT-Client] + +PICS: + - DESC.C + +config: + nodeId: 0x12344321 + cluster: "Descriptor" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "DUT reads DeviceTypeList from TH." + PICS: DESC.C.A0000 + wait: "readAttribute" + attribute: "DeviceTypeList" + + - label: "DUT reads ServerList from the TH" + PICS: DESC.C.A0001 + wait: "readAttribute" + attribute: "ServerList" + + - label: "DUT reads ClientList attribute from the TH" + PICS: DESC.C.A0002 + wait: "readAttribute" + attribute: "ClientList" + + - label: "DUT reads PartsList attribute from the TH" + PICS: DESC.C.A0003 + wait: "readAttribute" + attribute: "PartsList" diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_3_1.yaml deleted file mode 100644 index 9d6ce69da622cc..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGETH_3_1.yaml +++ /dev/null @@ -1,324 +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: 3.3.1. [TC-DGETH-3.1] Attributes [{DUT_Client}] - -PICS: - - DGETH.C - -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT reads PHYRate attribute from TH." - PICS: DGETH.S.A0000 - verification: | - ./chip-tool ethernetnetworkdiagnostics read phyrate 1 0 - - Verify the value of PHYRate is in range of PHYRate enum in TH(all-clusters-app)Log - - [1659971284.056816][3458:3458] CHIP:IM: Received Read request - [1659971284.056893][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971284.056920][3458:3458] CHIP:DMG: { - [1659971284.056942][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971284.056968][3458:3458] CHIP:DMG: [ - [1659971284.056992][3458:3458] CHIP:DMG: AttributePathIB = - [1659971284.057036][3458:3458] CHIP:DMG: { - [1659971284.057066][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971284.057097][3458:3458] CHIP:DMG: Cluster = 0x37, - [1659971284.057126][3458:3458] CHIP:DMG: Attribute = 0x0000_0000, - [1659971284.057157][3458:3458] CHIP:DMG: } - [1659971284.057185][3458:3458] CHIP:DMG: - [1659971284.057209][3458:3458] CHIP:DMG: ], - [1659971284.057237][3458:3458] CHIP:DMG: - [1659971284.057263][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971284.057287][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971284.057310][3458:3458] CHIP:DMG: }, - [1659971284.057384][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971284.057468][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971284.057497][3458:3458] CHIP:DMG: Cluster 37, Attribute 0 is dirty - [1659971284.057518][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0037 Endpoint=0 AttributeId=0x0000_0000 (expanded=0) - [1659971284.057545][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0037 e=0 p=v - [1659971284.057577][3458:3458] CHIP:DMG: AccessControl: allowed - [1659971284.057707][3458:3458] CHIP:ZCL: The current nominal, usable speed at the top of the physical layer of the Node: 1 - disabled: true - - - label: "DUT reads a attribute value from TH." - PICS: DGETH.S.A0001 - verification: | - ./chip-tool ethernetnetworkdiagnostics read full-duplex 1 0 - - Verify the value of FullDuplex is boolean in TH(all-clusters-app) Log - - [1659971415.211787][3458:3458] CHIP:IM: Received Read request - [1659971415.211891][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971415.211931][3458:3458] CHIP:DMG: { - [1659971415.211963][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971415.212001][3458:3458] CHIP:DMG: [ - [1659971415.212036][3458:3458] CHIP:DMG: AttributePathIB = - [1659971415.212084][3458:3458] CHIP:DMG: { - [1659971415.212126][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971415.212171][3458:3458] CHIP:DMG: Cluster = 0x37, - [1659971415.212219][3458:3458] CHIP:DMG: Attribute = 0x0000_0001, - [1659971415.212262][3458:3458] CHIP:DMG: } - [1659971415.212303][3458:3458] CHIP:DMG: - [1659971415.212340][3458:3458] CHIP:DMG: ], - [1659971415.212380][3458:3458] CHIP:DMG: - [1659971415.212419][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971415.212456][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971415.212490][3458:3458] CHIP:DMG: }, - [1659971415.212590][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971415.212704][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971415.212746][3458:3458] CHIP:DMG: Cluster 37, Attribute 1 is dirty - [1659971415.212777][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0037 Endpoint=0 AttributeId=0x0000_0001 (expanded=0) - [1659971415.212816][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0037 e=0 p=v - [1659971415.212862][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "DUT reads a attribute value from TH." - PICS: DGETH.S.A0002 - verification: | - ./chip-tool ethernetnetworkdiagnostics read packet-rx-count 1 0 - - Verify the value of PacketRxCount is in range uint64 on TH(all-clusters-app) Log - - [1659971446.614287][3458:3458] CHIP:IM: Received Read request - [1659971446.614366][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971446.614393][3458:3458] CHIP:DMG: { - [1659971446.614414][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971446.614441][3458:3458] CHIP:DMG: [ - [1659971446.614464][3458:3458] CHIP:DMG: AttributePathIB = - [1659971446.614492][3458:3458] CHIP:DMG: { - [1659971446.614519][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971446.614551][3458:3458] CHIP:DMG: Cluster = 0x37, - [1659971446.614582][3458:3458] CHIP:DMG: Attribute = 0x0000_0002, - [1659971446.614610][3458:3458] CHIP:DMG: } - [1659971446.614637][3458:3458] CHIP:DMG: - [1659971446.614661][3458:3458] CHIP:DMG: ], - [1659971446.614689][3458:3458] CHIP:DMG: - [1659971446.614713][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971446.614738][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971446.614761][3458:3458] CHIP:DMG: }, - [1659971446.614831][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971446.614913][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971446.614942][3458:3458] CHIP:DMG: Cluster 37, Attribute 2 is dirty - [1659971446.614963][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0037 Endpoint=0 AttributeId=0x0000_0002 (expanded=0) - [1659971446.614991][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0037 e=0 p=v - [1659971446.615023][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "DUT reads a attribute value from TH." - PICS: DGETH.S.A0003 - verification: | - ./chip-tool ethernetnetworkdiagnostics read packet-tx-count 1 0 - - Verify the value of PacketTxCount is in range uint64 on TH(all-clusters-app) Log - - [1659971467.437214][3458:3458] CHIP:IM: Received Read request - [1659971467.437292][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971467.437318][3458:3458] CHIP:DMG: { - [1659971467.437339][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971467.437365][3458:3458] CHIP:DMG: [ - [1659971467.437388][3458:3458] CHIP:DMG: AttributePathIB = - [1659971467.437423][3458:3458] CHIP:DMG: { - [1659971467.437451][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971467.437482][3458:3458] CHIP:DMG: Cluster = 0x37, - [1659971467.437513][3458:3458] CHIP:DMG: Attribute = 0x0000_0003, - [1659971467.437542][3458:3458] CHIP:DMG: } - [1659971467.437569][3458:3458] CHIP:DMG: - [1659971467.437594][3458:3458] CHIP:DMG: ], - [1659971467.437622][3458:3458] CHIP:DMG: - [1659971467.437648][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971467.437672][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971467.437693][3458:3458] CHIP:DMG: }, - [1659971467.437765][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971467.437848][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971467.437877][3458:3458] CHIP:DMG: Cluster 37, Attribute 3 is dirty - [1659971467.437898][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0037 Endpoint=0 AttributeId=0x0000_0003 (expanded=0) - [1659971467.437926][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0037 e=0 p=v - [1659971467.437958][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "DUT reads a attribute value from TH." - PICS: DGETH.S.A0004 - verification: | - ./chip-tool ethernetnetworkdiagnostics read tx-err-count 1 0 - - Verify the value of TxErrCount is in range uint64 on TH(all-clusters-app) Log - - [1659971467.437214][3458:3458] CHIP:IM: Received Read request - [1659971467.437292][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971467.437318][3458:3458] CHIP:DMG: { - [1659971467.437339][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971467.437365][3458:3458] CHIP:DMG: [ - [1659971467.437388][3458:3458] CHIP:DMG: AttributePathIB = - [1659971467.437423][3458:3458] CHIP:DMG: { - [1659971467.437451][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971467.437482][3458:3458] CHIP:DMG: Cluster = 0x37, - [1659971467.437513][3458:3458] CHIP:DMG: Attribute = 0x0000_0004, - [1659971467.437542][3458:3458] CHIP:DMG: } - [1659971467.437569][3458:3458] CHIP:DMG: - [1659971467.437594][3458:3458] CHIP:DMG: ], - [1659971467.437622][3458:3458] CHIP:DMG: - [1659971467.437648][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971467.437672][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971467.437693][3458:3458] CHIP:DMG: }, - [1659971467.437765][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971467.437848][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971467.437877][3458:3458] CHIP:DMG: Cluster 37, Attribute 3 is dirty - [1659971467.437898][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0037 Endpoint=0 AttributeId=0x0000_0003 (expanded=0) - [1659971467.437926][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0037 e=0 p=v - [1659971467.437958][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "DUT reads a attribute value from TH." - PICS: DGETH.S.A0005 - verification: | - ./chip-tool ethernetnetworkdiagnostics read collision-count 1 0 - - Verify the value of CollisionCount is in range uint64 on TH(all-clusters-app) Log - - [1659971467.437214][3458:3458] CHIP:IM: Received Read request - [1659971467.437292][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971467.437318][3458:3458] CHIP:DMG: { - [1659971467.437339][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971467.437365][3458:3458] CHIP:DMG: [ - [1659971467.437388][3458:3458] CHIP:DMG: AttributePathIB = - [1659971467.437423][3458:3458] CHIP:DMG: { - [1659971467.437451][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971467.437482][3458:3458] CHIP:DMG: Cluster = 0x37, - [1659971467.437513][3458:3458] CHIP:DMG: Attribute = 0x0000_0005, - [1659971467.437542][3458:3458] CHIP:DMG: } - [1659971467.437569][3458:3458] CHIP:DMG: - [1659971467.437594][3458:3458] CHIP:DMG: ], - [1659971467.437622][3458:3458] CHIP:DMG: - [1659971467.437648][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971467.437672][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971467.437693][3458:3458] CHIP:DMG: }, - [1659971467.437765][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971467.437848][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971467.437877][3458:3458] CHIP:DMG: Cluster 37, Attribute 3 is dirty - [1659971467.437898][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0037 Endpoint=0 AttributeId=0x0000_0003 (expanded=0) - [1659971467.437926][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0037 e=0 p=v - [1659971467.437958][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "DUT reads a attribute value from TH." - PICS: DGETH.S.A0006 - verification: | - ./chip-tool ethernetnetworkdiagnostics read overrun-count 1 0 - - Verify the value of OverrunCount is in range uint64 on TH(all-clusters-app) Log - - [1659971467.437214][3458:3458] CHIP:IM: Received Read request - [1659971467.437292][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971467.437318][3458:3458] CHIP:DMG: { - [1659971467.437339][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971467.437365][3458:3458] CHIP:DMG: [ - [1659971467.437388][3458:3458] CHIP:DMG: AttributePathIB = - [1659971467.437423][3458:3458] CHIP:DMG: { - [1659971467.437451][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971467.437482][3458:3458] CHIP:DMG: Cluster = 0x37, - [1659971467.437513][3458:3458] CHIP:DMG: Attribute = 0x0000_0006, - [1659971467.437542][3458:3458] CHIP:DMG: } - [1659971467.437569][3458:3458] CHIP:DMG: - [1659971467.437594][3458:3458] CHIP:DMG: ], - [1659971467.437622][3458:3458] CHIP:DMG: - [1659971467.437648][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971467.437672][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971467.437693][3458:3458] CHIP:DMG: }, - [1659971467.437765][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971467.437848][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971467.437877][3458:3458] CHIP:DMG: Cluster 37, Attribute 3 is dirty - [1659971467.437898][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0037 Endpoint=0 AttributeId=0x0000_0003 (expanded=0) - [1659971467.437926][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0037 e=0 p=v - [1659971467.437958][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "DUT reads a attribute value from TH." - PICS: DGETH.S.A0007 - verification: | - ./chip-tool ethernetnetworkdiagnostics read carrier-detect 1 0 - - Verify the value of CarrierDetect is either bool or null on TH(all-clusters-app) Log - - [1659971467.437214][3458:3458] CHIP:IM: Received Read request - [1659971467.437292][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971467.437318][3458:3458] CHIP:DMG: { - [1659971467.437339][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971467.437365][3458:3458] CHIP:DMG: [ - [1659971467.437388][3458:3458] CHIP:DMG: AttributePathIB = - [1659971467.437423][3458:3458] CHIP:DMG: { - [1659971467.437451][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971467.437482][3458:3458] CHIP:DMG: Cluster = 0x37, - [1659971467.437513][3458:3458] CHIP:DMG: Attribute = 0x0000_0007, - [1659971467.437542][3458:3458] CHIP:DMG: } - [1659971467.437569][3458:3458] CHIP:DMG: - [1659971467.437594][3458:3458] CHIP:DMG: ], - [1659971467.437622][3458:3458] CHIP:DMG: - [1659971467.437648][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971467.437672][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971467.437693][3458:3458] CHIP:DMG: }, - [1659971467.437765][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971467.437848][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971467.437877][3458:3458] CHIP:DMG: Cluster 37, Attribute 3 is dirty - [1659971467.437898][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0037 Endpoint=0 AttributeId=0x0000_0003 (expanded=0) - [1659971467.437926][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0037 e=0 p=v - [1659971467.437958][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "DUT reads a attribute value from TH." - PICS: DGETH.S.A0008 - verification: | - ./chip-tool ethernetnetworkdiagnostics read time-since-reset 1 0 - - Verify the value of TimeSinceReset is in range uint64 on TH(all-clusters-app) Log - - [1659971467.437214][3458:3458] CHIP:IM: Received Read request - [1659971467.437292][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971467.437318][3458:3458] CHIP:DMG: { - [1659971467.437339][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971467.437365][3458:3458] CHIP:DMG: [ - [1659971467.437388][3458:3458] CHIP:DMG: AttributePathIB = - [1659971467.437423][3458:3458] CHIP:DMG: { - [1659971467.437451][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971467.437482][3458:3458] CHIP:DMG: Cluster = 0x37, - [1659971467.437513][3458:3458] CHIP:DMG: Attribute = 0x0000_0008, - [1659971467.437542][3458:3458] CHIP:DMG: } - [1659971467.437569][3458:3458] CHIP:DMG: - [1659971467.437594][3458:3458] CHIP:DMG: ], - [1659971467.437622][3458:3458] CHIP:DMG: - [1659971467.437648][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971467.437672][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971467.437693][3458:3458] CHIP:DMG: }, - [1659971467.437765][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971467.437848][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971467.437877][3458:3458] CHIP:DMG: Cluster 37, Attribute 3 is dirty - [1659971467.437898][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0037 Endpoint=0 AttributeId=0x0000_0003 (expanded=0) - [1659971467.437926][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0037 e=0 p=v - [1659971467.437958][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_3_1_Simulated.yaml new file mode 100644 index 00000000000000..da51a18383597e --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGETH_3_1_Simulated.yaml @@ -0,0 +1,73 @@ +# 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. + +name: 47.3.1. [TC-DGETH-3.1] Attributes [DUT as Client] + +PICS: + - DGETH.C + +config: + nodeId: 0x12344321 + cluster: "Ethernet Network Diagnostics" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute: PHYRate" + PICS: DGETH.C.A0000 + wait: "readAttribute" + attribute: "PHYRate" + + - label: "Read attribute: FullDuplex" + PICS: DGETH.C.A0001 + wait: "readAttribute" + attribute: "FullDuplex" + + - label: "Read attribute: PacketRxCount" + PICS: DGETH.C.A0002 + wait: "readAttribute" + attribute: "PacketRxCount" + + - label: "Read attribute: PacketTxCount" + PICS: DGETH.C.A0003 + wait: "readAttribute" + attribute: "PacketTxCount" + + - label: "Read attribute: TxErrCount" + PICS: DGETH.C.A0004 + wait: "readAttribute" + attribute: "TxErrCount" + + - label: "Read attribute: CollisionCount" + PICS: DGETH.C.A0005 + wait: "readAttribute" + attribute: "CollisionCount" + + - label: "Read attribute: OverrunCount" + PICS: DGETH.C.A0006 + wait: "readAttribute" + attribute: "OverrunCount" + + - label: "Read attribute: CarrierDetect" + PICS: DGETH.C.A0007 + wait: "readAttribute" + attribute: "CarrierDetect" + + - label: "Read attribute: TimeSinceReset" + PICS: DGETH.C.A0008 + wait: "readAttribute" + attribute: "TimeSinceReset" diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_3_2.yaml deleted file mode 100644 index d3e780fe83dfb7..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGETH_3_2.yaml +++ /dev/null @@ -1,70 +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: 3.3.2. [TC-DGETH-3.2] Command Generated {DUT_Client}] - -PICS: - - DGETH.C - -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetCounts to TH." - PICS: DGETH.C.C00.Tx - verification: | - Verify Command data recieved from running the below command is a success - - ./chip-tool ethernetnetworkdiagnostics reset-counts 1 0 - - Verify Command data recieved from running the below command is a success on TH(all-clusters-app) Log - - [1659960382.148753][4826:4826] CHIP:DMG: InvokeRequestMessage = - [1659960382.148777][4826:4826] CHIP:DMG: { - [1659960382.148798][4826:4826] CHIP:DMG: suppressResponse = false, - [1659960382.148822][4826:4826] CHIP:DMG: timedRequest = false, - [1659960382.148856][4826:4826] CHIP:DMG: InvokeRequests = - [1659960382.148889][4826:4826] CHIP:DMG: [ - [1659960382.148921][4826:4826] CHIP:DMG: CommandDataIB = - [1659960382.148948][4826:4826] CHIP:DMG: { - [1659960382.148981][4826:4826] CHIP:DMG: CommandPathIB = - [1659960382.149013][4826:4826] CHIP:DMG: { - [1659960382.149051][4826:4826] CHIP:DMG: EndpointId = 0x0, - [1659960382.149081][4826:4826] CHIP:DMG: ClusterId = 0x37, - [1659960382.149119][4826:4826] CHIP:DMG: CommandId = 0x0, - [1659960382.149149][4826:4826] CHIP:DMG: }, - [1659960382.149178][4826:4826] CHIP:DMG: - [1659960382.149212][4826:4826] CHIP:DMG: CommandFields = - [1659960382.149239][4826:4826] CHIP:DMG: { - [1659960382.149276][4826:4826] CHIP:DMG: }, - [1659960382.149302][4826:4826] CHIP:DMG: }, - [1659960382.149337][4826:4826] CHIP:DMG: - [1659960382.149358][4826:4826] CHIP:DMG: ], - [1659960382.149392][4826:4826] CHIP:DMG: - [1659960382.149413][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960382.149433][4826:4826] CHIP:DMG: }, - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_3_2_Simulated.yaml new file mode 100644 index 00000000000000..8f9fec3dc82f91 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGETH_3_2_Simulated.yaml @@ -0,0 +1,32 @@ +# 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. + +name: 47.3.2. [TC-DGETH-3.2] Command Generated DUT as Client] + +PICS: + - DGETH.C + +config: + nodeId: 0x12344321 + cluster: "Ethernet Network Diagnostics" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "DUT sends ResetCounts to TH" + PICS: DGETH.C.C00.Tx + wait: "ResetCounts" diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_3_1.yaml deleted file mode 100644 index f59e19c6b8c057..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGSW_3_1.yaml +++ /dev/null @@ -1,163 +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: 3.3.1. [TC-DGSW-3.1] Attributes [{DUT_Client}] - -PICS: - - DGSW.C - -config: - nodeId: 0x12344321 - cluster: "Basic" - 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: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT reads a list of ThreadMetrics struct attribute from TH." - PICS: DGSW.C.A0000 - verification: | - ./chip-tool softwarediagnostics read thread-metrics 1 0 - - Verify the thread-metrics attribute has entries with ThreadMetrics Struct on TH(all-clusters-app) Log: - - [1659971993.647303][3458:3458] CHIP:IM: Received Read request - [1659971993.647386][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971993.647414][3458:3458] CHIP:DMG: { - [1659971993.647436][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971993.647462][3458:3458] CHIP:DMG: [ - [1659971993.647486][3458:3458] CHIP:DMG: AttributePathIB = - [1659971993.647514][3458:3458] CHIP:DMG: { - [1659971993.647542][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971993.647578][3458:3458] CHIP:DMG: Cluster = 0x34, - [1659971993.647607][3458:3458] CHIP:DMG: Attribute = 0x0000_0000, - [1659971993.647634][3458:3458] CHIP:DMG: } - [1659971993.647663][3458:3458] CHIP:DMG: - [1659971993.647687][3458:3458] CHIP:DMG: ], - [1659971993.647716][3458:3458] CHIP:DMG: - [1659971993.647742][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971993.647767][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971993.647791][3458:3458] CHIP:DMG: }, - [1659971993.647866][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971993.647967][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971993.647998][3458:3458] CHIP:DMG: Cluster 34, Attribute 0 is dirty - [1659971993.648020][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0034 Endpoint=0 AttributeId=0x0000_0000 (expanded=0) - [1659971993.648047][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0034 e=0 p=v - [1659971993.648080][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "DUT reads an attribute value from TH." - PICS: DGSW.C.A0001 - verification: | - ./chip-tool softwarediagnostics read current-heap-free 1 0 - - Verify the value of CurrentHeapFree is in range uint64 on TH(all-clusters-app) Log: - - [1659972026.540043][3458:3458] CHIP:IM: Received Read request - [1659972026.540208][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659972026.540273][3458:3458] CHIP:DMG: { - [1659972026.540325][3458:3458] CHIP:DMG: AttributePathIBs = - [1659972026.540387][3458:3458] CHIP:DMG: [ - [1659972026.540444][3458:3458] CHIP:DMG: AttributePathIB = - [1659972026.540510][3458:3458] CHIP:DMG: { - [1659972026.540577][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659972026.540661][3458:3458] CHIP:DMG: Cluster = 0x34, - [1659972026.540737][3458:3458] CHIP:DMG: Attribute = 0x0000_0001, - [1659972026.540810][3458:3458] CHIP:DMG: } - [1659972026.540878][3458:3458] CHIP:DMG: - [1659972026.540939][3458:3458] CHIP:DMG: ], - [1659972026.541006][3458:3458] CHIP:DMG: - [1659972026.541118][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659972026.541182][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659972026.541239][3458:3458] CHIP:DMG: }, - [1659972026.541397][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659972026.541584][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659972026.541651][3458:3458] CHIP:DMG: Cluster 34, Attribute 1 is dirty - [1659972026.541702][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0034 Endpoint=0 AttributeId=0x0000_0001 (expanded=0) - [1659972026.541773][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0034 e=0 p=v - [1659972026.541845][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "DUT reads an attribute value from TH." - PICS: DGSW.C.A0002 - verification: | - ./chip-tool softwarediagnostics read current-heap-used 1 0 - - Verify the value of CurrentHeapUsed is in range uint64 on TH(all-clusters-app) Log: - - [1659972063.411625][3458:3458] CHIP:IM: Received Read request - [1659972063.411702][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659972063.411740][3458:3458] CHIP:DMG: { - [1659972063.411763][3458:3458] CHIP:DMG: AttributePathIBs = - [1659972063.411789][3458:3458] CHIP:DMG: [ - [1659972063.411822][3458:3458] CHIP:DMG: AttributePathIB = - [1659972063.411852][3458:3458] CHIP:DMG: { - [1659972063.411892][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659972063.411932][3458:3458] CHIP:DMG: Cluster = 0x34, - [1659972063.411964][3458:3458] CHIP:DMG: Attribute = 0x0000_0002, - [1659972063.412003][3458:3458] CHIP:DMG: } - [1659972063.412032][3458:3458] CHIP:DMG: - [1659972063.412069][3458:3458] CHIP:DMG: ], - [1659972063.412106][3458:3458] CHIP:DMG: - [1659972063.412133][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659972063.412165][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659972063.412191][3458:3458] CHIP:DMG: }, - [1659972063.412273][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659972063.412375][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659972063.412403][3458:3458] CHIP:DMG: Cluster 34, Attribute 2 is dirty - [1659972063.412424][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0034 Endpoint=0 AttributeId=0x0000_0002 (expanded=0) - [1659972063.412451][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0034 e=0 p=v - [1659972063.412483][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "DUT reads an attribute value from TH." - PICS: DGSW.C.A0003 - verification: | - ./chip-tool softwarediagnostics read current-heap-high-watermark 1 0 - - Verify the value of CurrentHeapHighWatermark is in range uint64 on TH(all-clusters-app) Log: - - [1659972088.497642][3458:3458] CHIP:IM: Received Read request - [1659972088.497747][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659972088.497787][3458:3458] CHIP:DMG: { - [1659972088.497816][3458:3458] CHIP:DMG: AttributePathIBs = - [1659972088.497854][3458:3458] CHIP:DMG: [ - [1659972088.497889][3458:3458] CHIP:DMG: AttributePathIB = - [1659972088.497928][3458:3458] CHIP:DMG: { - [1659972088.497970][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659972088.498016][3458:3458] CHIP:DMG: Cluster = 0x34, - [1659972088.498061][3458:3458] CHIP:DMG: Attribute = 0x0000_0003, - [1659972088.498103][3458:3458] CHIP:DMG: } - [1659972088.498144][3458:3458] CHIP:DMG: - [1659972088.498180][3458:3458] CHIP:DMG: ], - [1659972088.498219][3458:3458] CHIP:DMG: - [1659972088.498257][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659972088.498294][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659972088.498328][3458:3458] CHIP:DMG: }, - [1659972088.498431][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659972088.498545][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659972088.498587][3458:3458] CHIP:DMG: Cluster 34, Attribute 3 is dirty - [1659972088.498618][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0034 Endpoint=0 AttributeId=0x0000_0003 (expanded=0) - [1659972088.498657][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0034 e=0 p=v - [1659972088.498702][3458:3458] CHIP:DMG: AccessControl: allowed - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_3_1_Simulated.yaml new file mode 100644 index 00000000000000..8481a256324e49 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGSW_3_1_Simulated.yaml @@ -0,0 +1,48 @@ +# 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. + +name: 44.3.1. [TC-DGSW-3.1] Attributes [DUT as Client] + +PICS: + - DGSW.C + +config: + nodeId: 0x12344321 + cluster: "Software Diagnostics" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute: ThreadMetrics" + PICS: DGSW.C.A0000 + wait: "readAttribute" + attribute: "ThreadMetrics" + + - label: "Read attribute: CurrentHeapFree" + PICS: DGSW.C.A0001 + wait: "readAttribute" + attribute: "CurrentHeapFree" + + - label: "Read attribute: CurrentHeapUsed" + PICS: DGSW.C.A0002 + wait: "readAttribute" + attribute: "CurrentHeapUsed" + + - label: "Read attribute: CurrentHeapHighWatermark" + PICS: DGSW.C.A0003 + wait: "readAttribute" + attribute: "CurrentHeapHighWatermark" diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_3_2.yaml deleted file mode 100644 index 8e04e498052098..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGSW_3_2.yaml +++ /dev/null @@ -1,68 +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: 3.3.2. [TC-DGSW-3.2] Commands Generated [{DUT_Client}] - -PICS: - - DGSW.C - -config: - nodeId: 0x12344321 - cluster: "Basic" - 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: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetWatermarks to TH." - PICS: DGSW.C.C00.Tx - verification: | - ./chip-tool softwarediagnostics reset-watermarks 1 0 - - Verify the success response on TH(all-clusters-app) Log: - - [1659960382.148753][4826:4826] CHIP:DMG: InvokeRequestMessage = - [1659960382.148777][4826:4826] CHIP:DMG: { - [1659960382.148798][4826:4826] CHIP:DMG: suppressResponse = false, - [1659960382.148822][4826:4826] CHIP:DMG: timedRequest = false, - [1659960382.148856][4826:4826] CHIP:DMG: InvokeRequests = - [1659960382.148889][4826:4826] CHIP:DMG: [ - [1659960382.148921][4826:4826] CHIP:DMG: CommandDataIB = - [1659960382.148948][4826:4826] CHIP:DMG: { - [1659960382.148981][4826:4826] CHIP:DMG: CommandPathIB = - [1659960382.149013][4826:4826] CHIP:DMG: { - [1659960382.149051][4826:4826] CHIP:DMG: EndpointId = 0x0, - [1659960382.149081][4826:4826] CHIP:DMG: ClusterId = 0x34, - [1659960382.149119][4826:4826] CHIP:DMG: CommandId = 0x0, - [1659960382.149149][4826:4826] CHIP:DMG: }, - [1659960382.149178][4826:4826] CHIP:DMG: - [1659960382.149212][4826:4826] CHIP:DMG: CommandFields = - [1659960382.149239][4826:4826] CHIP:DMG: { - [1659960382.149276][4826:4826] CHIP:DMG: }, - [1659960382.149302][4826:4826] CHIP:DMG: }, - [1659960382.149337][4826:4826] CHIP:DMG: - [1659960382.149358][4826:4826] CHIP:DMG: ], - [1659960382.149392][4826:4826] CHIP:DMG: - [1659960382.149413][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960382.149433][4826:4826] CHIP:DMG: }, - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_3_2_Simulated.yaml new file mode 100644 index 00000000000000..221e0a80ab17a1 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGSW_3_2_Simulated.yaml @@ -0,0 +1,32 @@ +# 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. + +name: 44.3.2. [TC-DGSW-3.2] Commands Generated [DUT as Client] + +PICS: + - DGSW.C + +config: + nodeId: 0x12344321 + cluster: "Software Diagnostics" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "DUT sends ResetWatermarks to TH" + PICS: DGSW.C.C00.Tx + wait: "ResetWatermarks" diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_1.yaml deleted file mode 100644 index ff255ad58bd966..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_1.yaml +++ /dev/null @@ -1,372 +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: 3.3.1. [TC-DGWIFI-3.1]Attributes [DUT as Client] - -PICS: - - DGWIFI.C.A - - DGWIFI.C - -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "TH reads BSSID attribute from DUT." - PICS: DGWIFI.S.A0000 - verification: | - ./chip-tool wifinetworkdiagnostics read bssid 1 0 - - verify the " bssid Received Read response" on the TH (all-cluster-app) log: - - [1659959901.791873][4826:4826] CHIP:IM: Received Read request - [1659959901.791946][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659959901.791970][4826:4826] CHIP:DMG: { - [1659959901.791989][4826:4826] CHIP:DMG: AttributePathIBs = - [1659959901.792012][4826:4826] CHIP:DMG: [ - [1659959901.792033][4826:4826] CHIP:DMG: AttributePathIB = - [1659959901.792064][4826:4826] CHIP:DMG: { - [1659959901.792091][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659959901.792121][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659959901.792151][4826:4826] CHIP:DMG: Attribute = 0x0000_0000, - [1659959901.792178][4826:4826] CHIP:DMG: } - [1659959901.792203][4826:4826] CHIP:DMG: - [1659959901.792227][4826:4826] CHIP:DMG: ], - [1659959901.792251][4826:4826] CHIP:DMG: - [1659959901.792274][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659959901.792296][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659959901.792316][4826:4826] CHIP:DMG: }, - disabled: true - - - label: "DUT reads a SecurityType attribute value from TH." - PICS: DGWIFI.S.A0001 - verification: | - ./chip-tool wifinetworkdiagnostics read security-type 1 0 - - verify the " security-type Received Read response" on the TH (all-cluster-app) log: - - [1659959989.666920][4826:4826] CHIP:IM: Received Read request - [1659959989.667091][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659959989.667158][4826:4826] CHIP:DMG: { - [1659959989.667214][4826:4826] CHIP:DMG: AttributePathIBs = - [1659959989.667279][4826:4826] CHIP:DMG: [ - [1659959989.667342][4826:4826] CHIP:DMG: AttributePathIB = - [1659959989.667419][4826:4826] CHIP:DMG: { - [1659959989.667491][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659959989.667582][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659959989.667668][4826:4826] CHIP:DMG: Attribute = 0x0000_0001, - [1659959989.667746][4826:4826] CHIP:DMG: } - [1659959989.667817][4826:4826] CHIP:DMG: - [1659959989.667881][4826:4826] CHIP:DMG: ], - [1659959989.667950][4826:4826] CHIP:DMG: - [1659959989.668017][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659959989.668082][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659959989.668143][4826:4826] CHIP:DMG: }, - disabled: true - - - label: "DUT reads a WiFiVersion attribute value from TH." - PICS: DGWIFI.S.A0002 - verification: | - ./chip-tool wifinetworkdiagnostics read wi-fi-version 1 0 - - verify the " wi-fi-version Received Read response" on the TH (all-cluster-app) log: - [1659960013.130130][4826:4826] CHIP:IM: Received Read request - [1659960013.130211][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960013.130252][4826:4826] CHIP:DMG: { - [1659960013.130276][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960013.130303][4826:4826] CHIP:DMG: [ - [1659960013.130339][4826:4826] CHIP:DMG: AttributePathIB = - [1659960013.130371][4826:4826] CHIP:DMG: { - [1659960013.130413][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960013.130450][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960013.130492][4826:4826] CHIP:DMG: Attribute = 0x0000_0002, - [1659960013.130523][4826:4826] CHIP:DMG: } - [1659960013.130561][4826:4826] CHIP:DMG: - [1659960013.130590][4826:4826] CHIP:DMG: ], - [1659960013.130619][4826:4826] CHIP:DMG: - [1659960013.130657][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960013.130683][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960013.130716][4826:4826] CHIP:DMG: }, - disabled: true - - - label: "DUT reads a ChannelNumber attribute value from TH." - PICS: DGWIFI.S.A0003 - verification: | - ./chip-tool wifinetworkdiagnostics read channel-number 1 0 - - verify the " channel-number Received Read response" on the TH (all-cluster-app) log: - [1659960026.962902][4826:4826] CHIP:IM: Received Read request - [1659960026.962973][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960026.963007][4826:4826] CHIP:DMG: { - [1659960026.963026][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960026.963058][4826:4826] CHIP:DMG: [ - [1659960026.963080][4826:4826] CHIP:DMG: AttributePathIB = - [1659960026.963111][4826:4826] CHIP:DMG: { - [1659960026.963143][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960026.963172][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960026.963209][4826:4826] CHIP:DMG: Attribute = 0x0000_0003, - [1659960026.963234][4826:4826] CHIP:DMG: } - [1659960026.963271][4826:4826] CHIP:DMG: - [1659960026.963295][4826:4826] CHIP:DMG: ], - [1659960026.963326][4826:4826] CHIP:DMG: - [1659960026.963350][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960026.963372][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960026.963400][4826:4826] CHIP:DMG: }, - [1659960026.963475][4826:4826] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: "DUT reads a RSSI attribute value from TH." - PICS: DGWIFI.S.A0004 - verification: | - ./chip-tool wifinetworkdiagnostics read rssi 1 0 - - verify the " rssi Received Read response" on the TH (all-cluster-app) log: - - [1659960043.760899][4826:4826] CHIP:IM: Received Read request - [1659960043.760997][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960043.761024][4826:4826] CHIP:DMG: { - [1659960043.761046][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960043.761071][4826:4826] CHIP:DMG: [ - [1659960043.761095][4826:4826] CHIP:DMG: AttributePathIB = - [1659960043.761130][4826:4826] CHIP:DMG: { - [1659960043.761158][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960043.761188][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960043.761219][4826:4826] CHIP:DMG: Attribute = 0x0000_0004, - [1659960043.761248][4826:4826] CHIP:DMG: } - [1659960043.761275][4826:4826] CHIP:DMG: - [1659960043.761302][4826:4826] CHIP:DMG: ], - [1659960043.761329][4826:4826] CHIP:DMG: - [1659960043.761354][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960043.761378][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960043.761401][4826:4826] CHIP:DMG: }, - disabled: true - - - label: "DUT reads a BeaconLostCount attribute value from TH." - PICS: DGWIFI.S.A0005 - verification: | - ./chip-tool wifinetworkdiagnostics read beacon-lost-count 1 0 - - verify the " beacon-lost-count Received Read response" on the TH (all-cluster-app) log: - [1659960064.667073][4826:4826] CHIP:IM: Received Read request - [1659960064.667144][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960064.667168][4826:4826] CHIP:DMG: { - [1659960064.667203][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960064.667227][4826:4826] CHIP:DMG: [ - [1659960064.667258][4826:4826] CHIP:DMG: AttributePathIB = - [1659960064.667290][4826:4826] CHIP:DMG: { - [1659960064.667325][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960064.667356][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960064.667392][4826:4826] CHIP:DMG: Attribute = 0x0000_0005, - [1659960064.667419][4826:4826] CHIP:DMG: } - [1659960064.667451][4826:4826] CHIP:DMG: - [1659960064.667475][4826:4826] CHIP:DMG: ], - [1659960064.667508][4826:4826] CHIP:DMG: - [1659960064.667531][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960064.667553][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960064.667580][4826:4826] CHIP:DMG: }, - disabled: true - - - label: "DUT reads a BeaconRxCount attribute value from TH." - PICS: DGWIFI.S.A0006 - verification: | - ./chip-tool wifinetworkdiagnostics read beacon-rx-count 1 0 - - verify the " beacon-rx-count Received Read response" on the TH (all-cluster-app) log: - [1659960081.979736][4826:4826] CHIP:IM: Received Read request - [1659960081.979809][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960081.979832][4826:4826] CHIP:DMG: { - [1659960081.979851][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960081.979874][4826:4826] CHIP:DMG: [ - [1659960081.979895][4826:4826] CHIP:DMG: AttributePathIB = - [1659960081.979924][4826:4826] CHIP:DMG: { - [1659960081.979950][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960081.979979][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960081.980007][4826:4826] CHIP:DMG: Attribute = 0x0000_0006, - [1659960081.980032][4826:4826] CHIP:DMG: } - [1659960081.980059][4826:4826] CHIP:DMG: - [1659960081.980082][4826:4826] CHIP:DMG: ], - [1659960081.980106][4826:4826] CHIP:DMG: - [1659960081.980129][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960081.980151][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960081.980171][4826:4826] CHIP:DMG: }, - disabled: true - - - label: "DUT reads a PacketMultiRxCount attribute value from TH." - PICS: DGWIFI.S.A0007 - verification: | - ./chip-tool wifinetworkdiagnostics read packet-multicast-rx-count 1 0 - - verify the " packet-multicast-rx-count Received Read response" on the TH (all-cluster-app) log: - - [1659960106.003457][4826:4826] CHIP:IM: Received Read request - [1659960106.003544][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960106.003573][4826:4826] CHIP:DMG: { - [1659960106.003597][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960106.003626][4826:4826] CHIP:DMG: [ - [1659960106.003654][4826:4826] CHIP:DMG: AttributePathIB = - [1659960106.003691][4826:4826] CHIP:DMG: { - [1659960106.003725][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960106.003762][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960106.003800][4826:4826] CHIP:DMG: Attribute = 0x0000_0007, - [1659960106.003830][4826:4826] CHIP:DMG: } - [1659960106.003860][4826:4826] CHIP:DMG: - [1659960106.003890][4826:4826] CHIP:DMG: ], - [1659960106.003921][4826:4826] CHIP:DMG: - [1659960106.003950][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960106.003977][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960106.004007][4826:4826] CHIP:DMG: }, - [1659960106.004085][4826:4826] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: "DUT reads a PacketMultiTxCount attribute value from TH." - PICS: DGWIFI.S.A0008 - verification: | - ./chip-tool wifinetworkdiagnostics read packet-multicast-tx-count 1 0 - - verify the " packet-multicast-tx-count Received Read response" on the TH (all-cluster-app) log: - - [1659960130.770866][4826:4826] CHIP:IM: Received Read request - [1659960130.770973][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960130.771002][4826:4826] CHIP:DMG: { - [1659960130.771025][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960130.771052][4826:4826] CHIP:DMG: [ - [1659960130.771077][4826:4826] CHIP:DMG: AttributePathIB = - [1659960130.771106][4826:4826] CHIP:DMG: { - [1659960130.771143][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960130.771176][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960130.771212][4826:4826] CHIP:DMG: Attribute = 0x0000_0008, - [1659960130.771244][4826:4826] CHIP:DMG: } - [1659960130.771272][4826:4826] CHIP:DMG: - [1659960130.771301][4826:4826] CHIP:DMG: ], - [1659960130.771330][4826:4826] CHIP:DMG: - [1659960130.771357][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960130.771382][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960130.771409][4826:4826] CHIP:DMG: }, - disabled: true - - - label: "DUT reads a PacketUniRxCount attribute value from TH." - PICS: DGWIFI.S.A0009 - verification: | - ./chip-tool wifinetworkdiagnostics read packet-unicast-rx-count 1 0 - - - verify the " packet-unicast-rx-count Received Read response" on the TH (all-cluster-app) log: - - [1659960152.073162][4826:4826] CHIP:IM: Received Read request - [1659960152.073238][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960152.073264][4826:4826] CHIP:DMG: { - [1659960152.073283][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960152.073307][4826:4826] CHIP:DMG: [ - [1659960152.073328][4826:4826] CHIP:DMG: AttributePathIB = - [1659960152.073400][4826:4826] CHIP:DMG: { - [1659960152.073455][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960152.073504][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960152.073560][4826:4826] CHIP:DMG: Attribute = 0x0000_0009, - [1659960152.073595][4826:4826] CHIP:DMG: } - [1659960152.073638][4826:4826] CHIP:DMG: - [1659960152.073688][4826:4826] CHIP:DMG: ], - [1659960152.073722][4826:4826] CHIP:DMG: - [1659960152.073746][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960152.073768][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960152.073797][4826:4826] CHIP:DMG: }, - disabled: true - - - label: "DUT reads a PacketUniTxCount attribute value from TH." - PICS: DGWIFI.S.A000a - verification: | - ./chip-tool wifinetworkdiagnostics read packet-unicast-tx-count 1 0 - - verify the " packet-unicast-tx-count Received Read response" on the TH (all-cluster-app) log: - - [1659960169.216377][4826:4826] CHIP:IM: Received Read request - [1659960169.216476][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960169.216504][4826:4826] CHIP:DMG: { - [1659960169.216527][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960169.216554][4826:4826] CHIP:DMG: [ - [1659960169.216579][4826:4826] CHIP:DMG: AttributePathIB = - [1659960169.216611][4826:4826] CHIP:DMG: { - [1659960169.216642][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960169.216677][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960169.216711][4826:4826] CHIP:DMG: Attribute = 0x0000_000A, - [1659960169.216742][4826:4826] CHIP:DMG: } - [1659960169.216773][4826:4826] CHIP:DMG: - [1659960169.216801][4826:4826] CHIP:DMG: ], - [1659960169.216830][4826:4826] CHIP:DMG: - [1659960169.216857][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960169.216883][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960169.216907][4826:4826] CHIP:DMG: }, - disabled: true - - - label: "DUT reads CurrentMaxRate attribute value from TH." - PICS: DGWIFI.S.A000b - verification: | - ./chip-tool wifinetworkdiagnostics read current-max-rate 1 0 - - verify the " current-max-rate Received Read response" on the TH (all-cluster-app) log: - [1659960187.413661][4826:4826] CHIP:IM: Received Read request - [1659960187.413732][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960187.413755][4826:4826] CHIP:DMG: { - [1659960187.413774][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960187.413797][4826:4826] CHIP:DMG: [ - [1659960187.413818][4826:4826] CHIP:DMG: AttributePathIB = - [1659960187.413846][4826:4826] CHIP:DMG: { - [1659960187.413871][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960187.413902][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960187.413932][4826:4826] CHIP:DMG: Attribute = 0x0000_000B, - [1659960187.413959][4826:4826] CHIP:DMG: } - [1659960187.413985][4826:4826] CHIP:DMG: - [1659960187.414009][4826:4826] CHIP:DMG: ], - [1659960187.414034][4826:4826] CHIP:DMG: - [1659960187.414056][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960187.414078][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960187.414098][4826:4826] CHIP:DMG: }, - disabled: true - - - label: "DUT reads a OverrunCount attribute value from TH." - PICS: DGWIFI.S.A000c - verification: | - ./chip-tool wifinetworkdiagnostics read overrun-count 1 0 - - verify the " overrun-count Received Read response" on the TH (all-cluster-app) log: - - [1659960222.155944][4826:4826] CHIP:IM: Received Read request - [1659960222.156039][4826:4826] CHIP:DMG: ReadRequestMessage = - [1659960222.156073][4826:4826] CHIP:DMG: { - [1659960222.156101][4826:4826] CHIP:DMG: AttributePathIBs = - [1659960222.156134][4826:4826] CHIP:DMG: [ - [1659960222.156165][4826:4826] CHIP:DMG: AttributePathIB = - [1659960222.156206][4826:4826] CHIP:DMG: { - [1659960222.156243][4826:4826] CHIP:DMG: Endpoint = 0x0, - [1659960222.156290][4826:4826] CHIP:DMG: Cluster = 0x36, - [1659960222.156333][4826:4826] CHIP:DMG: Attribute = 0x0000_000C, - [1659960222.156372][4826:4826] CHIP:DMG: } - [1659960222.156411][4826:4826] CHIP:DMG: - [1659960222.156489][4826:4826] CHIP:DMG: ], - [1659960222.156526][4826:4826] CHIP:DMG: - [1659960222.156560][4826:4826] CHIP:DMG: isFabricFiltered = true, - [1659960222.156593][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960222.156629][4826:4826] CHIP:DMG: }, - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_1_Simulated.yaml new file mode 100644 index 00000000000000..eae91de4b5e79d --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_1_Simulated.yaml @@ -0,0 +1,94 @@ +# 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. + +name: 53.3.1. [TC-DGWIFI-3.1] Attributes [DUT as Client] + +PICS: + - DGWIFI.C.A + - DGWIFI.C + +config: + nodeId: 0x12344321 + cluster: "WiFi Network Diagnostics" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute: BSSID" + PICS: DGWIFI.C.A0000 + wait: "readAttribute" + attribute: "BSSID" + + - label: "Read attribute: SecurityType" + PICS: DGWIFI.C.A0001 + wait: "readAttribute" + attribute: "SecurityType" + + - label: "Read attribute: WiFiVersion" + PICS: DGWIFI.C.A0002 + wait: "readAttribute" + attribute: "WiFiVersion" + + - label: "Read attribute: ChannelNumber" + PICS: DGWIFI.C.A0003 + wait: "readAttribute" + attribute: "ChannelNumber" + + - label: "Read attribute: RSSI" + PICS: DGWIFI.C.A0004 + wait: "readAttribute" + attribute: "RSSI" + + - label: "Read attribute: BeaconLostCount" + PICS: DGWIFI.C.A0005 + wait: "readAttribute" + attribute: "BeaconLostCount" + + - label: "Read attribute: BeaconRxCount" + PICS: DGWIFI.C.A0006 + wait: "readAttribute" + attribute: "BeaconRxCount" + + - label: "Read attribute: PacketMulticastRxCount" + PICS: DGWIFI.C.A0007 + wait: "readAttribute" + attribute: "PacketMulticastRxCount" + + - label: "Read attribute: PacketMulticastTxCount" + PICS: DGWIFI.C.A0008 + wait: "readAttribute" + attribute: "PacketMulticastTxCount" + + - label: "Read attribute: PacketUnicastRxCount" + PICS: DGWIFI.C.A0009 + wait: "readAttribute" + attribute: "PacketUnicastRxCount" + + - label: "Read attribute: PacketUnicastTxCount" + PICS: DGWIFI.C.A000a + wait: "readAttribute" + attribute: "PacketUnicastTxCount" + + - label: "Read attribute: CurrentMaxRate" + PICS: DGWIFI.C.A000b + wait: "readAttribute" + attribute: "CurrentMaxRate" + + - label: "Read attribute: OverrunCount" + PICS: DGWIFI.C.A000c + wait: "readAttribute" + attribute: "OverrunCount" diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2.yaml deleted file mode 100644 index eb07eb87f07f0b..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2.yaml +++ /dev/null @@ -1,68 +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: 3.2.2. [TC-DGWIFI-3.2]Command Generated [DUT as Client] - -PICS: - - DGWIFI.C - -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Commission TH to DUT" - verification: | - - disabled: true - - - label: "DUT sends ResetCounts command to TH" - PICS: DGWIFI.S.C00.Rsp - verification: | - ./chip-tool wifinetworkdiagnostics reset-counts 1 0 - - verify the " reset-count command receives request response" on the TH (all-cluster-app) log: - - [1659960382.148753][4826:4826] CHIP:DMG: InvokeRequestMessage = - [1659960382.148777][4826:4826] CHIP:DMG: { - [1659960382.148798][4826:4826] CHIP:DMG: suppressResponse = false, - [1659960382.148822][4826:4826] CHIP:DMG: timedRequest = false, - [1659960382.148856][4826:4826] CHIP:DMG: InvokeRequests = - [1659960382.148889][4826:4826] CHIP:DMG: [ - [1659960382.148921][4826:4826] CHIP:DMG: CommandDataIB = - [1659960382.148948][4826:4826] CHIP:DMG: { - [1659960382.148981][4826:4826] CHIP:DMG: CommandPathIB = - [1659960382.149013][4826:4826] CHIP:DMG: { - [1659960382.149051][4826:4826] CHIP:DMG: EndpointId = 0x0, - [1659960382.149081][4826:4826] CHIP:DMG: ClusterId = 0x36, - [1659960382.149119][4826:4826] CHIP:DMG: CommandId = 0x0, - [1659960382.149149][4826:4826] CHIP:DMG: }, - [1659960382.149178][4826:4826] CHIP:DMG: - [1659960382.149212][4826:4826] CHIP:DMG: CommandFields = - [1659960382.149239][4826:4826] CHIP:DMG: { - [1659960382.149276][4826:4826] CHIP:DMG: }, - [1659960382.149302][4826:4826] CHIP:DMG: }, - [1659960382.149337][4826:4826] CHIP:DMG: - [1659960382.149358][4826:4826] CHIP:DMG: ], - [1659960382.149392][4826:4826] CHIP:DMG: - [1659960382.149413][4826:4826] CHIP:DMG: InteractionModelRevision = 1 - [1659960382.149433][4826:4826] CHIP:DMG: }, - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2_Simulated.yaml new file mode 100644 index 00000000000000..9da6957d7982f5 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DGWIFI_3_2_Simulated.yaml @@ -0,0 +1,32 @@ +# 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. + +name: 53.3.2. [TC-DGWIFI-3.2] Command Generated [DUT as Client] + +PICS: + - DGWIFI.C + +config: + nodeId: 0x12344321 + cluster: "WiFi Network Diagnostics" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "DUT sends ResetCounts command to TH" + PICS: DGTHREAD.C.C00.Tx + wait: "ResetCounts" diff --git a/src/app/tests/suites/certification/Test_TC_FLABEL_3_1.yaml b/src/app/tests/suites/certification/Test_TC_FLABEL_3_1.yaml deleted file mode 100644 index e3cb71eea950d0..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_FLABEL_3_1.yaml +++ /dev/null @@ -1,58 +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: 98.3.1. [TC-FLABEL-3.1] Fixed Label cluster [DUT-client] - -PICS: - - FLABEL.C - -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "DUT reads LabelList from the TH" - PICS: FLABEL.C.A0000 - 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 fixedlabel read label-list 1 0 - Verify DUT receives LabelList attribute response on the TH(all-clusters-app) Log: - - [1659609299.722973][2409:2409] CHIP:IM: Received Read request - [1659609299.723073][2409:2409] CHIP:DMG: ReadRequestMessage = - [1659609299.723107][2409:2409] CHIP:DMG: { - [1659609299.723135][2409:2409] CHIP:DMG: AttributePathIBs = - [1659609299.723164][2409:2409] CHIP:DMG: [ - [1659609299.723190][2409:2409] CHIP:DMG: AttributePathIB = - [1659609299.723224][2409:2409] CHIP:DMG: { - [1659609299.723261][2409:2409] CHIP:DMG: Endpoint = 0x0, - [1659609299.723357][2409:2409] CHIP:DMG: Cluster = 0x40, - [1659609299.723404][2409:2409] CHIP:DMG: Attribute = 0x0000_0000, - [1659609299.723444][2409:2409] CHIP:DMG: } - [1659609299.723483][2409:2409] CHIP:DMG: - [1659609299.723518][2409:2409] CHIP:DMG: ], - [1659609299.723555][2409:2409] CHIP:DMG: - [1659609299.723589][2409:2409] CHIP:DMG: isFabricFiltered = true, - [1659609299.723624][2409:2409] CHIP:DMG: InteractionModelRevision = 1 - [1659609299.723654][2409:2409] CHIP:DMG: }, - [1659609299.723746][2409:2409] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml new file mode 100644 index 00000000000000..9ee8c4e4d44963 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_FLABEL_3_1_Simulated.yaml @@ -0,0 +1,33 @@ +# 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. + +name: 98.3.1. [TC-FLABEL-3.1] Fixed Label cluster [DUT-client] + +PICS: + - FLABEL.C + +config: + nodeId: 0x12344321 + cluster: "Fixed Label" + endpoint: 1 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "DUT reads LabelList from the TH" + PICS: FLABEL.C.A0000 + wait: "readAttribute" + attribute: "label list" 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.yaml deleted file mode 100644 index 50538c9862287b..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_FLW_3_1.yaml +++ /dev/null @@ -1,348 +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: 3.3.1. [TC-FLW-3.1] Attributes with client as DUT - -PICS: - - FLW.C - - FLW.C.AM-READ - - FLW.C.AO-READ - - FLW.C.AM-WRITE - - FLW.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. 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" - verification: | - ./chip-tool flowmeasurement read measured-value 1 1 - - Verify read command is received on TH(all-clusters-app) log - - [1658853801.750840][29347:29347] CHIP:IM: Received Read request - [1658853801.750918][29347:29347] CHIP:DMG: ReadRequestMessage = - [1658853801.750945][29347:29347] CHIP:DMG: { - [1658853801.750968][29347:29347] CHIP:DMG: AttributePathIBs = - [1658853801.750993][29347:29347] CHIP:DMG: [ - [1658853801.751017][29347:29347] CHIP:DMG: AttributePathIB = - [1658853801.751044][29347:29347] CHIP:DMG: { - [1658853801.751072][29347:29347] CHIP:DMG: Endpoint = 0x1, - [1658853801.751105][29347:29347] CHIP:DMG: Cluster = 0x404, - [1658853801.751137][29347:29347] CHIP:DMG: Attribute = 0x0000_0000, - [1658853801.751167][29347:29347] CHIP:DMG: } - [1658853801.751195][29347:29347] CHIP:DMG: - [1658853801.751220][29347:29347] CHIP:DMG: ], - [1658853801.751248][29347:29347] CHIP:DMG: - [1658853801.751275][29347:29347] CHIP:DMG: isFabricFiltered = true, - [1658853801.751300][29347:29347] CHIP:DMG: InteractionModelRevision = 1 - [1658853801.751323][29347:29347] CHIP:DMG: }, - [1658853801.751396][29347:29347] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658853801.751480][29347:29347] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658853801.751510][29347:29347] CHIP:DMG: Cluster 404, Attribute 0 is dirty - [1658853801.751532][29347:29347] CHIP:DMG: Reading attribute: Cluster=0x0000_0404 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - - - - - - "./chip-tool flowmeasurement read min-measured-value 1 1 - - Verify read command is received on TH(all-clusters-app) log - - [1658853849.969073][29347:29347] CHIP:IM: Received Read request - [1658853849.969151][29347:29347] CHIP:DMG: ReadRequestMessage = - [1658853849.969192][29347:29347] CHIP:DMG: { - [1658853849.969214][29347:29347] CHIP:DMG: AttributePathIBs = - [1658853849.969240][29347:29347] CHIP:DMG: [ - [1658853849.969272][29347:29347] CHIP:DMG: AttributePathIB = - [1658853849.969301][29347:29347] CHIP:DMG: { - [1658853849.969337][29347:29347] CHIP:DMG: Endpoint = 0x1, - [1658853849.969369][29347:29347] CHIP:DMG: Cluster = 0x404, - [1658853849.969410][29347:29347] CHIP:DMG: Attribute = 0x0000_0001, - [1658853849.969447][29347:29347] CHIP:DMG: } - [1658853849.969476][29347:29347] CHIP:DMG: - [1658853849.969511][29347:29347] CHIP:DMG: ], - [1658853849.969539][29347:29347] CHIP:DMG: - [1658853849.969574][29347:29347] CHIP:DMG: isFabricFiltered = true, - [1658853849.969600][29347:29347] CHIP:DMG: InteractionModelRevision = 1 - [1658853849.969628][29347:29347] CHIP:DMG: }, - [1658853849.969697][29347:29347] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658853849.969791][29347:29347] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658853849.969831][29347:29347] CHIP:DMG: Cluster 404, Attribute 1 is dirty - - - - "./chip-tool flowmeasurement read max-measured-value 1 1 - - Verify read command is received on TH(all-clusters-app) log - - [1658853898.416395][29347:29347] CHIP:IM: Received Read request - [1658853898.416472][29347:29347] CHIP:DMG: ReadRequestMessage = - [1658853898.416513][29347:29347] CHIP:DMG: { - [1658853898.416536][29347:29347] CHIP:DMG: AttributePathIBs = - [1658853898.416571][29347:29347] CHIP:DMG: [ - [1658853898.416596][29347:29347] CHIP:DMG: AttributePathIB = - [1658853898.416633][29347:29347] CHIP:DMG: { - [1658853898.416662][29347:29347] CHIP:DMG: Endpoint = 0x1, - [1658853898.416703][29347:29347] CHIP:DMG: Cluster = 0x404, - [1658853898.416746][29347:29347] CHIP:DMG: Attribute = 0x0000_0002, - [1658853898.416776][29347:29347] CHIP:DMG: } - [1658853898.416813][29347:29347] CHIP:DMG: - [1658853898.416839][29347:29347] CHIP:DMG: ], - [1658853898.416876][29347:29347] CHIP:DMG: - [1658853898.416903][29347:29347] CHIP:DMG: isFabricFiltered = true, - [1658853898.416937][29347:29347] CHIP:DMG: InteractionModelRevision = 1 - [1658853898.416960][29347:29347] CHIP:DMG: }, - [1658853898.417051][29347:29347] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658853898.417141][29347:29347] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658853898.417179][29347:29347] CHIP:DMG: Cluster 404, Attribute 2 is dirty - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - chip-tool flowmeasurement read tolerance 1 1 - - Verify read command is received on TH(all-clusters-app) log - - [1658853991.266232][29347:29347] CHIP:IM: Received Read request - [1658853991.266328][29347:29347] CHIP:DMG: ReadRequestMessage = - [1658853991.266382][29347:29347] CHIP:DMG: { - [1658853991.266413][29347:29347] CHIP:DMG: AttributePathIBs = - [1658853991.266461][29347:29347] CHIP:DMG: [ - [1658853991.266494][29347:29347] CHIP:DMG: AttributePathIB = - [1658853991.266545][29347:29347] CHIP:DMG: { - [1658853991.266584][29347:29347] CHIP:DMG: Endpoint = 0x1, - [1658853991.266640][29347:29347] CHIP:DMG: Cluster = 0x404, - [1658853991.266694][29347:29347] CHIP:DMG: Attribute = 0x0000_0003, - [1658853991.266736][29347:29347] CHIP:DMG: } - [1658853991.266785][29347:29347] CHIP:DMG: - [1658853991.266820][29347:29347] CHIP:DMG: ], - [1658853991.266869][29347:29347] CHIP:DMG: - [1658853991.266905][29347:29347] CHIP:DMG: isFabricFiltered = true, - [1658853991.266952][29347:29347] CHIP:DMG: InteractionModelRevision = 1 - [1658853991.266984][29347:29347] CHIP:DMG: }, - [1658853991.267091][29347:29347] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658853991.267218][29347:29347] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658853991.267257][29347:29347] CHIP:DMG: Cluster 404, Attribute 3 is dirty - 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" - 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" - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - 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" - verification: | - ./chip-tool flowmeasurement read attribute-list 1 1 - - Verify DUT receives AttributeList response on the TH(all-clusters-minimal-app) Log: - - Received Read request - [1663067480.162780][4200:4200] CHIP:DMG: ReadRequestMessage = - [1663067480.162811][4200:4200] CHIP:DMG: { - [1663067480.162845][4200:4200] CHIP:DMG: AttributePathIBs = - [1663067480.162885][4200:4200] CHIP:DMG: [ - [1663067480.162912][4200:4200] CHIP:DMG: AttributePathIB = - [1663067480.162946][4200:4200] CHIP:DMG: { - [1663067480.162980][4200:4200] CHIP:DMG: Endpoint = 0x1, - [1663067480.163018][4200:4200] CHIP:DMG: Cluster = 0x404, - [1663067480.163055][4200:4200] CHIP:DMG: Attribute = 0x0000_FFFB, - [1663067480.163088][4200:4200] CHIP:DMG: } - [1663067480.163121][4200:4200] CHIP:DMG: - [1663067480.163154][4200:4200] CHIP:DMG: ], - [1663067480.163185][4200:4200] CHIP:DMG: - [1663067480.163213][4200:4200] CHIP:DMG: isFabricFiltered = true, - [1663067480.163243][4200:4200] CHIP:DMG: InteractionModelRevision = 1 - [1663067480.163268][4200:4200] CHIP:DMG: }, - [1663067480.163351][4200:4200] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663067480.163457][4200:4200] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1663067480.163488][4200:4200] CHIP:DMG: Cluster 404, Attribute fffb is dirty - [1663067480.163512][4200:4200] CHIP:DMG: Reading attribute: Cluster=0x0000_0404 Endpoint=1 AttributeId=0x0000_FFFB (expanded=0) - - - ./chip-tool flowmeasurement read feature-map 1 1 - - Verify DUT receives FeatureMap attribute response on the TH(all-clusters-minimal-app) Log: - - Received Read request - [1663067626.167648][4200:4200] CHIP:DMG: ReadRequestMessage = - [1663067626.167697][4200:4200] CHIP:DMG: { - [1663067626.167722][4200:4200] CHIP:DMG: AttributePathIBs = - [1663067626.167759][4200:4200] CHIP:DMG: [ - [1663067626.167788][4200:4200] CHIP:DMG: AttributePathIB = - [1663067626.167823][4200:4200] CHIP:DMG: { - [1663067626.167855][4200:4200] CHIP:DMG: Endpoint = 0x1, - [1663067626.167899][4200:4200] CHIP:DMG: Cluster = 0x404, - [1663067626.167937][4200:4200] CHIP:DMG: Attribute = 0x0000_FFFC, - [1663067626.167981][4200:4200] CHIP:DMG: } - [1663067626.168014][4200:4200] CHIP:DMG: - [1663067626.168053][4200:4200] CHIP:DMG: ], - [1663067626.168087][4200:4200] CHIP:DMG: - [1663067626.168116][4200:4200] CHIP:DMG: isFabricFiltered = true, - [1663067626.168155][4200:4200] CHIP:DMG: InteractionModelRevision = 1 - [1663067626.168181][4200:4200] CHIP:DMG: }, - [1663067626.168275][4200:4200] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663067626.168394][4200:4200] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1663067626.168438][4200:4200] CHIP:DMG: Cluster 404, Attribute fffc is dirty - [1663067626.168462][4200:4200] CHIP:DMG: Reading attribute: Cluster=0x0000_0404 Endpoint=1 AttributeId=0x0000_FFFC (expanded=0) - - - - ./chip-tool flowmeasurement read measured-value 1 1 - - Verify DUT receives MeasuredValue response on the TH(all-clusters-minimal-app) Log: - - [1658853801.750840][29347:29347] CHIP:IM: Received Read request - [1658853801.750918][29347:29347] CHIP:DMG: ReadRequestMessage = - [1658853801.750945][29347:29347] CHIP:DMG: { - [1658853801.750968][29347:29347] CHIP:DMG: AttributePathIBs = - [1658853801.750993][29347:29347] CHIP:DMG: [ - [1658853801.751017][29347:29347] CHIP:DMG: AttributePathIB = - [1658853801.751044][29347:29347] CHIP:DMG: { - [1658853801.751072][29347:29347] CHIP:DMG: Endpoint = 0x1, - [1658853801.751105][29347:29347] CHIP:DMG: Cluster = 0x404, - [1658853801.751137][29347:29347] CHIP:DMG: Attribute = 0x0000_0000, - [1658853801.751167][29347:29347] CHIP:DMG: } - [1658853801.751195][29347:29347] CHIP:DMG: - [1658853801.751220][29347:29347] CHIP:DMG: ], - [1658853801.751248][29347:29347] CHIP:DMG: - [1658853801.751275][29347:29347] CHIP:DMG: isFabricFiltered = true, - [1658853801.751300][29347:29347] CHIP:DMG: InteractionModelRevision = 1 - [1658853801.751323][29347:29347] CHIP:DMG: }, - [1658853801.751396][29347:29347] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658853801.751480][29347:29347] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658853801.751510][29347:29347] CHIP:DMG: Cluster 404, Attribute 0 is dirty - [1658853801.751532][29347:29347] CHIP:DMG: Reading attribute: Cluster=0x0000_0404 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - - - - - - ./chip-tool flowmeasurement read min-measured-value 1 1 - - Verify DUT receives MinMeasuredValue response on the TH(all-clusters-minimal-app) Log: - - [1658853849.969073][29347:29347] CHIP:IM: Received Read request - [1658853849.969151][29347:29347] CHIP:DMG: ReadRequestMessage = - [1658853849.969192][29347:29347] CHIP:DMG: { - [1658853849.969214][29347:29347] CHIP:DMG: AttributePathIBs = - [1658853849.969240][29347:29347] CHIP:DMG: [ - [1658853849.969272][29347:29347] CHIP:DMG: AttributePathIB = - [1658853849.969301][29347:29347] CHIP:DMG: { - [1658853849.969337][29347:29347] CHIP:DMG: Endpoint = 0x1, - [1658853849.969369][29347:29347] CHIP:DMG: Cluster = 0x404, - [1658853849.969410][29347:29347] CHIP:DMG: Attribute = 0x0000_0001, - [1658853849.969447][29347:29347] CHIP:DMG: } - [1658853849.969476][29347:29347] CHIP:DMG: - [1658853849.969511][29347:29347] CHIP:DMG: ], - [1658853849.969539][29347:29347] CHIP:DMG: - [1658853849.969574][29347:29347] CHIP:DMG: isFabricFiltered = true, - [1658853849.969600][29347:29347] CHIP:DMG: InteractionModelRevision = 1 - [1658853849.969628][29347:29347] CHIP:DMG: }, - [1658853849.969697][29347:29347] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658853849.969791][29347:29347] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658853849.969831][29347:29347] CHIP:DMG: Cluster 404, Attribute 1 is dirty - - - - ./chip-tool flowmeasurement read max-measured-value 1 1 - - Verify DUT receives MaxMeasured Value response on the TH(all-clusters-minimal-app) Log: - - [1658853898.416395][29347:29347] CHIP:IM: Received Read request - [1658853898.416472][29347:29347] CHIP:DMG: ReadRequestMessage = - [1658853898.416513][29347:29347] CHIP:DMG: { - [1658853898.416536][29347:29347] CHIP:DMG: AttributePathIBs = - [1658853898.416571][29347:29347] CHIP:DMG: [ - [1658853898.416596][29347:29347] CHIP:DMG: AttributePathIB = - [1658853898.416633][29347:29347] CHIP:DMG: { - [1658853898.416662][29347:29347] CHIP:DMG: Endpoint = 0x1, - [1658853898.416703][29347:29347] CHIP:DMG: Cluster = 0x404, - [1658853898.416746][29347:29347] CHIP:DMG: Attribute = 0x0000_0002, - [1658853898.416776][29347:29347] CHIP:DMG: } - [1658853898.416813][29347:29347] CHIP:DMG: - [1658853898.416839][29347:29347] CHIP:DMG: ], - [1658853898.416876][29347:29347] CHIP:DMG: - [1658853898.416903][29347:29347] CHIP:DMG: isFabricFiltered = true, - [1658853898.416937][29347:29347] CHIP:DMG: InteractionModelRevision = 1 - [1658853898.416960][29347:29347] CHIP:DMG: }, - [1658853898.417051][29347:29347] CHIP:DMG: IM RH moving to [GeneratingReports] - [1658853898.417141][29347:29347] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1658853898.417179][29347:29347] CHIP:DMG: Cluster 404, Attribute 2 is dirty - " - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - ./chip-tool flowmeasurement read tolerance 1 1 - - Verify DUT receives Tolerance response on the TH(all-clusters-minimal-app) Log: - - Received Read request - [1663067899.776588][4200:4200] CHIP:DMG: ReadRequestMessage = - [1663067899.776657][4200:4200] CHIP:DMG: { - [1663067899.776715][4200:4200] CHIP:DMG: AttributePathIBs = - [1663067899.776792][4200:4200] CHIP:DMG: [ - [1663067899.776849][4200:4200] CHIP:DMG: AttributePathIB = - [1663067899.776929][4200:4200] CHIP:DMG: { - [1663067899.777008][4200:4200] CHIP:DMG: Endpoint = 0x1, - [1663067899.777083][4200:4200] CHIP:DMG: Cluster = 0x404, - [1663067899.777163][4200:4200] CHIP:DMG: Attribute = 0x0000_0003, - [1663067899.777247][4200:4200] CHIP:DMG: } - [1663067899.777326][4200:4200] CHIP:DMG: - [1663067899.777397][4200:4200] CHIP:DMG: ], - [1663067899.777467][4200:4200] CHIP:DMG: - [1663067899.777533][4200:4200] CHIP:DMG: isFabricFiltered = true, - [1663067899.777596][4200:4200] CHIP:DMG: InteractionModelRevision = 1 - [1663067899.777654][4200:4200] CHIP:DMG: }, - [1663067899.777873][4200:4200] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663067899.778081][4200:4200] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1663067899.778151][4200:4200] CHIP:DMG: Cluster 404, Attribute 3 is dirty - [1663067899.778209][4200:4200] CHIP:DMG: Reading attribute: Cluster=0x0000_0404 Endpoint=1 AttributeId=0x0000_0003 (expanded=0) - 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" - verification: | - This cluster doesn"t have any writable attributes - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_FLW_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_FLW_3_1_Simulated.yaml new file mode 100644 index 00000000000000..ff5b1af3164f41 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_FLW_3_1_Simulated.yaml @@ -0,0 +1,41 @@ +# 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. + +name: 31.3.1. [TC-FLW-3.1] Attributes with Client as DUT + +config: + nodeId: 0x12344321 + cluster: "Flow Measurement" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute: MeasuredValue" + wait: "readAttribute" + attribute: "MeasuredValue" + + - label: "Read attribute: MinMeasuredValue" + wait: "readAttribute" + attribute: "MinMeasuredValue" + + - label: "Read attribute: MaxMeasuredValue" + wait: "readAttribute" + attribute: "MaxMeasuredValue" + + - label: "Read attribute: Tolerance" + wait: "readAttribute" + attribute: "Tolerance" diff --git a/src/app/tests/suites/certification/Test_TC_G_3_1.yaml b/src/app/tests/suites/certification/Test_TC_G_3_1.yaml deleted file mode 100644 index 36dbb0a9d89400..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_G_3_1.yaml +++ /dev/null @@ -1,64 +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: 121.3.1. [TC-G-3.1] Attributes [DUT-Client] - -PICS: - - G.C - -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "DUT reads NameSupport attribute from TH" - PICS: G.C.A0000 - 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 read name-support 1 1 - - Verify the "NameSupport attribute response" on the TH(Allcluster-app) Log: - - [1659609024.739969][3355:3355] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:210252834 on exchange 15944r - [1659609024.740058][3355:3355] CHIP:EM: Handling via exchange: 15944r, Delegate: 0xaaaac00e4f08 - [1659609024.740133][3355:3355] CHIP:IM: Received Read request - [1659609024.740275][3355:3355] CHIP:DMG: ReadRequestMessage = - [1659609024.740330][3355:3355] CHIP:DMG: { - [1659609024.740375][3355:3355] CHIP:DMG: AttributePathIBs = - [1659609024.740429][3355:3355] CHIP:DMG: [ - [1659609024.740479][3355:3355] CHIP:DMG: AttributePathIB = - [1659609024.740535][3355:3355] CHIP:DMG: { - [1659609024.740594][3355:3355] CHIP:DMG: Endpoint = 0x1, - [1659609024.740659][3355:3355] CHIP:DMG: Cluster = 0x4, - [1659609024.740725][3355:3355] CHIP:DMG: Attribute = 0x0000_0000, - [1659609024.740810][3355:3355] CHIP:DMG: } - [1659609024.740872][3355:3355] CHIP:DMG: - [1659609024.740925][3355:3355] CHIP:DMG: ], - [1659609024.740983][3355:3355] CHIP:DMG: - [1659609024.741037][3355:3355] CHIP:DMG: isFabricFiltered = true, - [1659609024.741091][3355:3355] CHIP:DMG: InteractionModelRevision = 1 - [1659609024.741140][3355:3355] CHIP:DMG: }, - [1659609024.741283][3355:3355] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659609024.741436][3355:3355] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659609024.741494][3355:3355] CHIP:DMG: Cluster 4, Attribute 0 is dirty - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_G_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_G_3_1_Simulated.yaml new file mode 100644 index 00000000000000..94d80faf410903 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_G_3_1_Simulated.yaml @@ -0,0 +1,33 @@ +# 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. + +name: 120.3.1. [TC-G-3.1] Attributes [DUT-Client] + +PICS: + - G.C + +config: + nodeId: 0x12344321 + cluster: "Groups" + endpoint: 1 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "DUT reads NameSupport attribute value from TH" + PICS: G.C.A0000 + wait: "readAttribute" + attribute: "NameSupport" diff --git a/src/app/tests/suites/certification/Test_TC_I_2_1.yaml b/src/app/tests/suites/certification/Test_TC_I_2_1.yaml index db05abf1a10ac1..a92583c1313e96 100644 --- a/src/app/tests/suites/certification/Test_TC_I_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_I_2_1.yaml @@ -32,6 +32,7 @@ tests: value: nodeId - label: "TH reads the IdentifyTime attribute from the DUT" + PICS: I.S.A0000 command: "readAttribute" attribute: "identify time" response: @@ -41,6 +42,7 @@ tests: maxValue: 65535 - label: "TH reads the IdentifyType attribute from the DUT" + PICS: I.S.A0001 command: "readAttribute" attribute: "identify type" response: 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.yaml deleted file mode 100644 index 89a498be75b090..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_I_3_1.yaml +++ /dev/null @@ -1,200 +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: 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" - endpoint: 0 - -tests: - - label: "Note" - verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. 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" - 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: - - [1648015371.159715][2506:2506] CHIP:IM: Received Read request - [1648015371.159805][2506:2506] CHIP:DMG: ReadRequestMessage = - [1648015371.159840][2506:2506] CHIP:DMG: { - [1648015371.159866][2506:2506] CHIP:DMG: AttributePathIBs = - [1648015371.159903][2506:2506] CHIP:DMG: [ - [1648015371.159932][2506:2506] CHIP:DMG: AttributePathIB = - [1648015371.159968][2506:2506] CHIP:DMG: { - [1648015371.160006][2506:2506] CHIP:DMG: Endpoint = 0x1, - [1648015371.160047][2506:2506] CHIP:DMG: Cluster = 0x3, - [1648015371.160087][2506:2506] CHIP:DMG: Attribute = 0x0000_0000, - [1648015371.160127][2506:2506] CHIP:DMG: } - [1648015371.160164][2506:2506] CHIP:DMG: - [1648015371.160201][2506:2506] CHIP:DMG: ], - [1648015371.160238][2506:2506] CHIP:DMG: - [1648015371.160270][2506:2506] CHIP:DMG: isFabricFiltered = true, - [1648015371.160300][2506:2506] CHIP:DMG: InteractionModelRevision = 1 - [1648015371.160324][2506:2506] CHIP:DMG: }, - - - ./chip-tool identify read identify-type 1 1 - Verify DUT receives identify-type attribute response on the TH(all-clusters-app) Log: - - [1648015519.017225][2506:2506] CHIP:IM: Received Read request - [1648015519.017293][2506:2506] CHIP:DMG: ReadRequestMessage = - [1648015519.017332][2506:2506] CHIP:DMG: { - [1648015519.017363][2506:2506] CHIP:DMG: AttributePathIBs = - [1648015519.017403][2506:2506] CHIP:DMG: [ - [1648015519.017437][2506:2506] CHIP:DMG: AttributePathIB = - [1648015519.017577][2506:2506] CHIP:DMG: { - [1648015519.017624][2506:2506] CHIP:DMG: Endpoint = 0x1, - [1648015519.017673][2506:2506] CHIP:DMG: Cluster = 0x3, - [1648015519.017721][2506:2506] CHIP:DMG: Attribute = 0x0000_0001, - [1648015519.017768][2506:2506] CHIP:DMG: } - [1648015519.017813][2506:2506] CHIP:DMG: - [1648015519.017853][2506:2506] CHIP:DMG: ], - [1648015519.017894][2506:2506] CHIP:DMG: - [1648015519.017932][2506:2506] CHIP:DMG: isFabricFiltered = true, - [1648015519.017969][2506:2506] CHIP:DMG: InteractionModelRevision = 1 - [1648015519.018003][2506:2506] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - There is no optional attibute for this cluster - 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" - 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 write identify-time 1 1 1 - - Verify DUT receives identify-time attribute write response on the TH(all-clusters-app) Log: - [1646012277.591912][33190:33190] CHIP:IM: Received Write request - [1646012277.591936][33190:33190] CHIP:DMG: IM WH moving to [Initialized] - [1646012277.591987][33190:33190] CHIP:DMG: WriteRequestMessage = - [1646012277.592013][33190:33190] CHIP:DMG: { - [1646012277.592036][33190:33190] CHIP:DMG: timedRequest = false, - [1646012277.592064][33190:33190] CHIP:DMG: AttributeDataIBs = - [1646012277.592094][33190:33190] CHIP:DMG: [ - [1646012277.592118][33190:33190] CHIP:DMG: AttributeDataIB = - [1646012277.592149][33190:33190] CHIP:DMG: { - [1646012277.592175][33190:33190] CHIP:DMG: AttributePathIB = - [1646012277.592208][33190:33190] CHIP:DMG: { - [1646012277.592239][33190:33190] CHIP:DMG: Endpoint = 0x1, - [1646012277.592273][33190:33190] CHIP:DMG: Cluster = 0x3, - [1646012277.592306][33190:33190] CHIP:DMG: Attribute = 0x0000_0000, - [1646012277.592336][33190:33190] CHIP:DMG: } - [1646012277.592368][33190:33190] CHIP:DMG: - [1646012277.592400][33190:33190] CHIP:DMG: Data = 60, - [1646012277.592433][33190:33190] CHIP:DMG: }, - [1646012277.592463][33190:33190] CHIP:DMG: - [1646012277.592488][33190:33190] CHIP:DMG: ], - [1646012277.592516][33190:33190] CHIP:DMG: - [1646012277.592540][33190:33190] CHIP:DMG: moreChunkedMessages = false, - [1646012277.592566][33190:33190] CHIP:DMG: InteractionModelRevision = 1 - [1646012277.592589][33190:33190] CHIP:DMG: }, - [1646012277.592669][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=o - [1646012277.592721][33190:33190] CHIP:DMG: Endpoint 1, Cluster 0x0000_0003 update version to d4fdf520 - 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" - verification: | - There is no write optional attibute for this cluster - disabled: true - - - 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" - 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 theTH(all-clusters-minimal-app) - - [1648015371.159715][2506:2506] CHIP:IM: Received Read request - [1648015371.159805][2506:2506] CHIP:DMG: ReadRequestMessage = - [1648015371.159840][2506:2506] CHIP:DMG: { - [1648015371.159866][2506:2506] CHIP:DMG: AttributePathIBs = - [1648015371.159903][2506:2506] CHIP:DMG: [ - [1648015371.159932][2506:2506] CHIP:DMG: AttributePathIB = - [1648015371.159968][2506:2506] CHIP:DMG: { - [1648015371.160006][2506:2506] CHIP:DMG: Endpoint = 0x1, - [1648015371.160047][2506:2506] CHIP:DMG: Cluster = 0x3, - [1648015371.160087][2506:2506] CHIP:DMG: Attribute = 0x0000_0000, - [1648015371.160127][2506:2506] CHIP:DMG: } - [1648015371.160164][2506:2506] CHIP:DMG: - [1648015371.160201][2506:2506] CHIP:DMG: ], - [1648015371.160238][2506:2506] CHIP:DMG: - [1648015371.160270][2506:2506] CHIP:DMG: isFabricFiltered = true, - [1648015371.160300][2506:2506] CHIP:DMG: InteractionModelRevision = 1 - [1648015371.160324][2506:2506] CHIP:DMG: }, - - - ./chip-tool identify read identify-type 1 1 - Verify DUT receives identify-type attribute response on theTH(all-clusters-minimal-app) - - [1648015519.017225][2506:2506] CHIP:IM: Received Read request - [1648015519.017293][2506:2506] CHIP:DMG: ReadRequestMessage = - [1648015519.017332][2506:2506] CHIP:DMG: { - [1648015519.017363][2506:2506] CHIP:DMG: AttributePathIBs = - [1648015519.017403][2506:2506] CHIP:DMG: [ - [1648015519.017437][2506:2506] CHIP:DMG: AttributePathIB = - [1648015519.017577][2506:2506] CHIP:DMG: { - [1648015519.017624][2506:2506] CHIP:DMG: Endpoint = 0x1, - [1648015519.017673][2506:2506] CHIP:DMG: Cluster = 0x3, - [1648015519.017721][2506:2506] CHIP:DMG: Attribute = 0x0000_0001, - [1648015519.017768][2506:2506] CHIP:DMG: } - [1648015519.017813][2506:2506] CHIP:DMG: - [1648015519.017853][2506:2506] CHIP:DMG: ], - [1648015519.017894][2506:2506] CHIP:DMG: - [1648015519.017932][2506:2506] CHIP:DMG: isFabricFiltered = true, - [1648015519.017969][2506:2506] CHIP:DMG: InteractionModelRevision = 1 - [1648015519.018003][2506:2506] CHIP:DMG: }, - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - There is no optional attibute for this cluster - 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" - verification: | - There is no optional write attibute for this cluster - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_I_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_I_3_1_Simulated.yaml new file mode 100644 index 00000000000000..3c3b4ea6afa18d --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_I_3_1_Simulated.yaml @@ -0,0 +1,43 @@ +# 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. + +name: 59.3.1. [TC-I-3.1] Attributes with Client as DUT + +config: + nodeId: 0x12344321 + cluster: "Identify" + endpoint: 1 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute: identify time" + wait: "readAttribute" + attribute: "identify time" + + - label: "write attribute: identify time" + wait: "writeAttribute" + attribute: "identify time" + arguments: + value: + + - label: "Readback attribute: identify time" + wait: "readAttribute" + attribute: "identify time" + + - label: "Read attribute: identifytype" + wait: "readAttribute" + attribute: "identify type" 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.yaml deleted file mode 100644 index e2afec23eb8851..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_PRS_3_1.yaml +++ /dev/null @@ -1,261 +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: 34.3.1. [TC-PRS-3.1] Attributes with Client as DUT - -PICS: - - PRS.C - - PRS.C.AM-READ - - PRS.C.AO-READ - - PRS.C.AM-WRITE - - PRS.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic" - 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" - verification: | - ./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: } - - - ./chip-tool pressuremeasurement read max-measured-value 1 1 - - verify the " max-measured-value response" on the TH (all-cluster-app) log: - - [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: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - OPTIONAL ATTRIBUTES ARE NOT IMPLEMENTED IN SDK - - ./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: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - 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" - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - 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" - verification: | - ./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 - [1659606175.282635][7312:7312] CHIP:IM: Received Read request - [1659606175.282718][7312:7312] CHIP:DMG: ReadRequestMessage = - [1659606175.282746][7312:7312] CHIP:DMG: { - [1659606175.282768][7312:7312] CHIP:DMG: AttributePathIBs = - [1659606175.282794][7312:7312] CHIP:DMG: [ - [1659606175.282818][7312:7312] CHIP:DMG: AttributePathIB = - [1659606175.282846][7312:7312] CHIP:DMG: { - [1659606175.282874][7312:7312] CHIP:DMG: Endpoint = 0x1, - [1659606175.282910][7312:7312] CHIP:DMG: Cluster = 0x403, - [1659606175.282946][7312:7312] CHIP:DMG: Attribute = 0x0000_FFFB, - [1659606175.282975][7312:7312] CHIP:DMG: } - [1659606175.283004][7312:7312] CHIP:DMG: - [1659606175.283029][7312:7312] CHIP:DMG: ], - [1659606175.283056][7312:7312] CHIP:DMG: - [1659606175.283083][7312:7312] CHIP:DMG: isFabricFiltered = true, - [1659606175.283108][7312:7312] CHIP:DMG: InteractionModelRevision = 1 - [1659606175.283132][7312:7312] CHIP:DMG: }, - [1659606175.283211][7312:7312] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659606175.283312][7312:7312] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659606175.283343][7312:7312] CHIP:DMG: Cluster 403, Attribute fffb is dirty - [1659606175.283364][7312:7312] CHIP:DMG: Reading attribute: Cluster=0x0000_0403 Endpoint=1 AttributeId=0x0000_FFFB (expanded=0) - - - - - ./chip-tool pressuremeasurement read measured-value 1 1 - - verify the " measured-value response" on the TH (all-cluster-minimal-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-minimal-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: }, - - - ./chip-tool pressuremeasurement read max-measured-value 1 1 - - verify the " max-measured-value response" on the TH (all-cluster-minimal-app) log: - - [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: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - TH all-clusters-minimal-app does not support optional attributes - - ./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: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" - verification: | - This cluster doesn"t have any writable attributes - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_PRS_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_PRS_3_1_Simulated.yaml new file mode 100644 index 00000000000000..a5e6f833da62c4 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_PRS_3_1_Simulated.yaml @@ -0,0 +1,61 @@ +# 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. + +name: 34.3.1. [TC-PRS-3.1] Attributes with Client as DUT + +config: + nodeId: 0x12344321 + cluster: "Pressure Measurement" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute: MeasuredValue" + wait: "readAttribute" + attribute: "MeasuredValue" + + - label: "Read attribute: MinMeasuredValue" + wait: "readAttribute" + attribute: "MinMeasuredValue" + + - label: "Read attribute: MaxMeasuredValue" + wait: "readAttribute" + attribute: "MaxMeasuredValue" + + - label: "Read attribute: Tolerance" + wait: "readAttribute" + attribute: "Tolerance" + + - label: "Read attribute: ScaledValue" + wait: "readAttribute" + attribute: "ScaledValue" + + - label: "Read attribute: MinScaledValue" + wait: "readAttribute" + attribute: "MinScaledValue" + + - label: "Read attribute: MaxScaledValue" + wait: "readAttribute" + attribute: "MaxScaledValue" + + - label: "Read attribute: ScaledTolerance" + wait: "readAttribute" + attribute: "ScaledTolerance" + + - label: "Read attribute: Scale" + wait: "readAttribute" + attribute: "Scale" 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.yaml deleted file mode 100644 index 4af8ab15bb3c27..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_PSCFG_3_1.yaml +++ /dev/null @@ -1,154 +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: 65.3.1. [TC-PSCFG-3.1] Attributes with client as DUT - -PICS: - - PSCFG.C - - PSCFG.C.AM-READ - - PSCFG.C.AO-READ - - PSCFG.C.AM-WRITE - - PSCFG.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: - "DUT reads all supported mandatory attributes from TH once at a time - in a manufacturer specific order" - verification: | - ./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 once at a time in - a manufacturer specific order" - 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 once at a time in a manufacturer specific order" - 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 once at a time in a manufacturer specific order" - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - 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 aga" - verification: | - ./chip-tool powersourceconfiguration read attribute-list 1 0 - - Verify the ReadRequestMessage the TH (all-cluster-minimal-app) log: - - [1663147271.622589][2750:2750] CHIP:IM: Received Read request - [1663147271.622666][2750:2750] CHIP:DMG: ReadRequestMessage = - [1663147271.622692][2750:2750] CHIP:DMG: { - [1663147271.622714][2750:2750] CHIP:DMG: AttributePathIBs = - [1663147271.622739][2750:2750] CHIP:DMG: [ - [1663147271.622789][2750:2750] CHIP:DMG: AttributePathIB = - [1663147271.622821][2750:2750] CHIP:DMG: { - [1663147271.622849][2750:2750] CHIP:DMG: Endpoint = 0x0, - [1663147271.622880][2750:2750] CHIP:DMG: Cluster = 0x2e, - [1663147271.622914][2750:2750] CHIP:DMG: Attribute = 0x0000_FFFB, - [1663147271.622943][2750:2750] CHIP:DMG: } - [1663147271.622971][2750:2750] CHIP:DMG: - [1663147271.622996][2750:2750] CHIP:DMG: ], - [1663147271.623023][2750:2750] CHIP:DMG: - [1663147271.623049][2750:2750] CHIP:DMG: isFabricFiltered = true, - [1663147271.623074][2750:2750] CHIP:DMG: InteractionModelRevision = 1 - [1663147271.623097][2750:2750] CHIP:DMG: }, - [1663147271.623168][2750:2750] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663147271.623246][2750:2750] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1663147271.623274][2750:2750] CHIP:DMG: Cluster 2e, Attribute fffb is dirty - - - ./chip-tool powersourceconfiguration read sources 1 0 - - verify the " sources response" on the TH (all-cluster-minimal-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 orde" - verification: | - This cluster doesn"t have any optional 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 orde" - verification: | - This cluster doesn"t have any writable attributes - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_PSCFG_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_PSCFG_3_1_Simulated.yaml new file mode 100644 index 00000000000000..c73331ebd59b57 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_PSCFG_3_1_Simulated.yaml @@ -0,0 +1,29 @@ +# 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. + +name: 65.3.1. [TC-PSCFG-3.1] Attributes with client as DUT + +config: + nodeId: 0x12344321 + cluster: "Power Source Configuration" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute: Sources" + wait: "readAttribute" + attribute: "Sources" 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.yaml deleted file mode 100644 index 9d3a4c8e265b61..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_PS_3_1.yaml +++ /dev/null @@ -1,403 +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: 62.3.1. [TC-PS-3.1] Attributes with client as DUT - -PICS: - - PS.C - - PS.C.AM-READ - - PS.C.AO-READ - - PS.C.AM-WRITE - - PS.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic" - 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" - verification: | - ./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: }, - - - ./chip-tool powersource read bat-replacement-needed 1 1 - - Verify the ReadRequestMessage on TH(all-clusters-app) log) - - [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 - - - ./chip-tool powersource read bat-replaceability 1 1 - - Verify the ReadRequestMessage on TH(all-clusters-app) log - - - [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: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - 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" - 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" - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - 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" - verification: | - ./chip-tool powersource read attribute-list 1 0 - - verify the " attribute-list response" on the TH (all-cluster-minimal-app) log: - - [1659596771.124636][2409:2409] CHIP:IM: Received Read request - [1659596771.124765][2409:2409] CHIP:DMG: ReadRequestMessage = - [1659596771.124795][2409:2409] CHIP:DMG: { - [1659596771.124814][2409:2409] CHIP:DMG: AttributePathIBs = - [1659596771.124838][2409:2409] CHIP:DMG: [ - [1659596771.124859][2409:2409] CHIP:DMG: AttributePathIB = - [1659596771.124901][2409:2409] CHIP:DMG: { - [1659596771.124928][2409:2409] CHIP:DMG: Endpoint = 0x0, - [1659596771.124963][2409:2409] CHIP:DMG: Cluster = 0x2f, - [1659596771.124989][2409:2409] CHIP:DMG: Attribute = 0x0000_FFFB, - [1659596771.125020][2409:2409] CHIP:DMG: } - [1659596771.125045][2409:2409] CHIP:DMG: - [1659596771.125077][2409:2409] CHIP:DMG: ], - [1659596771.125102][2409:2409] CHIP:DMG: - [1659596771.125134][2409:2409] CHIP:DMG: isFabricFiltered = true, - [1659596771.125156][2409:2409] CHIP:DMG: InteractionModelRevision = 1 - [1659596771.125177][2409:2409] CHIP:DMG: }, - - - - ./chip-tool powersource read status 1 1 - - verify the " status response" on the TH (all-cluster-minimal-app) log: - - [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-minimal-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-minimal-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-minimal-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: }, - - - ./chip-tool powersource read bat-replacement-needed 1 1 - - Verify the ReadRequestMessage on TH(all-clusters-minimal-app) log - - [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 - - - ./chip-tool powersource read bat-replaceability 1 1 - - Verify the ReadRequestMessage on TH(all-clusters-minimal-app) log - - - [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: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - This cluster doesn"t have any optional 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" - verification: | - This cluster doesn"t have any writable attributes - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_PS_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_PS_3_1_Simulated.yaml new file mode 100644 index 00000000000000..f64cafc465ba4f --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_PS_3_1_Simulated.yaml @@ -0,0 +1,149 @@ +# 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. + +name: 62.3.1. [TC-PS-3.1] Attributes with client as DUT + +config: + nodeId: 0x12344321 + cluster: "Power Source" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute: Status" + wait: "readAttribute" + attribute: "Status" + + - label: "Read attribute: Order" + wait: "readAttribute" + attribute: "Order" + + - label: "Read attribute: Description" + wait: "readAttribute" + attribute: "Description" + + - label: "Read attribute: WiredAssessedInputVoltage" + wait: "readAttribute" + attribute: "WiredAssessedInputVoltage" + + - label: "Read attribute: WiredAssessedInputFrequency" + wait: "readAttribute" + attribute: "WiredAssessedInputFrequency" + + - label: "Read attribute: WiredCurrentType" + wait: "readAttribute" + attribute: "WiredCurrentType" + + - label: "Read attribute: WiredAssessedCurrent" + wait: "readAttribute" + attribute: "WiredAssessedCurrent" + + - label: "Read attribute: WiredNominalVoltage" + wait: "readAttribute" + attribute: "WiredNominalVoltage" + + - label: "Read attribute: WiredPresent" + wait: "readAttribute" + attribute: "WiredPresent" + + - label: "Read attribute: WiredMaximumCurrent" + wait: "readAttribute" + attribute: "WiredMaximumCurrent" + + - label: "Read attribute: ActiveWiredFaults" + wait: "readAttribute" + attribute: "ActiveWiredFaults" + + - label: "Read attribute: BatVoltage" + wait: "readAttribute" + attribute: "BatVoltage" + + - label: "Read attribute: BatPercentRemaining" + wait: "readAttribute" + attribute: "BatPercentRemaining" + + - label: "Read attribute: BatTimeRemaining" + wait: "readAttribute" + attribute: "BatTimeRemaining" + + - label: "Read attribute: BatChargeLevel" + wait: "readAttribute" + attribute: "BatChargeLevel" + + - label: "Read attribute: BatReplacementNeeded" + wait: "readAttribute" + attribute: "BatReplacementNeeded" + + - label: "Read attribute: BatReplaceability" + wait: "readAttribute" + attribute: "BatReplaceability" + + - label: "Read attribute: BatPresent" + wait: "readAttribute" + attribute: "BatPresent" + + - label: "Read attribute: ActiveBatFaults" + wait: "readAttribute" + attribute: "ActiveBatFaults" + + - label: "Read attribute: BatReplacementDescription" + wait: "readAttribute" + attribute: "BatReplacementDescription" + + - label: "Read attribute: BatCommonDesignation" + wait: "readAttribute" + attribute: "BatCommonDesignation" + + - label: "Read attribute: BatANSIDesignation" + wait: "readAttribute" + attribute: "BatANSIDesignation" + + - label: "Read attribute: BatIECDesignation" + wait: "readAttribute" + attribute: "BatIECDesignation" + + - label: "Read attribute: BatApprovedChemistry" + wait: "readAttribute" + attribute: "BatApprovedChemistry" + + - label: "Read attribute: BatCapacity" + wait: "readAttribute" + attribute: "BatCapacity" + + - label: "Read attribute: BatQuantity" + wait: "readAttribute" + attribute: "BatQuantity" + + - label: "Read attribute: BatChargeState" + wait: "readAttribute" + attribute: "BatChargeState" + + - label: "Read attribute: BatTimeToFullCharge" + wait: "readAttribute" + attribute: "BatTimeToFullCharge" + + - label: "Read attribute: BatFunctionalWhileCharging" + wait: "readAttribute" + attribute: "BatFunctionalWhileCharging" + + - label: "Read attribute: BatChargingCurrent" + wait: "readAttribute" + attribute: "BatChargingCurrent" + + - label: "Read attribute: ActiveBatChargeFaults" + wait: "readAttribute" + attribute: "ActiveBatChargeFaults" diff --git a/src/app/tests/suites/certification/Test_TC_RH_3_1.yaml b/src/app/tests/suites/certification/Test_TC_RH_3_1.yaml deleted file mode 100644 index 1159f992a3fb7b..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_RH_3_1.yaml +++ /dev/null @@ -1,306 +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: 10.3.1. [TC-RH-3.1] Attributes with Client as DUT - -PICS: - - RH.C - - RH.C.AM-READ - - RH.C.AO-READ - - RH.C.AM-WRITE - - RH.C.AO-WRITE - -config: - nodeId: 0x12344321 - cluster: "Basic" - 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" - verification: | - ./chip-tool relativehumiditymeasurement read measured-value 1 1 - - verify the "measured-value response" on the TH (all-cluster-app) log: - - [1651147639.252032][2336:2336] CHIP:IM: Received Read request - [1651147639.252086][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651147639.252136][2336:2336] CHIP:DMG: { - [1651147639.252159][2336:2336] CHIP:DMG: AttributePathIBs = - [1651147639.252185][2336:2336] CHIP:DMG: [ - [1651147639.252209][2336:2336] CHIP:DMG: AttributePathIB = - [1651147639.252278][2336:2336] CHIP:DMG: { - [1651147639.252313][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651147639.252346][2336:2336] CHIP:DMG: Cluster = 0x405, - [1651147639.252408][2336:2336] CHIP:DMG: Attribute = 0x0000_0000, - [1651147639.252437][2336:2336] CHIP:DMG: } - [1651147639.252494][2336:2336] CHIP:DMG: - [1651147639.252521][2336:2336] CHIP:DMG: ], - [1651147639.252576][2336:2336] CHIP:DMG: - [1651147639.252602][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651147639.252627][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651147639.252651][2336:2336] CHIP:DMG: }, - [1651147639.252772][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651147639.252925][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool relativehumiditymeasurement read min-measured-value 1 1 - - verify the "min-measured-value response" on the TH (all-cluster-app) log: - - 1651147834.075387][2336:2336] CHIP:IM: Received Read request - [1651147834.075454][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651147834.075481][2336:2336] CHIP:DMG: { - [1651147834.075502][2336:2336] CHIP:DMG: AttributePathIBs = - [1651147834.075528][2336:2336] CHIP:DMG: [ - [1651147834.075552][2336:2336] CHIP:DMG: AttributePathIB = - [1651147834.075579][2336:2336] CHIP:DMG: { - [1651147834.075625][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651147834.075662][2336:2336] CHIP:DMG: Cluster = 0x405, - [1651147834.075694][2336:2336] CHIP:DMG: Attribute = 0x0000_0001, - [1651147834.075734][2336:2336] CHIP:DMG: } - [1651147834.075763][2336:2336] CHIP:DMG: - [1651147834.075796][2336:2336] CHIP:DMG: ], - [1651147834.075825][2336:2336] CHIP:DMG: - [1651147834.075863][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651147834.075888][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651147834.075920][2336:2336] CHIP:DMG: }, - [1651147834.076001][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651147834.076111][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool relativehumiditymeasurement read max-measured-value 1 1 - - verify the "max-measured-value response" on the TH (all-cluster-app) log: - - [1651147902.966904][2336:2336] CHIP:IM: Received Read request - [1651147902.966980][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651147902.967012][2336:2336] CHIP:DMG: { - [1651147902.967033][2336:2336] CHIP:DMG: AttributePathIBs = - [1651147902.967061][2336:2336] CHIP:DMG: [ - [1651147902.967088][2336:2336] CHIP:DMG: AttributePathIB = - [1651147902.967177][2336:2336] CHIP:DMG: { - [1651147902.967233][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651147902.967280][2336:2336] CHIP:DMG: Cluster = 0x405, - [1651147902.967317][2336:2336] CHIP:DMG: Attribute = 0x0000_0002, - [1651147902.967360][2336:2336] CHIP:DMG: } - [1651147902.967397][2336:2336] CHIP:DMG: - [1651147902.967436][2336:2336] CHIP:DMG: ], - [1651147902.967479][2336:2336] CHIP:DMG: - [1651147902.967510][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651147902.967549][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651147902.967577][2336:2336] CHIP:DMG: }, - [1651147902.967669][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651147902.967790][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1651147902.967823][2336:2336] CHIP:DMG: Cluster 405, Attribute 2 is dirty - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - ./chip-tool relativehumiditymeasurement read tolerance 1 1 - - verify the "tolerance response" on the TH (all-cluster-app) log: - - [1651148035.585189][2336:2336] CHIP:IM: Received Read request - [1651148035.585247][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651148035.585276][2336:2336] CHIP:DMG: { - [1651148035.585301][2336:2336] CHIP:DMG: AttributePathIBs = - [1651148035.585330][2336:2336] CHIP:DMG: [ - [1651148035.585358][2336:2336] CHIP:DMG: AttributePathIB = - [1651148035.585396][2336:2336] CHIP:DMG: { - [1651148035.585431][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651148035.585470][2336:2336] CHIP:DMG: Cluster = 0x405, - [1651148035.585507][2336:2336] CHIP:DMG: Attribute = 0x0000_0003, - [1651148035.585541][2336:2336] CHIP:DMG: } - [1651148035.585577][2336:2336] CHIP:DMG: - [1651148035.585610][2336:2336] CHIP:DMG: ], - [1651148035.585642][2336:2336] CHIP:DMG: - [1651148035.585672][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651148035.585701][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651148035.585727][2336:2336] CHIP:DMG: }, - [1651148035.585807][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651148035.585899][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - 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" - 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" - verification: | - This cluster doesn"t have any writable attributes - disabled: true - - - 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" - verification: | - ./chip-tool relativehumiditymeasurement read feature-map 1 1 - - verify the "feature-map response" on the TH (all-cluster-minimal-app) log: - - [1663157920.343837][6214:6214] CHIP:IM: Received Read request - [1663157920.343910][6214:6214] CHIP:DMG: ReadRequestMessage = - [1663157920.343933][6214:6214] CHIP:DMG: { - [1663157920.343952][6214:6214] CHIP:DMG: AttributePathIBs = - [1663157920.343974][6214:6214] CHIP:DMG: [ - [1663157920.343994][6214:6214] CHIP:DMG: AttributePathIB = - [1663157920.344021][6214:6214] CHIP:DMG: { - [1663157920.344048][6214:6214] CHIP:DMG: Endpoint = 0x1, - [1663157920.344076][6214:6214] CHIP:DMG: Cluster = 0x405, - [1663157920.344104][6214:6214] CHIP:DMG: Attribute = 0x0000_FFFC, - [1663157920.344128][6214:6214] CHIP:DMG: } - [1663157920.344154][6214:6214] CHIP:DMG: - [1663157920.344177][6214:6214] CHIP:DMG: ], - [1663157920.344202][6214:6214] CHIP:DMG: - [1663157920.344225][6214:6214] CHIP:DMG: isFabricFiltered = true, - [1663157920.344246][6214:6214] CHIP:DMG: InteractionModelRevision = 1 - [1663157920.344266][6214:6214] CHIP:DMG: }, - [1663157920.344332][6214:6214] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663157920.344414][6214:6214] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1663157920.344440][6214:6214] CHIP:DMG: Cluster 405, Attribute fffc is dirty - - - ./chip-tool relativehumiditymeasurement read attribute-list 1 1 - - - verify the "attribute-list response" on the TH (all-cluster-minimal-app) log: - - [1659607458.517237][7312:7312] CHIP:IM: Received Read request - [1659607458.517318][7312:7312] CHIP:DMG: ReadRequestMessage = - [1659607458.517345][7312:7312] CHIP:DMG: { - [1659607458.517367][7312:7312] CHIP:DMG: AttributePathIBs = - [1659607458.517392][7312:7312] CHIP:DMG: [ - [1659607458.517415][7312:7312] CHIP:DMG: AttributePathIB = - [1659607458.517443][7312:7312] CHIP:DMG: { - [1659607458.517470][7312:7312] CHIP:DMG: Endpoint = 0x1, - [1659607458.517506][7312:7312] CHIP:DMG: Cluster = 0x405, - [1659607458.517536][7312:7312] CHIP:DMG: Attribute = 0x0000_FFFB, - [1659607458.517564][7312:7312] CHIP:DMG: } - [1659607458.517591][7312:7312] CHIP:DMG: - [1659607458.517616][7312:7312] CHIP:DMG: ], - [1659607458.517643][7312:7312] CHIP:DMG: - [1659607458.517670][7312:7312] CHIP:DMG: isFabricFiltered = true, - [1659607458.517695][7312:7312] CHIP:DMG: InteractionModelRevision = 1 - [1659607458.517718][7312:7312] CHIP:DMG: }, - - - - - ./chip-tool relativehumiditymeasurement read measured-value 1 1 - - verify the "measured-value response" on the TH (all-cluster-minimal-app) log: - - [1651147639.252032][2336:2336] CHIP:IM: Received Read request - - [1651147639.252086][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651147639.252136][2336:2336] CHIP:DMG: { - [1651147639.252159][2336:2336] CHIP:DMG: AttributePathIBs = - [1651147639.252185][2336:2336] CHIP:DMG: [ - [1651147639.252209][2336:2336] CHIP:DMG: AttributePathIB = - [1651147639.252278][2336:2336] CHIP:DMG: { - [1651147639.252313][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651147639.252346][2336:2336] CHIP:DMG: Cluster = 0x405, - [1651147639.252408][2336:2336] CHIP:DMG: Attribute = 0x0000_0000, - [1651147639.252437][2336:2336] CHIP:DMG: } - [1651147639.252494][2336:2336] CHIP:DMG: - [1651147639.252521][2336:2336] CHIP:DMG: ], - [1651147639.252576][2336:2336] CHIP:DMG: - [1651147639.252602][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651147639.252627][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651147639.252651][2336:2336] CHIP:DMG: }, - [1651147639.252772][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651147639.252925][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool relativehumiditymeasurement read min-measured-value 1 1 - - verify the "min-measured-value response" on the TH (all-cluster-minimal-app) log: - - 1651147834.075387][2336:2336] CHIP:IM: Received Read request - - [1651147834.075454][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651147834.075481][2336:2336] CHIP:DMG: { - [1651147834.075502][2336:2336] CHIP:DMG: AttributePathIBs = - [1651147834.075528][2336:2336] CHIP:DMG: [ - [1651147834.075552][2336:2336] CHIP:DMG: AttributePathIB = - [1651147834.075579][2336:2336] CHIP:DMG: { - [1651147834.075625][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651147834.075662][2336:2336] CHIP:DMG: Cluster = 0x405, - [1651147834.075694][2336:2336] CHIP:DMG: Attribute = 0x0000_0001, - [1651147834.075734][2336:2336] CHIP:DMG: } - [1651147834.075763][2336:2336] CHIP:DMG: - [1651147834.075796][2336:2336] CHIP:DMG: ], - [1651147834.075825][2336:2336] CHIP:DMG: - [1651147834.075863][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651147834.075888][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651147834.075920][2336:2336] CHIP:DMG: }, - [1651147834.076001][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651147834.076111][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - ./chip-tool relativehumiditymeasurement read max-measured-value 1 1 - - verify the "max-measured-value response" on the TH (all-cluster-minimal-app) log: - - [1651147902.966904][2336:2336] CHIP:IM: Received Read request - [1651147902.966980][2336:2336] CHIP:DMG: ReadRequestMessage = - [1651147902.967012][2336:2336] CHIP:DMG: { - [1651147902.967033][2336:2336] CHIP:DMG: AttributePathIBs = - [1651147902.967061][2336:2336] CHIP:DMG: [ - [1651147902.967088][2336:2336] CHIP:DMG: AttributePathIB = - [1651147902.967177][2336:2336] CHIP:DMG: { - [1651147902.967233][2336:2336] CHIP:DMG: Endpoint = 0x1, - [1651147902.967280][2336:2336] CHIP:DMG: Cluster = 0x405, - [1651147902.967317][2336:2336] CHIP:DMG: Attribute = 0x0000_0002, - [1651147902.967360][2336:2336] CHIP:DMG: } - [1651147902.967397][2336:2336] CHIP:DMG: - [1651147902.967436][2336:2336] CHIP:DMG: ], - [1651147902.967479][2336:2336] CHIP:DMG: - [1651147902.967510][2336:2336] CHIP:DMG: isFabricFiltered = true, - [1651147902.967549][2336:2336] CHIP:DMG: InteractionModelRevision = 1 - [1651147902.967577][2336:2336] CHIP:DMG: }, - [1651147902.967669][2336:2336] CHIP:DMG: IM RH moving to [GeneratingReports] - [1651147902.967790][2336:2336] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1651147902.967823][2336:2336] CHIP:DMG: Cluster 405, Attribute 2 is dirty" - disabled: true - - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - TH all-clusters-minimal-app does not support optional attributes - - - ./chip-tool relativehumiditymeasurement read tolerance 1 1 - 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" - verification: | - This cluster doesn"t have any writable attributes - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml new file mode 100644 index 00000000000000..2ed1b3166de5f3 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RH_3_1_Simulated.yaml @@ -0,0 +1,41 @@ +# 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. + +name: 10.3.1. [TC-RH-3.1] Attributes with Client as DUT + +config: + nodeId: 0x12344321 + cluster: "Relative Humidity Measurement" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read attribute MeasuredValue" + wait: "readAttribute" + attribute: "measured value" + + - label: "Read attribute MinMeasuredValue" + wait: "readAttribute" + attribute: "min measured value" + + - label: "Read attribute MaxMeasuredValue" + wait: "readAttribute" + attribute: "max measured value" + + - label: "Read attribute Tolerance" + wait: "readAttribute" + attribute: "tolerance" diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_3_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_3_1_Simulated.yaml new file mode 100644 index 00000000000000..5abe615c0ef319 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_SWTCH_3_1_Simulated.yaml @@ -0,0 +1,37 @@ +# 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. + +name: 74.3.1. [TC-SWTCH-3.1] Global attributes with client as DUT + +config: + nodeId: 0x12344321 + cluster: "Switch" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + - label: "Read NumberOfPositions attribute" + wait: "readAttribute" + attribute: "number of positions" + + - label: "Read CurrentPosition attribute" + wait: "readAttribute" + attribute: "current position" + + - label: "Read MultiPressMax attribute" + wait: "readAttribute" + attribute: "multi press max" diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_5_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_5_1.yaml deleted file mode 100644 index 1f3e9a20e9cc76..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_WNCV_5_1.yaml +++ /dev/null @@ -1,181 +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: 3.4.6. [TC-WNCV-5.1] Mandatory Attributes Verification [DUT as Client] - -PICS: - - WNCV.C - -config: - nodeId: 0x12344321 - cluster: "Basic" - 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: "Check Attribute defining the cluster Features" - verification: | - - disabled: true - - - label: "DUT reads the (65532) _FeatureMap_ attribute from TH" - PICS: WNCV.C.Afffc - verification: | - On TestHarnes (all-cluster-app) a received read of feature-map looks like this: - - ./chip-tool windowcovering read feature-map 1 1 - Verify the "feature-map " read response on TH(all-cluster-app): - - [1659944836.658724][2742:2742] CHIP:IM: Received Read request - [1659944836.658804][2742:2742] CHIP:DMG: ReadRequestMessage = - [1659944836.658833][2742:2742] CHIP:DMG: { - [1659944836.658854][2742:2742] CHIP:DMG: AttributePathIBs = - [1659944836.658880][2742:2742] CHIP:DMG: [ - [1659944836.658904][2742:2742] CHIP:DMG: AttributePathIB = - [1659944836.658932][2742:2742] CHIP:DMG: { - [1659944836.658960][2742:2742] CHIP:DMG: Endpoint = 0x1, - [1659944836.658995][2742:2742] CHIP:DMG: Cluster = 0x102, - [1659944836.659031][2742:2742] CHIP:DMG: Attribute = 0x0000_FFFC, - [1659944836.659062][2742:2742] CHIP:DMG: } - [1659944836.659091][2742:2742] CHIP:DMG: - [1659944836.659116][2742:2742] CHIP:DMG: ], - [1659944836.659144][2742:2742] CHIP:DMG: - [1659944836.659171][2742:2742] CHIP:DMG: isFabricFiltered = true, - [1659944836.659196][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659944836.659219][2742:2742] CHIP:DMG: }, - disabled: true - - - label: "Check Attribute defining the product" - verification: | - - disabled: true - - - label: "DUT reads the Type attribute from TH" - PICS: WNCV.C.A0000 - verification: | - On TestHarnes (all-cluster-app) a received read of type looks like this: - - ./chip-tool windowcovering read type 1 1 - - Verify the "type" read response on TH(all-cluster-app): - [1659944958.215763][2742:2742] CHIP:DMG: ReadRequestMessage = - [1659944958.215792][2742:2742] CHIP:DMG: { - [1659944958.215813][2742:2742] CHIP:DMG: AttributePathIBs = - [1659944958.215839][2742:2742] CHIP:DMG: [ - [1659944958.215863][2742:2742] CHIP:DMG: AttributePathIB = - [1659944958.215892][2742:2742] CHIP:DMG: { - [1659944958.215920][2742:2742] CHIP:DMG: Endpoint = 0x1, - [1659944958.215955][2742:2742] CHIP:DMG: Cluster = 0x102, - [1659944958.215989][2742:2742] CHIP:DMG: Attribute = 0x0000_0000, - [1659944958.216019][2742:2742] CHIP:DMG: } - [1659944958.216050][2742:2742] CHIP:DMG: - [1659944958.216077][2742:2742] CHIP:DMG: ], - [1659944958.216106][2742:2742] CHIP:DMG: - [1659944958.216134][2742:2742] CHIP:DMG: isFabricFiltered = true, - [1659944958.216160][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659944958.216185][2742:2742] CHIP:DMG: }, - disabled: true - - - label: "DUT reads the EndProductType attribute from TH" - PICS: WNCV.C.A000d - verification: | - On TestHarnes (all-cluster-app) a received read of end-product-type looks like this: - - ./chip-tool windowcovering read end-product-type 1 1 - - Verify the "end-product-type "read response on TH(all-cluster-app): - [1659945106.066589][2742:2742] CHIP:IM: Received Read request - [1659945106.066665][2742:2742] CHIP:DMG: ReadRequestMessage = - [1659945106.066691][2742:2742] CHIP:DMG: { - [1659945106.066713][2742:2742] CHIP:DMG: AttributePathIBs = - [1659945106.066741][2742:2742] CHIP:DMG: [ - [1659945106.066765][2742:2742] CHIP:DMG: AttributePathIB = - [1659945106.066795][2742:2742] CHIP:DMG: { - [1659945106.066824][2742:2742] CHIP:DMG: Endpoint = 0x1, - [1659945106.066862][2742:2742] CHIP:DMG: Cluster = 0x102, - [1659945106.066920][2742:2742] CHIP:DMG: Attribute = 0x0000_000D, - [1659945106.066973][2742:2742] CHIP:DMG: } - [1659945106.067020][2742:2742] CHIP:DMG: - [1659945106.067065][2742:2742] CHIP:DMG: ], - [1659945106.067110][2742:2742] CHIP:DMG: - [1659945106.067154][2742:2742] CHIP:DMG: isFabricFiltered = true, - [1659945106.067196][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659945106.067235][2742:2742] CHIP:DMG: }, - disabled: true - - - label: "Check Attribute defining the working status" - verification: | - - disabled: true - - - label: "DUT reads the Mode attribute from TH" - PICS: WNCV.C.A0017 - verification: | - On TestHarnes (all-cluster-app) a received read of mode looks like this: - - ./chip-tool windowcovering read mode 1 1 - - Verify the "mode" read response on TH(all-cluster-app): - - [1659945146.241332][2742:2742] CHIP:IM: Received Read request - [1659945146.241409][2742:2742] CHIP:DMG: ReadRequestMessage = - [1659945146.241436][2742:2742] CHIP:DMG: { - [1659945146.241457][2742:2742] CHIP:DMG: AttributePathIBs = - [1659945146.241483][2742:2742] CHIP:DMG: [ - [1659945146.241507][2742:2742] CHIP:DMG: AttributePathIB = - [1659945146.241535][2742:2742] CHIP:DMG: { - [1659945146.241562][2742:2742] CHIP:DMG: Endpoint = 0x1, - [1659945146.241594][2742:2742] CHIP:DMG: Cluster = 0x102, - [1659945146.241625][2742:2742] CHIP:DMG: Attribute = 0x0000_0017, - [1659945146.241655][2742:2742] CHIP:DMG: } - [1659945146.241682][2742:2742] CHIP:DMG: - [1659945146.241707][2742:2742] CHIP:DMG: ], - [1659945146.241735][2742:2742] CHIP:DMG: - [1659945146.241761][2742:2742] CHIP:DMG: isFabricFiltered = true, - [1659945146.241787][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659945146.241810][2742:2742] CHIP:DMG: }, - disabled: true - - - label: "DUT reads the ConfigStatus attribute from TH" - PICS: WNCV.C.A0007 - verification: | - On TestHarnes (all-cluster-app) a received read of config-status looks like this: - - ./chip-tool windowcovering read config-status 1 1 - - Verify the "config-status"read response on TH(all-cluster-app): - - [1659945171.752215][2742:2742] CHIP:IM: Received Read request - [1659945171.752329][2742:2742] CHIP:DMG: ReadRequestMessage = - [1659945171.752367][2742:2742] CHIP:DMG: { - [1659945171.752389][2742:2742] CHIP:DMG: AttributePathIBs = - [1659945171.752426][2742:2742] CHIP:DMG: [ - [1659945171.752458][2742:2742] CHIP:DMG: AttributePathIB = - [1659945171.752497][2742:2742] CHIP:DMG: { - [1659945171.752536][2742:2742] CHIP:DMG: Endpoint = 0x1, - [1659945171.752569][2742:2742] CHIP:DMG: Cluster = 0x102, - [1659945171.752608][2742:2742] CHIP:DMG: Attribute = 0x0000_0007, - [1659945171.752640][2742:2742] CHIP:DMG: } - [1659945171.752680][2742:2742] CHIP:DMG: - [1659945171.752719][2742:2742] CHIP:DMG: ], - [1659945171.752750][2742:2742] CHIP:DMG: - [1659945171.752778][2742:2742] CHIP:DMG: isFabricFiltered = true, - [1659945171.752815][2742:2742] CHIP:DMG: InteractionModelRevision = 1 - [1659945171.752840][2742:2742] CHIP:DMG: }, - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_5_1_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_5_1_Simulated.yaml new file mode 100644 index 00000000000000..a4e3cb48579415 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_WNCV_5_1_Simulated.yaml @@ -0,0 +1,56 @@ +# 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. + +name: 38.4.6. [TC-WNCV-5.1] Mandatory Attributes Verification [DUT as Client] + +PICS: + - WNCV.C + +config: + nodeId: 0x12344321 + cluster: "Window Covering" + endpoint: 0 + +tests: + - label: "Wait for the device to be commissioned" + cluster: "DelayCommands" + command: "WaitForCommissioning" + + ##Check Attribute defining the cluster Features + - label: "DUT reads the FeatureMap attribute from TH" + PICS: WNCV.C.Afffc + wait: "readAttribute" + attribute: "FeatureMap" + + ##Check Attributes defining the product + - label: "DUT reads the Type attribute from TH" + PICS: WNCV.C.A0000 + wait: "readAttribute" + attribute: "Type" + + - label: "DUT reads the EndProductType attribute from TH" + PICS: WNCV.C.A000d + wait: "readAttribute" + attribute: "EndProductType" + + ##Check Attributes defining the working status + - label: "DUT reads the Mode attribute from TH" + PICS: WNCV.C.A0017 + wait: "readAttribute" + attribute: "Mode" + + - label: "DUT reads the ConfigStatus attribute from TH" + PICS: WNCV.C.A0007 + wait: "readAttribute" + attribute: "ConfigStatus" diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index 5c616c535dd52d..077b01e51c37bf 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -873,6 +873,7 @@ MCORE.DD.FETCH_DCL=1 #Ethernet Network Diagnostics Cluster DGETH.S.C00.Rsp=1 DGETH.C.C00.Tx=1 +#Server DGETH.S.A0000=1 DGETH.S.A0001=1 DGETH.S.A0002=1 @@ -882,6 +883,16 @@ DGETH.S.A0005=1 DGETH.S.A0006=1 DGETH.S.A0007=1 DGETH.S.A0008=1 +#client +DGETH.C.A0000=1 +DGETH.C.A0001=1 +DGETH.C.A0002=1 +DGETH.C.A0003=1 +DGETH.C.A0004=1 +DGETH.C.A0005=1 +DGETH.C.A0006=1 +DGETH.C.A0007=1 +DGETH.C.A0008=1 #Features DGETH.S.F00=0 DGETH.S.F01=1 @@ -889,6 +900,7 @@ DGETH.S.F01=1 #Wi-Fi Network Diagnostics Cluster DGWIFI.S.F00=1 DGWIFI.S.F01=1 +#Server DGWIFI.S.A0000=1 DGWIFI.S.A0001=1 DGWIFI.S.A0002=1 @@ -902,10 +914,26 @@ DGWIFI.S.A0009=1 DGWIFI.S.A000a=1 DGWIFI.S.A000b=1 DGWIFI.S.A000c=1 +#client +DGWIFI.C.A0000=1 +DGWIFI.C.A0001=1 +DGWIFI.C.A0002=1 +DGWIFI.C.A0003=1 +DGWIFI.C.A0004=1 +DGWIFI.C.A0005=1 +DGWIFI.C.A0006=1 +DGWIFI.C.A0007=1 +DGWIFI.C.A0008=1 +DGWIFI.C.A0009=1 +DGWIFI.C.A000a=1 +DGWIFI.C.A000b=1 +DGWIFI.C.A000c=1 +#Events DGWIFI.S.E00=1 DGWIFI.S.E01=1 DGWIFI.S.E02=1 DGWIFI.S.C00.Rsp=1 + #On/Off Cluster OO.S.A0000=1 OO.S.A4000=1 diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json index 1835bb8cf21eac..a70896e1adea1c 100644 --- a/src/app/tests/suites/manualTests.json +++ b/src/app/tests/suites/manualTests.json @@ -40,7 +40,6 @@ "TestGroupDemoConfig", "Test_TC_G_2_2", "Test_TC_G_2_3", - "Test_TC_G_3_1", "Test_TC_G_3_2" ], "BulkDataExchangeProtocol": [ @@ -99,15 +98,14 @@ "Test_TC_DLOG_2_2", "Test_TC_DLOG_3_1" ], - "Descriptor": ["Test_TC_DESC_2_1", "Test_TC_DESC_2_2"], - "EthernetNetworkDiagnostics": ["Test_TC_DGETH_3_1", "Test_TC_DGETH_3_2"], + "Descriptor": ["Test_TC_DESC_2_1"], "GeneralCommissioning": ["Test_TC_CGEN_2_2", "Test_TC_CGEN_2_4"], "GeneralDiagnostics": [ "Test_TC_DGGEN_2_2", "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", @@ -206,7 +204,7 @@ "Test_TC_SU_4_1", "Test_TC_SU_4_2" ], - "PowerSourceConfiguration": ["Test_TC_PSCFG_2_2", "Test_TC_PSCFG_3_1"], + "PowerSourceConfiguration": ["Test_TC_PSCFG_2_2"], "SecureChannel": [ "Test_TC_SC_1_1", "Test_TC_SC_1_2", @@ -239,26 +237,19 @@ "SoftwareDiagnostics": [ "Test_TC_DGSW_2_1", "Test_TC_DGSW_2_2", - "Test_TC_DGSW_2_3", - "Test_TC_DGSW_3_1", - "Test_TC_DGSW_3_2" - ], - "WiFiNetworkDiagnostics": [ - "Test_TC_DGWIFI_2_2", - "Test_TC_DGWIFI_3_1", - "Test_TC_DGWIFI_3_2" + "Test_TC_DGSW_2_3" ], + "WiFiNetworkDiagnostics": ["Test_TC_DGWIFI_2_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_2_2", "Test_TC_OCC_2_3", "Test_TC_OCC_2_4", "Test_TC_OCC_3_1" ], - "PressureMeasurement": ["Test_TC_PRS_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", @@ -284,8 +275,8 @@ "LocalizationConfiguration": ["Test_TC_LCFG_2_1", "Test_TC_LCFG_3_1"], "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", "Test_TC_RH_3_1"], - "Switch": ["Test_TC_SWTCH_2_2", "Test_TC_SWTCH_3_1", "Test_TC_SWTCH_3_2"], + "RelativeHumidityMeasurement": ["Test_TC_RH_2_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"], @@ -297,12 +288,7 @@ "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" - ], + "Actions": ["Test_TC_ACT_2_1", "Test_TC_ACT_2_2", "Test_TC_ACT_3_2"], "TimeFormatLocalization": [ "Test_TC_LTIME_1_1", "Test_TC_LTIME_2_1", @@ -313,7 +299,6 @@ "Test_TC_LUNIT_2_1", "Test_TC_LUNIT_3_1" ], - "FixedLabel": ["Test_TC_FLABEL_3_1"], "Binding": ["Test_TC_BIND_2_1", "Test_TC_BIND_2_2", "Test_TC_BIND_2_3"], "Scenes": [ "Test_TC_S_1_1", @@ -347,7 +332,6 @@ "DeviceManagement", "DiagnosticsLogs", "Descriptor", - "EthernetNetworkDiagnostics", "GeneralCommissioning", "GeneralDiagnostics", "Identify", @@ -364,7 +348,6 @@ "WindowCovering", "FlowMeasurement", "OccupancySensing", - "PressureMeasurement", "PowerSource", "BooleanState", "ColorControl", @@ -381,7 +364,6 @@ "Actions", "TimeFormatLocalization", "UnitLocalization", - "FixedLabel", "Binding", "Scenes", "PumpConfigurationControl", diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index f0469227c5e774..3ff9348c3dacab 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -306,7 +306,6 @@ class ManualTestList : public Command printf("TestGroupDemoConfig\n"); printf("Test_TC_G_2_2\n"); printf("Test_TC_G_2_3\n"); - printf("Test_TC_G_3_1\n"); printf("Test_TC_G_3_2\n"); printf("Test_TC_BDX_1_1\n"); printf("Test_TC_BDX_1_2\n"); @@ -360,15 +359,11 @@ class ManualTestList : public Command printf("Test_TC_DLOG_2_2\n"); printf("Test_TC_DLOG_3_1\n"); printf("Test_TC_DESC_2_1\n"); - printf("Test_TC_DESC_2_2\n"); - printf("Test_TC_DGETH_3_1\n"); - printf("Test_TC_DGETH_3_2\n"); printf("Test_TC_CGEN_2_2\n"); printf("Test_TC_CGEN_2_4\n"); 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"); @@ -459,7 +454,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_SC_1_1\n"); printf("Test_TC_SC_1_2\n"); printf("Test_TC_SC_1_3\n"); @@ -490,24 +484,16 @@ class ManualTestList : public Command printf("Test_TC_DGSW_2_1\n"); printf("Test_TC_DGSW_2_2\n"); printf("Test_TC_DGSW_2_3\n"); - printf("Test_TC_DGSW_3_1\n"); - printf("Test_TC_DGSW_3_2\n"); printf("Test_TC_DGWIFI_2_2\n"); - printf("Test_TC_DGWIFI_3_1\n"); - printf("Test_TC_DGWIFI_3_2\n"); 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_2_2\n"); printf("Test_TC_OCC_2_3\n"); printf("Test_TC_OCC_2_4\n"); printf("Test_TC_OCC_3_1\n"); - printf("Test_TC_PRS_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"); @@ -535,9 +521,7 @@ class ManualTestList : public Command printf("Test_TC_OO_3_1\n"); printf("Test_TC_OO_3_2\n"); printf("Test_TC_RH_2_2\n"); - printf("Test_TC_RH_3_1\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"); @@ -552,7 +536,6 @@ class ManualTestList : public Command 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_1_1\n"); printf("Test_TC_LTIME_2_1\n"); @@ -560,7 +543,6 @@ class ManualTestList : public Command printf("Test_TC_LUNIT_1_1\n"); printf("Test_TC_LUNIT_2_1\n"); printf("Test_TC_LUNIT_3_1\n"); - printf("Test_TC_FLABEL_3_1\n"); printf("Test_TC_BIND_2_1\n"); printf("Test_TC_BIND_2_2\n"); printf("Test_TC_BIND_2_3\n"); @@ -18612,11 +18594,13 @@ class Test_TC_I_2_1Suite : public TestCommand } case 1: { LogStep(1, "TH reads the IdentifyTime attribute from the DUT"); + VerifyOrDo(!ShouldSkip("I.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id, true, chip::NullOptional); } case 2: { LogStep(2, "TH reads the IdentifyType attribute from the DUT"); + VerifyOrDo(!ShouldSkip("I.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyType::Id, true, chip::NullOptional); } @@ -81858,62 +81842,6 @@ class Test_TC_G_2_3Suite : public TestCommand } }; -class Test_TC_G_3_1Suite : public TestCommand -{ -public: - Test_TC_G_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_G_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_G_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_G_3_2Suite : public TestCommand { public: @@ -84886,174 +84814,6 @@ class Test_TC_DESC_2_1Suite : public TestCommand } }; -class Test_TC_DESC_2_2Suite : public TestCommand -{ -public: - Test_TC_DESC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DESC_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_DESC_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_DGETH_3_1Suite : public TestCommand -{ -public: - Test_TC_DGETH_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGETH_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_DGETH_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_DGETH_3_2Suite : public TestCommand -{ -public: - Test_TC_DGETH_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGETH_3_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_DGETH_3_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_CGEN_2_2Suite : public TestCommand { public: @@ -85334,10 +85094,10 @@ class Test_TC_DGGEN_3_1Suite : public TestCommand } }; -class Test_TC_I_3_1Suite : public TestCommand +class Test_TC_I_3_2Suite : public TestCommand { public: - Test_TC_I_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_3_1", 0, credsIssuerConfig) + Test_TC_I_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -85345,7 +85105,7 @@ class Test_TC_I_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_I_3_1Suite() {} + ~Test_TC_I_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -85390,10 +85150,10 @@ class Test_TC_I_3_1Suite : public TestCommand } }; -class Test_TC_I_3_2Suite : public TestCommand +class Test_TC_ILL_3_1Suite : public TestCommand { public: - Test_TC_I_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_3_2", 0, credsIssuerConfig) + Test_TC_ILL_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ILL_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -85401,7 +85161,7 @@ class Test_TC_I_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_I_3_2Suite() {} + ~Test_TC_ILL_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -85446,10 +85206,10 @@ class Test_TC_I_3_2Suite : public TestCommand } }; -class Test_TC_ILL_3_1Suite : public TestCommand +class Test_TC_IDM_1_1Suite : public TestCommand { public: - Test_TC_ILL_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ILL_3_1", 0, credsIssuerConfig) + Test_TC_IDM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -85457,7 +85217,7 @@ class Test_TC_ILL_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ILL_3_1Suite() {} + ~Test_TC_IDM_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -85502,10 +85262,10 @@ class Test_TC_ILL_3_1Suite : public TestCommand } }; -class Test_TC_IDM_1_1Suite : public TestCommand +class Test_TC_IDM_1_2Suite : public TestCommand { public: - Test_TC_IDM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_1", 0, credsIssuerConfig) + Test_TC_IDM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -85513,7 +85273,7 @@ class Test_TC_IDM_1_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_1_1Suite() {} + ~Test_TC_IDM_1_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -85558,10 +85318,10 @@ class Test_TC_IDM_1_1Suite : public TestCommand } }; -class Test_TC_IDM_1_2Suite : public TestCommand +class Test_TC_IDM_2_1Suite : public TestCommand { public: - Test_TC_IDM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_2", 0, credsIssuerConfig) + Test_TC_IDM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -85569,7 +85329,7 @@ class Test_TC_IDM_1_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_1_2Suite() {} + ~Test_TC_IDM_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -85614,10 +85374,10 @@ class Test_TC_IDM_1_2Suite : public TestCommand } }; -class Test_TC_IDM_2_1Suite : public TestCommand +class Test_TC_IDM_2_2Suite : public TestCommand { public: - Test_TC_IDM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_1", 0, credsIssuerConfig) + Test_TC_IDM_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -85625,7 +85385,7 @@ class Test_TC_IDM_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_2_1Suite() {} + ~Test_TC_IDM_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -85670,10 +85430,10 @@ class Test_TC_IDM_2_1Suite : public TestCommand } }; -class Test_TC_IDM_2_2Suite : public TestCommand +class Test_TC_IDM_3_1Suite : public TestCommand { public: - Test_TC_IDM_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_2", 0, credsIssuerConfig) + Test_TC_IDM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -85681,7 +85441,7 @@ class Test_TC_IDM_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_2_2Suite() {} + ~Test_TC_IDM_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -85726,10 +85486,10 @@ class Test_TC_IDM_2_2Suite : public TestCommand } }; -class Test_TC_IDM_3_1Suite : public TestCommand +class Test_TC_IDM_3_2Suite : public TestCommand { public: - Test_TC_IDM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_1", 0, credsIssuerConfig) + Test_TC_IDM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -85737,63 +85497,7 @@ class Test_TC_IDM_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_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_IDM_3_2Suite : public TestCommand -{ -public: - Test_TC_IDM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_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_IDM_3_2Suite() {} + ~Test_TC_IDM_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -94468,62 +94172,6 @@ class Test_TC_PSCFG_2_2Suite : public TestCommand } }; -class Test_TC_PSCFG_3_1Suite : public TestCommand -{ -public: - Test_TC_PSCFG_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PSCFG_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_PSCFG_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_SC_1_1Suite : public TestCommand { public: @@ -96204,10 +95852,10 @@ class Test_TC_DGSW_2_3Suite : public TestCommand } }; -class Test_TC_DGSW_3_1Suite : public TestCommand +class Test_TC_DGWIFI_2_2Suite : public TestCommand { public: - Test_TC_DGSW_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_3_1", 0, credsIssuerConfig) + Test_TC_DGWIFI_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -96215,7 +95863,7 @@ class Test_TC_DGSW_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGSW_3_1Suite() {} + ~Test_TC_DGWIFI_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -96260,10 +95908,10 @@ class Test_TC_DGSW_3_1Suite : public TestCommand } }; -class Test_TC_DGSW_3_2Suite : public TestCommand +class Test_TC_WNCV_6_1Suite : public TestCommand { public: - Test_TC_DGSW_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_3_2", 0, credsIssuerConfig) + Test_TC_WNCV_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_6_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -96271,7 +95919,7 @@ class Test_TC_DGSW_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGSW_3_2Suite() {} + ~Test_TC_WNCV_6_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -96316,10 +95964,10 @@ class Test_TC_DGSW_3_2Suite : public TestCommand } }; -class Test_TC_DGWIFI_2_2Suite : public TestCommand +class Test_TC_WNCV_7_1Suite : public TestCommand { public: - Test_TC_DGWIFI_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_2_2", 0, credsIssuerConfig) + Test_TC_WNCV_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_7_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -96327,7 +95975,7 @@ class Test_TC_DGWIFI_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGWIFI_2_2Suite() {} + ~Test_TC_WNCV_7_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -96372,10 +96020,10 @@ class Test_TC_DGWIFI_2_2Suite : public TestCommand } }; -class Test_TC_DGWIFI_3_1Suite : public TestCommand +class Test_TC_FLW_2_2Suite : public TestCommand { public: - Test_TC_DGWIFI_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_3_1", 0, credsIssuerConfig) + Test_TC_FLW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLW_2_2", 4, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -96383,7 +96031,7 @@ class Test_TC_DGWIFI_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGWIFI_3_1Suite() {} + ~Test_TC_FLW_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -96396,6 +96044,8 @@ class Test_TC_DGWIFI_3_1Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; + chip::app::DataModel::Nullable ValueBeforeChange; + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -96408,6 +96058,36 @@ class Test_TC_DGWIFI_3_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)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + ValueBeforeChange = value; + } + 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)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); + VerifyOrReturn(CheckConstraintNotValue("value", value, ValueBeforeChange)); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -96423,15 +96103,44 @@ class Test_TC_DGWIFI_3_1Suite : public TestCommand using namespace chip::app::Clusters; switch (testIndex) { + case 0: { + LogStep(0, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read the mandatory attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, + FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); + } + case 2: { + LogStep(2, "operate on DUT to change the flow significantly"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && FLW.M.FlowChange"), 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 3: { + LogStep(3, "Read the mandatory attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("FLW.S.A0000 && FLW.M.FlowChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, + FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); + } } return CHIP_NO_ERROR; } }; -class Test_TC_DGWIFI_3_2Suite : public TestCommand +class Test_TC_OCC_2_2Suite : public TestCommand { public: - Test_TC_DGWIFI_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGWIFI_3_2", 0, credsIssuerConfig) + Test_TC_OCC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -96439,7 +96148,7 @@ class Test_TC_DGWIFI_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGWIFI_3_2Suite() {} + ~Test_TC_OCC_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -96484,10 +96193,10 @@ class Test_TC_DGWIFI_3_2Suite : public TestCommand } }; -class Test_TC_WNCV_6_1Suite : public TestCommand +class Test_TC_OCC_2_3Suite : public TestCommand { public: - Test_TC_WNCV_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_6_1", 0, credsIssuerConfig) + Test_TC_OCC_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_2_3", 3, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -96495,7 +96204,7 @@ class Test_TC_WNCV_6_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_WNCV_6_1Suite() {} + ~Test_TC_OCC_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -96520,6 +96229,30 @@ class Test_TC_WNCV_6_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)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 1U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 7U)); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -96535,15 +96268,34 @@ class Test_TC_WNCV_6_1Suite : public TestCommand using namespace chip::app::Clusters; switch (testIndex) { + case 0: { + LogStep(0, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Reads mandatory attribute constrains: OccupancySensorType"); + VerifyOrDo(!ShouldSkip("OCC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, + OccupancySensing::Attributes::OccupancySensorType::Id, true, chip::NullOptional); + } + case 2: { + LogStep(2, "Reads mandatory attribute constrains: OccupancySensorTypeBitmap"); + VerifyOrDo(!ShouldSkip("OCC.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, + OccupancySensing::Attributes::OccupancySensorTypeBitmap::Id, true, chip::NullOptional); + } } return CHIP_NO_ERROR; } }; -class Test_TC_WNCV_7_1Suite : public TestCommand +class Test_TC_OCC_2_4Suite : public TestCommand { public: - Test_TC_WNCV_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_WNCV_7_1", 0, credsIssuerConfig) + Test_TC_OCC_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_2_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -96551,7 +96303,7 @@ class Test_TC_WNCV_7_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_WNCV_7_1Suite() {} + ~Test_TC_OCC_2_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -96596,10 +96348,10 @@ class Test_TC_WNCV_7_1Suite : public TestCommand } }; -class Test_TC_FLW_2_2Suite : public TestCommand +class Test_TC_OCC_3_1Suite : public TestCommand { public: - Test_TC_FLW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLW_2_2", 4, credsIssuerConfig) + Test_TC_OCC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_3_1", 4, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -96607,7 +96359,7 @@ class Test_TC_FLW_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_FLW_2_2Suite() {} + ~Test_TC_OCC_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -96620,7 +96372,7 @@ class Test_TC_FLW_2_2Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; - chip::app::DataModel::Nullable ValueBeforeChange; + uint8_t OccupancyValue; chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } @@ -96641,12 +96393,9 @@ class Test_TC_FLW_2_2Suite : public TestCommand case 1: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - chip::app::DataModel::Nullable value; + uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - ValueBeforeChange = value; + OccupancyValue = value; } break; case 2: @@ -96656,390 +96405,9 @@ class Test_TC_FLW_2_2Suite : public TestCommand case 3: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { - chip::app::DataModel::Nullable value; + uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 65535U)); - VerifyOrReturn(CheckConstraintNotValue("value", value, ValueBeforeChange)); - } - 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, "Read the mandatory attribute: MeasuredValue"); - VerifyOrDo(!ShouldSkip("FLW.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); - } - case 2: { - LogStep(2, "operate on DUT to change the flow significantly"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && FLW.M.FlowChange"), 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 3: { - LogStep(3, "Read the mandatory attribute: MeasuredValue"); - VerifyOrDo(!ShouldSkip("FLW.S.A0000 && FLW.M.FlowChange"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), FlowMeasurement::Id, - FlowMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); - } - } - return CHIP_NO_ERROR; - } -}; - -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_2_2Suite : public TestCommand -{ -public: - Test_TC_OCC_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_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_OCC_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_OCC_2_3Suite : public TestCommand -{ -public: - Test_TC_OCC_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_2_3", 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_OCC_2_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) - { - 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)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); - } - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "bitmap8", "bitmap8")); - VerifyOrReturn(CheckConstraintMinValue("value", value, 1U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 7U)); - } - 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, "Reads mandatory attribute constrains: OccupancySensorType"); - VerifyOrDo(!ShouldSkip("OCC.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::OccupancySensorType::Id, true, chip::NullOptional); - } - case 2: { - LogStep(2, "Reads mandatory attribute constrains: OccupancySensorTypeBitmap"); - VerifyOrDo(!ShouldSkip("OCC.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), OccupancySensing::Id, - OccupancySensing::Attributes::OccupancySensorTypeBitmap::Id, true, chip::NullOptional); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_OCC_2_4Suite : public TestCommand -{ -public: - Test_TC_OCC_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_2_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_OCC_2_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_OCC_3_1Suite : public TestCommand -{ -public: - Test_TC_OCC_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_OCC_3_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_OCC_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; - - uint8_t OccupancyValue; - - 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)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - OccupancyValue = value; - } - 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)); - { - uint8_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintNotValue("value", value, OccupancyValue)); + VerifyOrReturn(CheckConstraintNotValue("value", value, OccupancyValue)); } break; default: @@ -97091,62 +96459,6 @@ class Test_TC_OCC_3_1Suite : public TestCommand } }; -class Test_TC_PRS_3_1Suite : public TestCommand -{ -public: - Test_TC_PRS_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_PRS_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_PRS_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_PS_2_2Suite : public TestCommand { public: @@ -97203,62 +96515,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: @@ -97315,62 +96571,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: @@ -104251,62 +103451,6 @@ class Test_TC_RH_2_2Suite : public TestCommand } }; -class Test_TC_RH_3_1Suite : public TestCommand -{ -public: - Test_TC_RH_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_RH_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_RH_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_2_2Suite : public TestCommand { public: @@ -104363,62 +103507,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: @@ -105302,62 +104390,6 @@ class Test_TC_ACT_2_2Suite : public TestCommand } }; -class Test_TC_ACT_3_1Suite : public TestCommand -{ -public: - Test_TC_ACT_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_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_ACT_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_ACT_3_2Suite : public TestCommand { public: @@ -105865,62 +104897,6 @@ class Test_TC_LUNIT_3_1Suite : public TestCommand } }; -class Test_TC_FLABEL_3_1Suite : public TestCommand -{ -public: - Test_TC_FLABEL_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FLABEL_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_FLABEL_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_BIND_2_1Suite : public TestCommand { public: @@ -107369,7 +106345,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), @@ -107423,15 +106398,11 @@ 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), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -107522,7 +106493,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), @@ -107553,24 +106523,16 @@ 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), 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), @@ -107598,9 +106560,7 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -107615,7 +106575,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), @@ -107623,7 +106582,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), 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 af4c59a07376d9..fd008e696cd8ef 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -25480,10 +25480,18 @@ class Test_TC_I_2_1 : public TestCommandBridge { break; case 1: ChipLogProgress(chipTool, " ***** Test Step 1 : TH reads the IdentifyTime attribute from the DUT\n"); + if (ShouldSkip("I.S.A0000")) { + NextTest(); + return; + } err = TestThReadsTheIdentifyTimeAttributeFromTheDut_1(); break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : TH reads the IdentifyType attribute from the DUT\n"); + if (ShouldSkip("I.S.A0001")) { + NextTest(); + return; + } err = TestThReadsTheIdentifyTypeAttributeFromTheDut_2(); break; } diff --git a/zzz_generated/placeholder/app1/zap-generated/CHIPClientCallbacks.h b/zzz_generated/placeholder/app1/zap-generated/CHIPClientCallbacks.h index 0f50adab2d2f62..707be5dcd69d6f 100644 --- a/zzz_generated/placeholder/app1/zap-generated/CHIPClientCallbacks.h +++ b/zzz_generated/placeholder/app1/zap-generated/CHIPClientCallbacks.h @@ -48,6 +48,9 @@ typedef void (*OperationalCredentialsFabricsListAttributeCallback)( chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & data); typedef void (*OperationalCredentialsTrustedRootCertificatesListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +typedef void (*FixedLabelLabelListListAttributeCallback)( + void * context, + const chip::app::DataModel::DecodableList & data); typedef void (*ModeSelectSupportedModesListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/placeholder/app1/zap-generated/CHIPClusters.h b/zzz_generated/placeholder/app1/zap-generated/CHIPClusters.h index b1122aeaa10f55..39cffc7788d3a2 100644 --- a/zzz_generated/placeholder/app1/zap-generated/CHIPClusters.h +++ b/zzz_generated/placeholder/app1/zap-generated/CHIPClusters.h @@ -67,6 +67,15 @@ class DLL_EXPORT OperationalCredentialsCluster : public ClusterBase ~OperationalCredentialsCluster() {} }; +class DLL_EXPORT FixedLabelCluster : public ClusterBase +{ +public: + FixedLabelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::FixedLabel::Id, endpoint) + {} + ~FixedLabelCluster() {} +}; + class DLL_EXPORT ModeSelectCluster : public ClusterBase { public: diff --git a/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h b/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h index 53132cc7b6f97a..3704c38cf8265d 100644 --- a/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h +++ b/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h @@ -106,7 +106,7 @@ #define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask // This is an array of EmberAfAttributeMetadata structures. -#define GENERATED_ATTRIBUTE_COUNT 335 +#define GENERATED_ATTRIBUTE_COUNT 338 #define GENERATED_ATTRIBUTES \ { \ \ @@ -484,6 +484,7 @@ { 0x00000000, ZAP_TYPE(INT16S), 2, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x8000) }, /* MeasuredValue */ \ { 0x00000001, ZAP_TYPE(INT16S), 2, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x8000) }, /* MinMeasuredValue */ \ { 0x00000002, ZAP_TYPE(INT16S), 2, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x8000) }, /* MaxMeasuredValue */ \ + { 0x00000003, ZAP_TYPE(INT16U), 2, 0, ZAP_EMPTY_DEFAULT() }, /* Tolerance */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ @@ -621,6 +622,10 @@ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ + /* Endpoint: 1, Cluster: Fixed Label (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* label list */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ /* Endpoint: 1, Cluster: Color Control (server) */ \ { 0x00000003, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x616B) }, /* CurrentX */ \ { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x607D) }, /* CurrentY */ \ @@ -858,7 +863,7 @@ // clang-format on #define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask -#define GENERATED_CLUSTER_COUNT 50 +#define GENERATED_CLUSTER_COUNT 52 // clang-format off #define GENERATED_CLUSTERS { \ @@ -1185,8 +1190,8 @@ /* Endpoint: 0, Cluster: Temperature Measurement (server) */ \ .clusterId = 0x00000402, \ .attributes = ZAP_ATTRIBUTE_INDEX(238), \ - .attributeCount = 5, \ - .clusterSize = 12, \ + .attributeCount = 6, \ + .clusterSize = 14, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ .functions = NULL, \ .acceptedCommandList = nullptr ,\ @@ -1195,7 +1200,7 @@ { \ /* Endpoint: 0, Cluster: Pressure Measurement (server) */ \ .clusterId = 0x00000403, \ - .attributes = ZAP_ATTRIBUTE_INDEX(243), \ + .attributes = ZAP_ATTRIBUTE_INDEX(244), \ .attributeCount = 11, \ .clusterSize = 23, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1206,7 +1211,7 @@ { \ /* Endpoint: 0, Cluster: Flow Measurement (server) */ \ .clusterId = 0x00000404, \ - .attributes = ZAP_ATTRIBUTE_INDEX(254), \ + .attributes = ZAP_ATTRIBUTE_INDEX(255), \ .attributeCount = 6, \ .clusterSize = 14, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1217,7 +1222,7 @@ { \ /* Endpoint: 0, Cluster: Relative Humidity Measurement (client) */ \ .clusterId = 0x00000405, \ - .attributes = ZAP_ATTRIBUTE_INDEX(260), \ + .attributes = ZAP_ATTRIBUTE_INDEX(261), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1228,7 +1233,7 @@ { \ /* Endpoint: 0, Cluster: Relative Humidity Measurement (server) */ \ .clusterId = 0x00000405, \ - .attributes = ZAP_ATTRIBUTE_INDEX(260), \ + .attributes = ZAP_ATTRIBUTE_INDEX(261), \ .attributeCount = 6, \ .clusterSize = 14, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1239,7 +1244,7 @@ { \ /* Endpoint: 0, Cluster: Target Navigator (client) */ \ .clusterId = 0x00000505, \ - .attributes = ZAP_ATTRIBUTE_INDEX(266), \ + .attributes = ZAP_ATTRIBUTE_INDEX(267), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1250,7 +1255,7 @@ { \ /* Endpoint: 0, Cluster: Target Navigator (server) */ \ .clusterId = 0x00000505, \ - .attributes = ZAP_ATTRIBUTE_INDEX(266), \ + .attributes = ZAP_ATTRIBUTE_INDEX(267), \ .attributeCount = 4, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1261,7 +1266,7 @@ { \ /* Endpoint: 0, Cluster: Keypad Input (client) */ \ .clusterId = 0x00000509, \ - .attributes = ZAP_ATTRIBUTE_INDEX(270), \ + .attributes = ZAP_ATTRIBUTE_INDEX(271), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1272,7 +1277,7 @@ { \ /* Endpoint: 0, Cluster: Keypad Input (server) */ \ .clusterId = 0x00000509, \ - .attributes = ZAP_ATTRIBUTE_INDEX(270), \ + .attributes = ZAP_ATTRIBUTE_INDEX(271), \ .attributeCount = 2, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1283,7 +1288,7 @@ { \ /* Endpoint: 0, Cluster: Content Launcher (client) */ \ .clusterId = 0x0000050A, \ - .attributes = ZAP_ATTRIBUTE_INDEX(272), \ + .attributes = ZAP_ATTRIBUTE_INDEX(273), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1294,7 +1299,7 @@ { \ /* Endpoint: 0, Cluster: Content Launcher (server) */ \ .clusterId = 0x0000050A, \ - .attributes = ZAP_ATTRIBUTE_INDEX(272), \ + .attributes = ZAP_ATTRIBUTE_INDEX(273), \ .attributeCount = 4, \ .clusterSize = 10, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1305,7 +1310,7 @@ { \ /* Endpoint: 0, Cluster: Application Basic (client) */ \ .clusterId = 0x0000050D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(276), \ + .attributes = ZAP_ATTRIBUTE_INDEX(277), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1316,7 +1321,7 @@ { \ /* Endpoint: 0, Cluster: Application Basic (server) */ \ .clusterId = 0x0000050D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(276), \ + .attributes = ZAP_ATTRIBUTE_INDEX(277), \ .attributeCount = 10, \ .clusterSize = 110, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1327,7 +1332,7 @@ { \ /* Endpoint: 1, Cluster: Identify (server) */ \ .clusterId = 0x00000003, \ - .attributes = ZAP_ATTRIBUTE_INDEX(286), \ + .attributes = ZAP_ATTRIBUTE_INDEX(287), \ .attributeCount = 4, \ .clusterSize = 9, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \ @@ -1338,7 +1343,7 @@ { \ /* Endpoint: 1, Cluster: Groups (server) */ \ .clusterId = 0x00000004, \ - .attributes = ZAP_ATTRIBUTE_INDEX(290), \ + .attributes = ZAP_ATTRIBUTE_INDEX(291), \ .attributeCount = 3, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1349,7 +1354,7 @@ { \ /* Endpoint: 1, Cluster: Scenes (server) */ \ .clusterId = 0x00000005, \ - .attributes = ZAP_ATTRIBUTE_INDEX(293), \ + .attributes = ZAP_ATTRIBUTE_INDEX(294), \ .attributeCount = 7, \ .clusterSize = 12, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1360,7 +1365,7 @@ { \ /* Endpoint: 1, Cluster: On/Off (client) */ \ .clusterId = 0x00000006, \ - .attributes = ZAP_ATTRIBUTE_INDEX(300), \ + .attributes = ZAP_ATTRIBUTE_INDEX(301), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1371,7 +1376,7 @@ { \ /* Endpoint: 1, Cluster: On/Off (server) */ \ .clusterId = 0x00000006, \ - .attributes = ZAP_ATTRIBUTE_INDEX(300), \ + .attributes = ZAP_ATTRIBUTE_INDEX(301), \ .attributeCount = 3, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1382,7 +1387,7 @@ { \ /* Endpoint: 1, Cluster: Level Control (server) */ \ .clusterId = 0x00000008, \ - .attributes = ZAP_ATTRIBUTE_INDEX(303), \ + .attributes = ZAP_ATTRIBUTE_INDEX(304), \ .attributeCount = 3, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1393,7 +1398,7 @@ { \ /* Endpoint: 1, Cluster: Basic (server) */ \ .clusterId = 0x00000028, \ - .attributes = ZAP_ATTRIBUTE_INDEX(306), \ + .attributes = ZAP_ATTRIBUTE_INDEX(307), \ .attributeCount = 22, \ .clusterSize = 41, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1401,10 +1406,32 @@ .acceptedCommandList = nullptr ,\ .generatedCommandList = nullptr ,\ },\ + { \ + /* Endpoint: 1, Cluster: Fixed Label (client) */ \ + .clusterId = 0x00000040, \ + .attributes = ZAP_ATTRIBUTE_INDEX(329), \ + .attributeCount = 0, \ + .clusterSize = 0, \ + .mask = ZAP_CLUSTER_MASK(CLIENT), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 1, Cluster: Fixed Label (server) */ \ + .clusterId = 0x00000040, \ + .attributes = ZAP_ATTRIBUTE_INDEX(329), \ + .attributeCount = 2, \ + .clusterSize = 2, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ { \ /* Endpoint: 1, Cluster: Color Control (server) */ \ .clusterId = 0x00000300, \ - .attributes = ZAP_ATTRIBUTE_INDEX(328), \ + .attributes = ZAP_ATTRIBUTE_INDEX(331), \ .attributeCount = 7, \ .clusterSize = 15, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1418,12 +1445,12 @@ #define ZAP_CLUSTER_INDEX(index) (&generatedClusters[index]) -#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 37 +#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 38 // This is an array of EmberAfEndpointType structures. #define GENERATED_ENDPOINT_TYPES \ { \ - { ZAP_CLUSTER_INDEX(0), 42, 790 }, { ZAP_CLUSTER_INDEX(42), 8, 98 }, \ + { ZAP_CLUSTER_INDEX(0), 42, 792 }, { ZAP_CLUSTER_INDEX(42), 10, 100 }, \ } // Largest attribute size is needed for various buffers @@ -1435,7 +1462,7 @@ static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE, #define ATTRIBUTE_SINGLETONS_SIZE (74) // Total size of attribute storage -#define ATTRIBUTE_MAX_SIZE (888) +#define ATTRIBUTE_MAX_SIZE (892) // Number of fixed endpoints #define FIXED_ENDPOINT_COUNT (2) diff --git a/zzz_generated/placeholder/app1/zap-generated/gen_config.h b/zzz_generated/placeholder/app1/zap-generated/gen_config.h index e76b8482cbb1c7..1a346998113ce1 100644 --- a/zzz_generated/placeholder/app1/zap-generated/gen_config.h +++ b/zzz_generated/placeholder/app1/zap-generated/gen_config.h @@ -52,6 +52,8 @@ #define EMBER_AF_ADMINISTRATOR_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1) #define EMBER_AF_OPERATIONAL_CREDENTIALS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) #define EMBER_AF_OPERATIONAL_CREDENTIALS_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_FIXED_LABEL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_FIXED_LABEL_CLUSTER_SERVER_ENDPOINT_COUNT (1) #define EMBER_AF_BOOLEAN_STATE_CLUSTER_SERVER_ENDPOINT_COUNT (1) #define EMBER_AF_MODE_SELECT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) #define EMBER_AF_MODE_SELECT_CLUSTER_SERVER_ENDPOINT_COUNT (1) @@ -206,6 +208,15 @@ #define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS_SERVER #define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS +// Use this macro to check if the client side of the Fixed Label cluster is included +#define ZCL_USING_FIXED_LABEL_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_FIXED_LABEL_CLIENT + +// Use this macro to check if the server side of the Fixed Label cluster is included +#define ZCL_USING_FIXED_LABEL_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_FIXED_LABEL_SERVER +#define EMBER_AF_PLUGIN_FIXED_LABEL + // Use this macro to check if the server side of the Boolean State cluster is included #define ZCL_USING_BOOLEAN_STATE_CLUSTER_SERVER #define EMBER_AF_PLUGIN_BOOLEAN_STATE_SERVER diff --git a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h index 57a0e749365f1a..268e29773dcae2 100644 --- a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h @@ -171,12 +171,1638 @@ 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", 4) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: ActionList"); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::ActionList::Id); + } + case 2: { + LogStep(2, "Read attribute: EndpointLists"); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::EndpointLists::Id); + } + case 3: { + LogStep(3, "Read attribute: SetupURL"); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::SetupURL::Id); + } + } + 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", 2) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: StateValue"); + return WaitAttribute(GetEndpoint(0), BooleanState::Id, BooleanState::Attributes::StateValue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DESC_2_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DESC_2_2_SimulatedSuite() : TestCommand("Test_TC_DESC_2_2_Simulated", 5) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DESC_2_2_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "DUT reads DeviceTypeList from TH."); + VerifyOrDo(!ShouldSkip("DESC.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::DeviceTypeList::Id); + } + case 2: { + LogStep(2, "DUT reads ServerList from the TH"); + VerifyOrDo(!ShouldSkip("DESC.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::ServerList::Id); + } + case 3: { + LogStep(3, "DUT reads ClientList attribute from the TH"); + VerifyOrDo(!ShouldSkip("DESC.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::ClientList::Id); + } + case 4: { + LogStep(4, "DUT reads PartsList attribute from the TH"); + VerifyOrDo(!ShouldSkip("DESC.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::PartsList::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGETH_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGETH_3_1_SimulatedSuite() : TestCommand("Test_TC_DGETH_3_1_Simulated", 10) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGETH_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: PHYRate"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::PHYRate::Id); + } + case 2: { + LogStep(2, "Read attribute: FullDuplex"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::FullDuplex::Id); + } + case 3: { + LogStep(3, "Read attribute: PacketRxCount"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::PacketRxCount::Id); + } + case 4: { + LogStep(4, "Read attribute: PacketTxCount"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::PacketTxCount::Id); + } + case 5: { + LogStep(5, "Read attribute: TxErrCount"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::TxErrCount::Id); + } + case 6: { + LogStep(6, "Read attribute: CollisionCount"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::CollisionCount::Id); + } + case 7: { + LogStep(7, "Read attribute: OverrunCount"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::OverrunCount::Id); + } + case 8: { + LogStep(8, "Read attribute: CarrierDetect"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::CarrierDetect::Id); + } + case 9: { + LogStep(9, "Read attribute: TimeSinceReset"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::TimeSinceReset::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGETH_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGETH_3_2_SimulatedSuite() : TestCommand("Test_TC_DGETH_3_2_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGETH_3_2_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "DUT sends ResetCounts to TH"); + VerifyOrDo(!ShouldSkip("DGETH.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Commands::ResetCounts::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGSW_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGSW_3_1_SimulatedSuite() : TestCommand("Test_TC_DGSW_3_1_Simulated", 5) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGSW_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: ThreadMetrics"); + VerifyOrDo(!ShouldSkip("DGSW.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::ThreadMetrics::Id); + } + case 2: { + LogStep(2, "Read attribute: CurrentHeapFree"); + VerifyOrDo(!ShouldSkip("DGSW.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::CurrentHeapFree::Id); + } + case 3: { + LogStep(3, "Read attribute: CurrentHeapUsed"); + VerifyOrDo(!ShouldSkip("DGSW.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::CurrentHeapUsed::Id); + } + case 4: { + LogStep(4, "Read attribute: CurrentHeapHighWatermark"); + VerifyOrDo(!ShouldSkip("DGSW.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), SoftwareDiagnostics::Id, + SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGSW_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGSW_3_2_SimulatedSuite() : TestCommand("Test_TC_DGSW_3_2_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGSW_3_2_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "DUT sends ResetWatermarks to TH"); + VerifyOrDo(!ShouldSkip("DGSW.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Commands::ResetWatermarks::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGWIFI_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGWIFI_3_1_SimulatedSuite() : TestCommand("Test_TC_DGWIFI_3_1_Simulated", 14) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGWIFI_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: BSSID"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Bssid::Id); + } + case 2: { + LogStep(2, "Read attribute: SecurityType"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::SecurityType::Id); + } + case 3: { + LogStep(3, "Read attribute: WiFiVersion"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::WiFiVersion::Id); + } + case 4: { + LogStep(4, "Read attribute: ChannelNumber"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::ChannelNumber::Id); + } + case 5: { + LogStep(5, "Read attribute: RSSI"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Rssi::Id); + } + case 6: { + LogStep(6, "Read attribute: BeaconLostCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::BeaconLostCount::Id); + } + case 7: { + LogStep(7, "Read attribute: BeaconRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::BeaconRxCount::Id); + } + case 8: { + LogStep(8, "Read attribute: PacketMulticastRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::Id); + } + case 9: { + LogStep(9, "Read attribute: PacketMulticastTxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::Id); + } + case 10: { + LogStep(10, "Read attribute: PacketUnicastRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::Id); + } + case 11: { + LogStep(11, "Read attribute: PacketUnicastTxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::Id); + } + case 12: { + LogStep(12, "Read attribute: CurrentMaxRate"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::CurrentMaxRate::Id); + } + case 13: { + LogStep(13, "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_DGWIFI_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGWIFI_3_2_SimulatedSuite() : TestCommand("Test_TC_DGWIFI_3_2_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGWIFI_3_2_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "DUT sends ResetCounts command to TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Commands::ResetCounts::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", 5) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MinMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 4: { + LogStep(4, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id); + } + } + 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", 2) + { + 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) + { + case 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "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", 5) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: identify time"); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 2: { + LogStep(2, "write attribute: identify time"); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 3: { + LogStep(3, "Readback attribute: identify time"); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 4: { + LogStep(4, "Read attribute: identifytype"); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyType::Id); + } + } + 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", 10) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MinMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 4: { + LogStep(4, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::Tolerance::Id); + } + case 5: { + LogStep(5, "Read attribute: ScaledValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::ScaledValue::Id); + } + case 6: { + LogStep(6, "Read attribute: MinScaledValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MinScaledValue::Id); + } + case 7: { + LogStep(7, "Read attribute: MaxScaledValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MaxScaledValue::Id); + } + case 8: { + LogStep(8, "Read attribute: ScaledTolerance"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::ScaledTolerance::Id); + } + case 9: { + LogStep(9, "Read attribute: Scale"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::Scale::Id); + } + } + 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", 32) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: Status"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Status::Id); + } + case 2: { + LogStep(2, "Read attribute: Order"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Order::Id); + } + case 3: { + LogStep(3, "Read attribute: Description"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Description::Id); + } + case 4: { + LogStep(4, "Read attribute: WiredAssessedInputVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedInputVoltage::Id); + } + case 5: { + LogStep(5, "Read attribute: WiredAssessedInputFrequency"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedInputFrequency::Id); + } + case 6: { + LogStep(6, "Read attribute: WiredCurrentType"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredCurrentType::Id); + } + case 7: { + LogStep(7, "Read attribute: WiredAssessedCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedCurrent::Id); + } + case 8: { + LogStep(8, "Read attribute: WiredNominalVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredNominalVoltage::Id); + } + case 9: { + LogStep(9, "Read attribute: WiredPresent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredPresent::Id); + } + case 10: { + LogStep(10, "Read attribute: WiredMaximumCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredMaximumCurrent::Id); + } + case 11: { + LogStep(11, "Read attribute: ActiveWiredFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveWiredFaults::Id); + } + case 12: { + LogStep(12, "Read attribute: BatVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatVoltage::Id); + } + case 13: { + LogStep(13, "Read attribute: BatPercentRemaining"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatPercentRemaining::Id); + } + case 14: { + LogStep(14, "Read attribute: BatTimeRemaining"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatTimeRemaining::Id); + } + case 15: { + LogStep(15, "Read attribute: BatChargeLevel"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargeLevel::Id); + } + case 16: { + LogStep(16, "Read attribute: BatReplacementNeeded"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplacementNeeded::Id); + } + case 17: { + LogStep(17, "Read attribute: BatReplaceability"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplaceability::Id); + } + case 18: { + LogStep(18, "Read attribute: BatPresent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatPresent::Id); + } + case 19: { + LogStep(19, "Read attribute: ActiveBatFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveBatFaults::Id); + } + case 20: { + LogStep(20, "Read attribute: BatReplacementDescription"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplacementDescription::Id); + } + case 21: { + LogStep(21, "Read attribute: BatCommonDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatCommonDesignation::Id); + } + case 22: { + LogStep(22, "Read attribute: BatANSIDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatANSIDesignation::Id); + } + case 23: { + LogStep(23, "Read attribute: BatIECDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatIECDesignation::Id); + } + case 24: { + LogStep(24, "Read attribute: BatApprovedChemistry"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatApprovedChemistry::Id); + } + case 25: { + LogStep(25, "Read attribute: BatCapacity"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatCapacity::Id); + } + case 26: { + LogStep(26, "Read attribute: BatQuantity"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatQuantity::Id); + } + case 27: { + LogStep(27, "Read attribute: BatChargeState"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargeState::Id); + } + case 28: { + LogStep(28, "Read attribute: BatTimeToFullCharge"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatTimeToFullCharge::Id); + } + case 29: { + LogStep(29, "Read attribute: BatFunctionalWhileCharging"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatFunctionalWhileCharging::Id); + } + case 30: { + LogStep(30, "Read attribute: BatChargingCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargingCurrent::Id); + } + case 31: { + LogStep(31, "Read attribute: ActiveBatChargeFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveBatChargeFaults::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_PSCFG_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_PSCFG_3_1_SimulatedSuite() : TestCommand("Test_TC_PSCFG_3_1_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_PSCFG_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: Sources"); + return WaitAttribute(GetEndpoint(0), PowerSourceConfiguration::Id, PowerSourceConfiguration::Attributes::Sources::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RH_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_RH_3_1_SimulatedSuite() : TestCommand("Test_TC_RH_3_1_Simulated", 5) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RH_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute MeasuredValue"); + return WaitAttribute(GetEndpoint(0), RelativeHumidityMeasurement::Id, + RelativeHumidityMeasurement::Attributes::MeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), RelativeHumidityMeasurement::Id, + RelativeHumidityMeasurement::Attributes::MinMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), RelativeHumidityMeasurement::Id, + RelativeHumidityMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 4: { + LogStep(4, "Read attribute Tolerance"); + return WaitAttribute(GetEndpoint(0), RelativeHumidityMeasurement::Id, + RelativeHumidityMeasurement::Attributes::Tolerance::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SWTCH_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_SWTCH_3_1_SimulatedSuite() : TestCommand("Test_TC_SWTCH_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_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read NumberOfPositions attribute"); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::NumberOfPositions::Id); + } + case 2: { + LogStep(2, "Read CurrentPosition attribute"); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::CurrentPosition::Id); + } + case 3: { + LogStep(3, "Read MultiPressMax attribute"); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::MultiPressMax::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WNCV_5_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_WNCV_5_1_SimulatedSuite() : TestCommand("Test_TC_WNCV_5_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_WNCV_5_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "DUT reads the FeatureMap attribute from TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.Afffc"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id); + } + case 2: { + LogStep(2, "DUT reads the Type attribute from TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::Type::Id); + } + case 3: { + LogStep(3, "DUT reads the EndProductType attribute from TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::EndProductType::Id); + } + case 4: { + LogStep(4, "DUT reads the Mode attribute from TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::Mode::Id); + } + case 5: { + LogStep(5, "DUT reads the ConfigStatus attribute from TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); + } + } + return CHIP_NO_ERROR; + } +}; + std::unique_ptr GetTestCommand(std::string testName) { if (testName == "Test_TC_BINFO_2_3_Simulated") { 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()); + } + if (testName == "Test_TC_DGETH_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_DGETH_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_DGETH_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGETH_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGSW_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_DGSW_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_DGSW_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGSW_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGWIFI_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_DGWIFI_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_DGWIFI_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGWIFI_3_2_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()); + } return nullptr; } @@ -185,4 +1811,22 @@ 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_DGETH_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGSW_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGSW_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGWIFI_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGWIFI_3_2_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"); } diff --git a/zzz_generated/placeholder/app2/zap-generated/CHIPClientCallbacks.h b/zzz_generated/placeholder/app2/zap-generated/CHIPClientCallbacks.h index 0f50adab2d2f62..707be5dcd69d6f 100644 --- a/zzz_generated/placeholder/app2/zap-generated/CHIPClientCallbacks.h +++ b/zzz_generated/placeholder/app2/zap-generated/CHIPClientCallbacks.h @@ -48,6 +48,9 @@ typedef void (*OperationalCredentialsFabricsListAttributeCallback)( chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & data); typedef void (*OperationalCredentialsTrustedRootCertificatesListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); +typedef void (*FixedLabelLabelListListAttributeCallback)( + void * context, + const chip::app::DataModel::DecodableList & data); typedef void (*ModeSelectSupportedModesListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); diff --git a/zzz_generated/placeholder/app2/zap-generated/CHIPClusters.h b/zzz_generated/placeholder/app2/zap-generated/CHIPClusters.h index b1122aeaa10f55..39cffc7788d3a2 100644 --- a/zzz_generated/placeholder/app2/zap-generated/CHIPClusters.h +++ b/zzz_generated/placeholder/app2/zap-generated/CHIPClusters.h @@ -67,6 +67,15 @@ class DLL_EXPORT OperationalCredentialsCluster : public ClusterBase ~OperationalCredentialsCluster() {} }; +class DLL_EXPORT FixedLabelCluster : public ClusterBase +{ +public: + FixedLabelCluster(Messaging::ExchangeManager & exchangeManager, const SessionHandle & session, EndpointId endpoint) : + ClusterBase(exchangeManager, session, app::Clusters::FixedLabel::Id, endpoint) + {} + ~FixedLabelCluster() {} +}; + class DLL_EXPORT ModeSelectCluster : public ClusterBase { public: diff --git a/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h b/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h index 53132cc7b6f97a..f0115f9e1a4199 100644 --- a/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h +++ b/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h @@ -106,7 +106,7 @@ #define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask // This is an array of EmberAfAttributeMetadata structures. -#define GENERATED_ATTRIBUTE_COUNT 335 +#define GENERATED_ATTRIBUTE_COUNT 338 #define GENERATED_ATTRIBUTES \ { \ \ @@ -484,6 +484,7 @@ { 0x00000000, ZAP_TYPE(INT16S), 2, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x8000) }, /* MeasuredValue */ \ { 0x00000001, ZAP_TYPE(INT16S), 2, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x8000) }, /* MinMeasuredValue */ \ { 0x00000002, ZAP_TYPE(INT16S), 2, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0x8000) }, /* MaxMeasuredValue */ \ + { 0x00000003, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* Tolerance */ \ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ \ @@ -621,6 +622,10 @@ { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ \ + /* Endpoint: 1, Cluster: Fixed Label (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* label list */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ /* Endpoint: 1, Cluster: Color Control (server) */ \ { 0x00000003, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x616B) }, /* CurrentX */ \ { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x607D) }, /* CurrentY */ \ @@ -858,7 +863,7 @@ // clang-format on #define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask -#define GENERATED_CLUSTER_COUNT 50 +#define GENERATED_CLUSTER_COUNT 52 // clang-format off #define GENERATED_CLUSTERS { \ @@ -1185,8 +1190,8 @@ /* Endpoint: 0, Cluster: Temperature Measurement (server) */ \ .clusterId = 0x00000402, \ .attributes = ZAP_ATTRIBUTE_INDEX(238), \ - .attributeCount = 5, \ - .clusterSize = 12, \ + .attributeCount = 6, \ + .clusterSize = 14, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ .functions = NULL, \ .acceptedCommandList = nullptr ,\ @@ -1195,7 +1200,7 @@ { \ /* Endpoint: 0, Cluster: Pressure Measurement (server) */ \ .clusterId = 0x00000403, \ - .attributes = ZAP_ATTRIBUTE_INDEX(243), \ + .attributes = ZAP_ATTRIBUTE_INDEX(244), \ .attributeCount = 11, \ .clusterSize = 23, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1206,7 +1211,7 @@ { \ /* Endpoint: 0, Cluster: Flow Measurement (server) */ \ .clusterId = 0x00000404, \ - .attributes = ZAP_ATTRIBUTE_INDEX(254), \ + .attributes = ZAP_ATTRIBUTE_INDEX(255), \ .attributeCount = 6, \ .clusterSize = 14, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1217,7 +1222,7 @@ { \ /* Endpoint: 0, Cluster: Relative Humidity Measurement (client) */ \ .clusterId = 0x00000405, \ - .attributes = ZAP_ATTRIBUTE_INDEX(260), \ + .attributes = ZAP_ATTRIBUTE_INDEX(261), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1228,7 +1233,7 @@ { \ /* Endpoint: 0, Cluster: Relative Humidity Measurement (server) */ \ .clusterId = 0x00000405, \ - .attributes = ZAP_ATTRIBUTE_INDEX(260), \ + .attributes = ZAP_ATTRIBUTE_INDEX(261), \ .attributeCount = 6, \ .clusterSize = 14, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1239,7 +1244,7 @@ { \ /* Endpoint: 0, Cluster: Target Navigator (client) */ \ .clusterId = 0x00000505, \ - .attributes = ZAP_ATTRIBUTE_INDEX(266), \ + .attributes = ZAP_ATTRIBUTE_INDEX(267), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1250,7 +1255,7 @@ { \ /* Endpoint: 0, Cluster: Target Navigator (server) */ \ .clusterId = 0x00000505, \ - .attributes = ZAP_ATTRIBUTE_INDEX(266), \ + .attributes = ZAP_ATTRIBUTE_INDEX(267), \ .attributeCount = 4, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1261,7 +1266,7 @@ { \ /* Endpoint: 0, Cluster: Keypad Input (client) */ \ .clusterId = 0x00000509, \ - .attributes = ZAP_ATTRIBUTE_INDEX(270), \ + .attributes = ZAP_ATTRIBUTE_INDEX(271), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1272,7 +1277,7 @@ { \ /* Endpoint: 0, Cluster: Keypad Input (server) */ \ .clusterId = 0x00000509, \ - .attributes = ZAP_ATTRIBUTE_INDEX(270), \ + .attributes = ZAP_ATTRIBUTE_INDEX(271), \ .attributeCount = 2, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1283,7 +1288,7 @@ { \ /* Endpoint: 0, Cluster: Content Launcher (client) */ \ .clusterId = 0x0000050A, \ - .attributes = ZAP_ATTRIBUTE_INDEX(272), \ + .attributes = ZAP_ATTRIBUTE_INDEX(273), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1294,7 +1299,7 @@ { \ /* Endpoint: 0, Cluster: Content Launcher (server) */ \ .clusterId = 0x0000050A, \ - .attributes = ZAP_ATTRIBUTE_INDEX(272), \ + .attributes = ZAP_ATTRIBUTE_INDEX(273), \ .attributeCount = 4, \ .clusterSize = 10, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1305,7 +1310,7 @@ { \ /* Endpoint: 0, Cluster: Application Basic (client) */ \ .clusterId = 0x0000050D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(276), \ + .attributes = ZAP_ATTRIBUTE_INDEX(277), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1316,7 +1321,7 @@ { \ /* Endpoint: 0, Cluster: Application Basic (server) */ \ .clusterId = 0x0000050D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(276), \ + .attributes = ZAP_ATTRIBUTE_INDEX(277), \ .attributeCount = 10, \ .clusterSize = 110, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ @@ -1327,7 +1332,7 @@ { \ /* Endpoint: 1, Cluster: Identify (server) */ \ .clusterId = 0x00000003, \ - .attributes = ZAP_ATTRIBUTE_INDEX(286), \ + .attributes = ZAP_ATTRIBUTE_INDEX(287), \ .attributeCount = 4, \ .clusterSize = 9, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \ @@ -1338,7 +1343,7 @@ { \ /* Endpoint: 1, Cluster: Groups (server) */ \ .clusterId = 0x00000004, \ - .attributes = ZAP_ATTRIBUTE_INDEX(290), \ + .attributes = ZAP_ATTRIBUTE_INDEX(291), \ .attributeCount = 3, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1349,7 +1354,7 @@ { \ /* Endpoint: 1, Cluster: Scenes (server) */ \ .clusterId = 0x00000005, \ - .attributes = ZAP_ATTRIBUTE_INDEX(293), \ + .attributes = ZAP_ATTRIBUTE_INDEX(294), \ .attributeCount = 7, \ .clusterSize = 12, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1360,7 +1365,7 @@ { \ /* Endpoint: 1, Cluster: On/Off (client) */ \ .clusterId = 0x00000006, \ - .attributes = ZAP_ATTRIBUTE_INDEX(300), \ + .attributes = ZAP_ATTRIBUTE_INDEX(301), \ .attributeCount = 0, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(CLIENT), \ @@ -1371,7 +1376,7 @@ { \ /* Endpoint: 1, Cluster: On/Off (server) */ \ .clusterId = 0x00000006, \ - .attributes = ZAP_ATTRIBUTE_INDEX(300), \ + .attributes = ZAP_ATTRIBUTE_INDEX(301), \ .attributeCount = 3, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1382,7 +1387,7 @@ { \ /* Endpoint: 1, Cluster: Level Control (server) */ \ .clusterId = 0x00000008, \ - .attributes = ZAP_ATTRIBUTE_INDEX(303), \ + .attributes = ZAP_ATTRIBUTE_INDEX(304), \ .attributeCount = 3, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1393,7 +1398,7 @@ { \ /* Endpoint: 1, Cluster: Basic (server) */ \ .clusterId = 0x00000028, \ - .attributes = ZAP_ATTRIBUTE_INDEX(306), \ + .attributes = ZAP_ATTRIBUTE_INDEX(307), \ .attributeCount = 22, \ .clusterSize = 41, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1401,10 +1406,32 @@ .acceptedCommandList = nullptr ,\ .generatedCommandList = nullptr ,\ },\ + { \ + /* Endpoint: 1, Cluster: Fixed Label (client) */ \ + .clusterId = 0x00000040, \ + .attributes = ZAP_ATTRIBUTE_INDEX(329), \ + .attributeCount = 0, \ + .clusterSize = 0, \ + .mask = ZAP_CLUSTER_MASK(CLIENT), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 1, Cluster: Fixed Label (server) */ \ + .clusterId = 0x00000040, \ + .attributes = ZAP_ATTRIBUTE_INDEX(329), \ + .attributeCount = 2, \ + .clusterSize = 2, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ { \ /* Endpoint: 1, Cluster: Color Control (server) */ \ .clusterId = 0x00000300, \ - .attributes = ZAP_ATTRIBUTE_INDEX(328), \ + .attributes = ZAP_ATTRIBUTE_INDEX(331), \ .attributeCount = 7, \ .clusterSize = 15, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ @@ -1418,12 +1445,12 @@ #define ZAP_CLUSTER_INDEX(index) (&generatedClusters[index]) -#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 37 +#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 38 // This is an array of EmberAfEndpointType structures. #define GENERATED_ENDPOINT_TYPES \ { \ - { ZAP_CLUSTER_INDEX(0), 42, 790 }, { ZAP_CLUSTER_INDEX(42), 8, 98 }, \ + { ZAP_CLUSTER_INDEX(0), 42, 792 }, { ZAP_CLUSTER_INDEX(42), 10, 100 }, \ } // Largest attribute size is needed for various buffers @@ -1435,7 +1462,7 @@ static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE, #define ATTRIBUTE_SINGLETONS_SIZE (74) // Total size of attribute storage -#define ATTRIBUTE_MAX_SIZE (888) +#define ATTRIBUTE_MAX_SIZE (892) // Number of fixed endpoints #define FIXED_ENDPOINT_COUNT (2) diff --git a/zzz_generated/placeholder/app2/zap-generated/gen_config.h b/zzz_generated/placeholder/app2/zap-generated/gen_config.h index e76b8482cbb1c7..1a346998113ce1 100644 --- a/zzz_generated/placeholder/app2/zap-generated/gen_config.h +++ b/zzz_generated/placeholder/app2/zap-generated/gen_config.h @@ -52,6 +52,8 @@ #define EMBER_AF_ADMINISTRATOR_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1) #define EMBER_AF_OPERATIONAL_CREDENTIALS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) #define EMBER_AF_OPERATIONAL_CREDENTIALS_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_FIXED_LABEL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_FIXED_LABEL_CLUSTER_SERVER_ENDPOINT_COUNT (1) #define EMBER_AF_BOOLEAN_STATE_CLUSTER_SERVER_ENDPOINT_COUNT (1) #define EMBER_AF_MODE_SELECT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) #define EMBER_AF_MODE_SELECT_CLUSTER_SERVER_ENDPOINT_COUNT (1) @@ -206,6 +208,15 @@ #define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS_SERVER #define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS +// Use this macro to check if the client side of the Fixed Label cluster is included +#define ZCL_USING_FIXED_LABEL_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_FIXED_LABEL_CLIENT + +// Use this macro to check if the server side of the Fixed Label cluster is included +#define ZCL_USING_FIXED_LABEL_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_FIXED_LABEL_SERVER +#define EMBER_AF_PLUGIN_FIXED_LABEL + // Use this macro to check if the server side of the Boolean State cluster is included #define ZCL_USING_BOOLEAN_STATE_CLUSTER_SERVER #define EMBER_AF_PLUGIN_BOOLEAN_STATE_SERVER diff --git a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h index 57a0e749365f1a..268e29773dcae2 100644 --- a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h @@ -171,12 +171,1638 @@ 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", 4) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: ActionList"); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::ActionList::Id); + } + case 2: { + LogStep(2, "Read attribute: EndpointLists"); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::EndpointLists::Id); + } + case 3: { + LogStep(3, "Read attribute: SetupURL"); + return WaitAttribute(GetEndpoint(0), Actions::Id, Actions::Attributes::SetupURL::Id); + } + } + 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", 2) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: StateValue"); + return WaitAttribute(GetEndpoint(0), BooleanState::Id, BooleanState::Attributes::StateValue::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DESC_2_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DESC_2_2_SimulatedSuite() : TestCommand("Test_TC_DESC_2_2_Simulated", 5) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DESC_2_2_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "DUT reads DeviceTypeList from TH."); + VerifyOrDo(!ShouldSkip("DESC.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::DeviceTypeList::Id); + } + case 2: { + LogStep(2, "DUT reads ServerList from the TH"); + VerifyOrDo(!ShouldSkip("DESC.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::ServerList::Id); + } + case 3: { + LogStep(3, "DUT reads ClientList attribute from the TH"); + VerifyOrDo(!ShouldSkip("DESC.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::ClientList::Id); + } + case 4: { + LogStep(4, "DUT reads PartsList attribute from the TH"); + VerifyOrDo(!ShouldSkip("DESC.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::PartsList::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGETH_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGETH_3_1_SimulatedSuite() : TestCommand("Test_TC_DGETH_3_1_Simulated", 10) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGETH_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: PHYRate"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::PHYRate::Id); + } + case 2: { + LogStep(2, "Read attribute: FullDuplex"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::FullDuplex::Id); + } + case 3: { + LogStep(3, "Read attribute: PacketRxCount"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::PacketRxCount::Id); + } + case 4: { + LogStep(4, "Read attribute: PacketTxCount"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::PacketTxCount::Id); + } + case 5: { + LogStep(5, "Read attribute: TxErrCount"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::TxErrCount::Id); + } + case 6: { + LogStep(6, "Read attribute: CollisionCount"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::CollisionCount::Id); + } + case 7: { + LogStep(7, "Read attribute: OverrunCount"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::OverrunCount::Id); + } + case 8: { + LogStep(8, "Read attribute: CarrierDetect"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::CarrierDetect::Id); + } + case 9: { + LogStep(9, "Read attribute: TimeSinceReset"); + VerifyOrDo(!ShouldSkip("DGETH.C.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Attributes::TimeSinceReset::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGETH_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGETH_3_2_SimulatedSuite() : TestCommand("Test_TC_DGETH_3_2_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGETH_3_2_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "DUT sends ResetCounts to TH"); + VerifyOrDo(!ShouldSkip("DGETH.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), EthernetNetworkDiagnostics::Id, + EthernetNetworkDiagnostics::Commands::ResetCounts::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGSW_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGSW_3_1_SimulatedSuite() : TestCommand("Test_TC_DGSW_3_1_Simulated", 5) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGSW_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: ThreadMetrics"); + VerifyOrDo(!ShouldSkip("DGSW.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::ThreadMetrics::Id); + } + case 2: { + LogStep(2, "Read attribute: CurrentHeapFree"); + VerifyOrDo(!ShouldSkip("DGSW.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::CurrentHeapFree::Id); + } + case 3: { + LogStep(3, "Read attribute: CurrentHeapUsed"); + VerifyOrDo(!ShouldSkip("DGSW.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Attributes::CurrentHeapUsed::Id); + } + case 4: { + LogStep(4, "Read attribute: CurrentHeapHighWatermark"); + VerifyOrDo(!ShouldSkip("DGSW.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), SoftwareDiagnostics::Id, + SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGSW_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGSW_3_2_SimulatedSuite() : TestCommand("Test_TC_DGSW_3_2_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGSW_3_2_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "DUT sends ResetWatermarks to TH"); + VerifyOrDo(!ShouldSkip("DGSW.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), SoftwareDiagnostics::Id, SoftwareDiagnostics::Commands::ResetWatermarks::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGWIFI_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGWIFI_3_1_SimulatedSuite() : TestCommand("Test_TC_DGWIFI_3_1_Simulated", 14) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGWIFI_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: BSSID"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Bssid::Id); + } + case 2: { + LogStep(2, "Read attribute: SecurityType"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::SecurityType::Id); + } + case 3: { + LogStep(3, "Read attribute: WiFiVersion"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::WiFiVersion::Id); + } + case 4: { + LogStep(4, "Read attribute: ChannelNumber"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::ChannelNumber::Id); + } + case 5: { + LogStep(5, "Read attribute: RSSI"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::Rssi::Id); + } + case 6: { + LogStep(6, "Read attribute: BeaconLostCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::BeaconLostCount::Id); + } + case 7: { + LogStep(7, "Read attribute: BeaconRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Attributes::BeaconRxCount::Id); + } + case 8: { + LogStep(8, "Read attribute: PacketMulticastRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::Id); + } + case 9: { + LogStep(9, "Read attribute: PacketMulticastTxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::Id); + } + case 10: { + LogStep(10, "Read attribute: PacketUnicastRxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::Id); + } + case 11: { + LogStep(11, "Read attribute: PacketUnicastTxCount"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::Id); + } + case 12: { + LogStep(12, "Read attribute: CurrentMaxRate"); + VerifyOrDo(!ShouldSkip("DGWIFI.C.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WiFiNetworkDiagnostics::Id, + WiFiNetworkDiagnostics::Attributes::CurrentMaxRate::Id); + } + case 13: { + LogStep(13, "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_DGWIFI_3_2_SimulatedSuite : public TestCommand +{ +public: + Test_TC_DGWIFI_3_2_SimulatedSuite() : TestCommand("Test_TC_DGWIFI_3_2_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGWIFI_3_2_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "DUT sends ResetCounts command to TH"); + VerifyOrDo(!ShouldSkip("DGTHREAD.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitCommand(GetEndpoint(0), WiFiNetworkDiagnostics::Id, WiFiNetworkDiagnostics::Commands::ResetCounts::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", 5) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MinMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 4: { + LogStep(4, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), FlowMeasurement::Id, FlowMeasurement::Attributes::Tolerance::Id); + } + } + 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", 2) + { + 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) + { + case 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "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", 5) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: identify time"); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 2: { + LogStep(2, "write attribute: identify time"); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 3: { + LogStep(3, "Readback attribute: identify time"); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyTime::Id); + } + case 4: { + LogStep(4, "Read attribute: identifytype"); + return WaitAttribute(GetEndpoint(1), Identify::Id, Identify::Attributes::IdentifyType::Id); + } + } + 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", 10) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: MeasuredValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute: MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MinMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute: MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 4: { + LogStep(4, "Read attribute: Tolerance"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::Tolerance::Id); + } + case 5: { + LogStep(5, "Read attribute: ScaledValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::ScaledValue::Id); + } + case 6: { + LogStep(6, "Read attribute: MinScaledValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MinScaledValue::Id); + } + case 7: { + LogStep(7, "Read attribute: MaxScaledValue"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::MaxScaledValue::Id); + } + case 8: { + LogStep(8, "Read attribute: ScaledTolerance"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::ScaledTolerance::Id); + } + case 9: { + LogStep(9, "Read attribute: Scale"); + return WaitAttribute(GetEndpoint(0), PressureMeasurement::Id, PressureMeasurement::Attributes::Scale::Id); + } + } + 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", 32) + { + 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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: Status"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Status::Id); + } + case 2: { + LogStep(2, "Read attribute: Order"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Order::Id); + } + case 3: { + LogStep(3, "Read attribute: Description"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::Description::Id); + } + case 4: { + LogStep(4, "Read attribute: WiredAssessedInputVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedInputVoltage::Id); + } + case 5: { + LogStep(5, "Read attribute: WiredAssessedInputFrequency"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedInputFrequency::Id); + } + case 6: { + LogStep(6, "Read attribute: WiredCurrentType"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredCurrentType::Id); + } + case 7: { + LogStep(7, "Read attribute: WiredAssessedCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredAssessedCurrent::Id); + } + case 8: { + LogStep(8, "Read attribute: WiredNominalVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredNominalVoltage::Id); + } + case 9: { + LogStep(9, "Read attribute: WiredPresent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredPresent::Id); + } + case 10: { + LogStep(10, "Read attribute: WiredMaximumCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::WiredMaximumCurrent::Id); + } + case 11: { + LogStep(11, "Read attribute: ActiveWiredFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveWiredFaults::Id); + } + case 12: { + LogStep(12, "Read attribute: BatVoltage"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatVoltage::Id); + } + case 13: { + LogStep(13, "Read attribute: BatPercentRemaining"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatPercentRemaining::Id); + } + case 14: { + LogStep(14, "Read attribute: BatTimeRemaining"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatTimeRemaining::Id); + } + case 15: { + LogStep(15, "Read attribute: BatChargeLevel"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargeLevel::Id); + } + case 16: { + LogStep(16, "Read attribute: BatReplacementNeeded"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplacementNeeded::Id); + } + case 17: { + LogStep(17, "Read attribute: BatReplaceability"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplaceability::Id); + } + case 18: { + LogStep(18, "Read attribute: BatPresent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatPresent::Id); + } + case 19: { + LogStep(19, "Read attribute: ActiveBatFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveBatFaults::Id); + } + case 20: { + LogStep(20, "Read attribute: BatReplacementDescription"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatReplacementDescription::Id); + } + case 21: { + LogStep(21, "Read attribute: BatCommonDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatCommonDesignation::Id); + } + case 22: { + LogStep(22, "Read attribute: BatANSIDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatANSIDesignation::Id); + } + case 23: { + LogStep(23, "Read attribute: BatIECDesignation"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatIECDesignation::Id); + } + case 24: { + LogStep(24, "Read attribute: BatApprovedChemistry"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatApprovedChemistry::Id); + } + case 25: { + LogStep(25, "Read attribute: BatCapacity"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatCapacity::Id); + } + case 26: { + LogStep(26, "Read attribute: BatQuantity"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatQuantity::Id); + } + case 27: { + LogStep(27, "Read attribute: BatChargeState"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargeState::Id); + } + case 28: { + LogStep(28, "Read attribute: BatTimeToFullCharge"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatTimeToFullCharge::Id); + } + case 29: { + LogStep(29, "Read attribute: BatFunctionalWhileCharging"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatFunctionalWhileCharging::Id); + } + case 30: { + LogStep(30, "Read attribute: BatChargingCurrent"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::BatChargingCurrent::Id); + } + case 31: { + LogStep(31, "Read attribute: ActiveBatChargeFaults"); + return WaitAttribute(GetEndpoint(0), PowerSource::Id, PowerSource::Attributes::ActiveBatChargeFaults::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_PSCFG_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_PSCFG_3_1_SimulatedSuite() : TestCommand("Test_TC_PSCFG_3_1_Simulated", 2) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_PSCFG_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute: Sources"); + return WaitAttribute(GetEndpoint(0), PowerSourceConfiguration::Id, PowerSourceConfiguration::Attributes::Sources::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RH_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_RH_3_1_SimulatedSuite() : TestCommand("Test_TC_RH_3_1_Simulated", 5) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RH_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read attribute MeasuredValue"); + return WaitAttribute(GetEndpoint(0), RelativeHumidityMeasurement::Id, + RelativeHumidityMeasurement::Attributes::MeasuredValue::Id); + } + case 2: { + LogStep(2, "Read attribute MinMeasuredValue"); + return WaitAttribute(GetEndpoint(0), RelativeHumidityMeasurement::Id, + RelativeHumidityMeasurement::Attributes::MinMeasuredValue::Id); + } + case 3: { + LogStep(3, "Read attribute MaxMeasuredValue"); + return WaitAttribute(GetEndpoint(0), RelativeHumidityMeasurement::Id, + RelativeHumidityMeasurement::Attributes::MaxMeasuredValue::Id); + } + case 4: { + LogStep(4, "Read attribute Tolerance"); + return WaitAttribute(GetEndpoint(0), RelativeHumidityMeasurement::Id, + RelativeHumidityMeasurement::Attributes::Tolerance::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SWTCH_3_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_SWTCH_3_1_SimulatedSuite() : TestCommand("Test_TC_SWTCH_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_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Read NumberOfPositions attribute"); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::NumberOfPositions::Id); + } + case 2: { + LogStep(2, "Read CurrentPosition attribute"); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::CurrentPosition::Id); + } + case 3: { + LogStep(3, "Read MultiPressMax attribute"); + return WaitAttribute(GetEndpoint(0), Switch::Id, Switch::Attributes::MultiPressMax::Id); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WNCV_5_1_SimulatedSuite : public TestCommand +{ +public: + Test_TC_WNCV_5_1_SimulatedSuite() : TestCommand("Test_TC_WNCV_5_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_WNCV_5_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 0: + 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 device to be commissioned"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissioning::Type value; + return WaitForCommissioning(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "DUT reads the FeatureMap attribute from TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.Afffc"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::FeatureMap::Id); + } + case 2: { + LogStep(2, "DUT reads the Type attribute from TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::Type::Id); + } + case 3: { + LogStep(3, "DUT reads the EndProductType attribute from TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::EndProductType::Id); + } + case 4: { + LogStep(4, "DUT reads the Mode attribute from TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::Mode::Id); + } + case 5: { + LogStep(5, "DUT reads the ConfigStatus attribute from TH"); + VerifyOrDo(!ShouldSkip("WNCV.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitAttribute(GetEndpoint(0), WindowCovering::Id, WindowCovering::Attributes::ConfigStatus::Id); + } + } + return CHIP_NO_ERROR; + } +}; + std::unique_ptr GetTestCommand(std::string testName) { if (testName == "Test_TC_BINFO_2_3_Simulated") { 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()); + } + if (testName == "Test_TC_DGETH_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_DGETH_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_DGETH_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGETH_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGSW_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_DGSW_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_DGSW_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGSW_3_2_SimulatedSuite()); + } + if (testName == "Test_TC_DGWIFI_3_1_Simulated") + { + return std::unique_ptr(new Test_TC_DGWIFI_3_1_SimulatedSuite()); + } + if (testName == "Test_TC_DGWIFI_3_2_Simulated") + { + return std::unique_ptr(new Test_TC_DGWIFI_3_2_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()); + } return nullptr; } @@ -185,4 +1811,22 @@ 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_DGETH_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGSW_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGSW_3_2_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGWIFI_3_1_Simulated"); + ChipLogError(chipTool, "\t* Test_TC_DGWIFI_3_2_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"); }