# 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: 80.1.3. [TC-MOD-1.3] Attributes with client as DUT

PICS:
    - MOD.C
    - MOD.C.AM-READ
    - MOD.C.AO-READ
    - MOD.C.AM-WRITE
    - MOD.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 modeselect read supported-modes 1 1

          verify the "supported-modes response" on the TH (all-cluster-app) log:

          [1650968776.863713][12747:12747] CHIP:IM: Received Read request
          [1650968776.863767][12747:12747] CHIP:DMG: ReadRequestMessage =
          [1650968776.863793][12747:12747] CHIP:DMG: {
          [1650968776.863825][12747:12747] CHIP:DMG:         AttributePathIBs =
          [1650968776.863852][12747:12747] CHIP:DMG:         [
          [1650968776.863876][12747:12747] CHIP:DMG:                 AttributePathIB =
          [1650968776.863953][12747:12747] CHIP:DMG:                 {
          [1650968776.863984][12747:12747] CHIP:DMG:                         Endpoint = 0x1,
          [1650968776.864023][12747:12747] CHIP:DMG:                         Cluster = 0x50,
          [1650968776.864052][12747:12747] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1650968776.864085][12747:12747] CHIP:DMG:                 }
          [1650968776.864124][12747:12747] CHIP:DMG:
          [1650968776.864153][12747:12747] CHIP:DMG:         ],
          [1650968776.864190][12747:12747] CHIP:DMG:
          [1650968776.864216][12747:12747] CHIP:DMG:         isFabricFiltered = true,
          [1650968776.864251][12747:12747] CHIP:DMG:         InteractionModelRevision = 1
          [1650968776.864273][12747:12747] CHIP:DMG: },
          [1650968776.864361][12747:12747] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1650968776.864454][12747:12747] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1650968776.864493][12747:12747] CHIP:DMG: <RE:Run> Cluster 50, Attribute 2 is dirty
          [1650968776.864514][12747:12747] CHIP:DMG: Reading attribute: Cluster=0x0000_0050 Endpoint=1 AttributeId=0x0000_0002 (expanded=0)
          [1650968776.864543][12747:12747] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0050 e=1 p=v
          [1650968776.864584][12747:12747] CHIP:DMG: AccessControl: allowed


          ./chip-tool modeselect read current-mode 1 1

          verify the "current-modes response" on the TH (all-cluster-app) log:

          1650968848.687576][12747:12747] CHIP:IM: Received Read request
          [1650968848.687628][12747:12747] CHIP:DMG: ReadRequestMessage =
          [1650968848.687653][12747:12747] CHIP:DMG: {
          [1650968848.687674][12747:12747] CHIP:DMG:         AttributePathIBs =
          [1650968848.687738][12747:12747] CHIP:DMG:         [
          [1650968848.687763][12747:12747] CHIP:DMG:                 AttributePathIB =
          [1650968848.687795][12747:12747] CHIP:DMG:                 {
          [1650968848.687822][12747:12747] CHIP:DMG:                         Endpoint = 0x1,
          [1650968848.687855][12747:12747] CHIP:DMG:                         Cluster = 0x50,
          [1650968848.687887][12747:12747] CHIP:DMG:                         Attribute = 0x0000_0003,
          [1650968848.687917][12747:12747] CHIP:DMG:                 }
          [1650968848.687974][12747:12747] CHIP:DMG:
          [1650968848.688003][12747:12747] CHIP:DMG:         ],
          [1650968848.688031][12747:12747] CHIP:DMG:
          [1650968848.688057][12747:12747] CHIP:DMG:         isFabricFiltered = true,
          [1650968848.688082][12747:12747] CHIP:DMG:         InteractionModelRevision = 1
          [1650968848.688105][12747:12747] CHIP:DMG: },
          [1650968848.688174][12747:12747] CHIP:DMG: IM RH moving to [GeneratingReports]




           ./chip-tool modeselect read standard-namespace 1 1

          verify the "standard-namespace response" on the TH (all-cluster-app) log:

          1650968644.223891][12747:12747] CHIP:IM: Received Read request
          [1650968644.223954][12747:12747] CHIP:DMG: ReadRequestMessage =
          [1650968644.223981][12747:12747] CHIP:DMG: {
          [1650968644.224003][12747:12747] CHIP:DMG:         AttributePathIBs =
          [1650968644.224028][12747:12747] CHIP:DMG:         [
          [1650968644.224052][12747:12747] CHIP:DMG:                 AttributePathIB =
          [1650968644.224099][12747:12747] CHIP:DMG:                 {
          [1650968644.224139][12747:12747] CHIP:DMG:                         Endpoint = 0x1,
          [1650968644.224169][12747:12747] CHIP:DMG:                         Cluster = 0x50,
          [1650968644.224206][12747:12747] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1650968644.224233][12747:12747] CHIP:DMG:                 }
          [1650968644.224272][12747:12747] CHIP:DMG:
          [1650968644.224297][12747:12747] CHIP:DMG:         ],
          [1650968644.224334][12747:12747] CHIP:DMG:
          [1650968644.224369][12747:12747] CHIP:DMG:         isFabricFiltered = true,
          [1650968644.224394][12747:12747] CHIP:DMG:         InteractionModelRevision = 1
          [1650968644.224426][12747:12747] CHIP:DMG: },
          [1650968644.224507][12747:12747] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1650968644.224596][12747:12747] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1650968644.224633][12747:12747] CHIP:DMG: <RE:Run> Cluster 50, Attribute 1 is dirty
          [1650968644.224658][12747:12747] CHIP:DMG: Reading attribute: Cluster=0x0000_0050 Endpoint=1 AttributeId=0x0000_0001 (expanded=0)
          [1650968644.224687][12747:12747] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0050 e=1 p=v
          [1650968644.224720][12747:12747] CHIP:DMG: AccessControl: allowed



          ./chip-tool modeselect read description 1 1

          verify the "description response" on the TH (all-cluster-app) log:

          [1650969447.413679][12747:12747] CHIP:EM: Handling via exchange: 65381r, Delegate: 0xaaaae5201098
          [1650969447.413718][12747:12747] CHIP:IM: Received Read request
          [1650969447.413769][12747:12747] CHIP:DMG: ReadRequestMessage =
          [1650969447.413795][12747:12747] CHIP:DMG: {
          [1650969447.413836][12747:12747] CHIP:DMG:         AttributePathIBs =
          [1650969447.413865][12747:12747] CHIP:DMG:         [
          [1650969447.413889][12747:12747] CHIP:DMG:                 AttributePathIB =
          [1650969447.413924][12747:12747] CHIP:DMG:                 {
          [1650969447.413956][12747:12747] CHIP:DMG:                         Endpoint = 0x1,
          [1650969447.413989][12747:12747] CHIP:DMG:                         Cluster = 0x50,
          [1650969447.414021][12747:12747] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1650969447.414051][12747:12747] CHIP:DMG:                 }
          [1650969447.414080][12747:12747] CHIP:DMG:
          [1650969447.414108][12747:12747] CHIP:DMG:         ],
          [1650969447.414137][12747:12747] CHIP:DMG:
          [1650969447.414163][12747:12747] CHIP:DMG:         isFabricFiltered = true,
          [1650969447.414188][12747:12747] CHIP:DMG:         InteractionModelRevision = 1
          [1650969447.414211][12747:12747] CHIP:DMG: },
          [1650969447.414280][12747:12747] 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: |
          ./chip-tool modeselect read on-mode 1 1

          verify the "on-modes response" on the TH (all-cluster-app) log:

          [1650969570.494960][12747:12747] CHIP:IM: Received Read request
          [1650969570.495012][12747:12747] CHIP:DMG: ReadRequestMessage =
          [1650969570.495038][12747:12747] CHIP:DMG: {
          [1650969570.495059][12747:12747] CHIP:DMG:         AttributePathIBs =
          [1650969570.495085][12747:12747] CHIP:DMG:         [
          [1650969570.495108][12747:12747] CHIP:DMG:                 AttributePathIB =
          [1650969570.495142][12747:12747] CHIP:DMG:                 {
          [1650969570.495172][12747:12747] CHIP:DMG:                         Endpoint = 0x1,
          [1650969570.495210][12747:12747] CHIP:DMG:                         Cluster = 0x50,
          [1650969570.495242][12747:12747] CHIP:DMG:                         Attribute = 0x0000_0005,
          [1650969570.495275][12747:12747] CHIP:DMG:                 }
          [1650969570.495304][12747:12747] CHIP:DMG:
          [1650969570.495332][12747:12747] CHIP:DMG:         ],
          [1650969570.495360][12747:12747] CHIP:DMG:
          [1650969570.495386][12747:12747] CHIP:DMG:         isFabricFiltered = true,
          [1650969570.495411][12747:12747] CHIP:DMG:         InteractionModelRevision = 1
          [1650969570.495435][12747:12747] CHIP:DMG: },
          [1650969570.495503][12747:12747] CHIP:DMG: IM RH moving to [GeneratingReports]

          ./chip-tool modeselect read start-up-mode 1 1


          verify the "start-up-modes response" on the TH (all-cluster-app) log:

          [1650970821.970899][12747:12747] CHIP:IM: Received Read request
          [1650970821.970950][12747:12747] CHIP:DMG: ReadRequestMessage =
          [1650970821.970975][12747:12747] CHIP:DMG: {
          [1650970821.970996][12747:12747] CHIP:DMG:         AttributePathIBs =
          [1650970821.971029][12747:12747] CHIP:DMG:         [
          [1650970821.971054][12747:12747] CHIP:DMG:                 AttributePathIB =
          [1650970821.971082][12747:12747] CHIP:DMG:                 {
          [1650970821.971110][12747:12747] CHIP:DMG:                         Endpoint = 0x1,
          [1650970821.971139][12747:12747] CHIP:DMG:                         Cluster = 0x50,
          [1650970821.971164][12747:12747] CHIP:DMG:                         Attribute = 0x0000_0004,
          [1650970821.971191][12747:12747] CHIP:DMG:                 }
          [1650970821.971216][12747:12747] CHIP:DMG:
          [1650970821.971238][12747:12747] CHIP:DMG:         ],
          [1650970821.971268][12747:12747] CHIP:DMG:
          [1650970821.971295][12747:12747] CHIP:DMG:         isFabricFiltered = true,
          [1650970821.971323][12747:12747] CHIP:DMG:         InteractionModelRevision = 1
          [1650970821.971349][12747:12747] CHIP:DMG: },
          [1650970821.971419][12747:12747] CHIP:DMG: IM RH moving to [GeneratingReports]
      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 modeselect read attribute-list  1 1

          verify the "attribute-list response" on the TH (all-cluster-minimal-app) log:

          [1659589890.492170][3088:3088] CHIP:IM: Received Read request
          [1659589890.492250][3088:3088] CHIP:DMG: ReadRequestMessage =
          [1659589890.492274][3088:3088] CHIP:DMG: {
          [1659589890.492292][3088:3088] CHIP:DMG:         AttributePathIBs =
          [1659589890.492315][3088:3088] CHIP:DMG:         [
          [1659589890.492350][3088:3088] CHIP:DMG:                 AttributePathIB =
          [1659589890.492382][3088:3088] CHIP:DMG:                 {
          [1659589890.492416][3088:3088] CHIP:DMG:                         Endpoint = 0x1,
          [1659589890.492444][3088:3088] CHIP:DMG:                         Cluster = 0x50,
          [1659589890.492481][3088:3088] CHIP:DMG:                         Attribute = 0x0000_FFFB,
          [1659589890.492510][3088:3088] CHIP:DMG:                 }
          [1659589890.492545][3088:3088] CHIP:DMG:
          [1659589890.492569][3088:3088] CHIP:DMG:         ],
          [1659589890.492603][3088:3088] CHIP:DMG:
          [1659589890.492627][3088:3088] CHIP:DMG:         isFabricFiltered = true,
          [1659589890.492658][3088:3088] CHIP:DMG:         InteractionModelRevision = 1
          [1659589890.492679][3088:3088] CHIP:DMG: },

          ./chip-tool modeselect read feature-map  1 1

          verify the " feature-map " on the TH (all-cluster-minimal-app) log:

          [1663142252.747239][5476:5476] CHIP:IM: Received Read request
          [1663142252.747411][5476:5476] CHIP:DMG: ReadRequestMessage =
          [1663142252.747649][5476:5476] CHIP:DMG: {
          [1663142252.747731][5476:5476] CHIP:DMG:         AttributePathIBs =
          [1663142252.747799][5476:5476] CHIP:DMG:         [
          [1663142252.747861][5476:5476] CHIP:DMG:                 AttributePathIB =
          [1663142252.747966][5476:5476] CHIP:DMG:                 {
          [1663142252.748039][5476:5476] CHIP:DMG:                         Endpoint = 0x1,
          [1663142252.748137][5476:5476] CHIP:DMG:                         Cluster = 0x50,
          [1663142252.748226][5476:5476] CHIP:DMG:                         Attribute = 0x0000_FFFC,
          [1663142252.748321][5476:5476] CHIP:DMG:                 }
          [1663142252.748398][5476:5476] CHIP:DMG:
          [1663142252.748488][5476:5476] CHIP:DMG:         ],
          [1663142252.748561][5476:5476] CHIP:DMG:
          [1663142252.748627][5476:5476] CHIP:DMG:         isFabricFiltered = true,
          [1663142252.748716][5476:5476] CHIP:DMG:         InteractionModelRevision = 1
          [1663142252.748775][5476:5476] CHIP:DMG: },
          [1663142252.748965][5476:5476] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1663142252.749188][5476:5476] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1663142252.749311][5476:5476] CHIP:DMG: <RE:Run> Cluster 50, Attribute fffc is dirty
          [1663142252.749358][5476:5476] CHIP:DMG: Reading attribute: Cluster=0x0000_0050 Endpoint=1 AttributeId=0x0000_FFFC (expanded=0)
          [1663142252.749531][5476:5476] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0050 e=1 p=v
          [1663142252.749617][5476:5476] CHIP:DMG: AccessControl: allowed

          ./chip-tool modeselect read supported-modes 1 1

          verify the "supported-modes response" on the TH (all-cluster-minimal-app) log:

          [1650968776.863713][12747:12747] CHIP:IM: Received Read request
          [1650968776.863767][12747:12747] CHIP:DMG: ReadRequestMessage =
          [1650968776.863793][12747:12747] CHIP:DMG: {
          [1650968776.863825][12747:12747] CHIP:DMG:         AttributePathIBs =
          [1650968776.863852][12747:12747] CHIP:DMG:         [
          [1650968776.863876][12747:12747] CHIP:DMG:                 AttributePathIB =
          [1650968776.863953][12747:12747] CHIP:DMG:                 {
          [1650968776.863984][12747:12747] CHIP:DMG:                         Endpoint = 0x1,
          [1650968776.864023][12747:12747] CHIP:DMG:                         Cluster = 0x50,
          [1650968776.864052][12747:12747] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1650968776.864085][12747:12747] CHIP:DMG:                 }
          [1650968776.864124][12747:12747] CHIP:DMG:
          [1650968776.864153][12747:12747] CHIP:DMG:         ],
          [1650968776.864190][12747:12747] CHIP:DMG:
          [1650968776.864216][12747:12747] CHIP:DMG:         isFabricFiltered = true,
          [1650968776.864251][12747:12747] CHIP:DMG:         InteractionModelRevision = 1
          [1650968776.864273][12747:12747] CHIP:DMG: },
          [1650968776.864361][12747:12747] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1650968776.864454][12747:12747] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1650968776.864493][12747:12747] CHIP:DMG: <RE:Run> Cluster 50, Attribute 2 is dirty
          [1650968776.864514][12747:12747] CHIP:DMG: Reading attribute: Cluster=0x0000_0050 Endpoint=1 AttributeId=0x0000_0002 (expanded=0)
          [1650968776.864543][12747:12747] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0050 e=1 p=v
          [1650968776.864584][12747:12747] CHIP:DMG: AccessControl: allowed


          ./chip-tool modeselect read current-mode 1 1

          verify the "current-modes response" on the TH (all-cluster-minimal-app) log:

          1650968848.687576][12747:12747] CHIP:IM: Received Read request
          [1650968848.687628][12747:12747] CHIP:DMG: ReadRequestMessage =
          [1650968848.687653][12747:12747] CHIP:DMG: {
          [1650968848.687674][12747:12747] CHIP:DMG:         AttributePathIBs =
          [1650968848.687738][12747:12747] CHIP:DMG:         [
          [1650968848.687763][12747:12747] CHIP:DMG:                 AttributePathIB =
          [1650968848.687795][12747:12747] CHIP:DMG:                 {
          [1650968848.687822][12747:12747] CHIP:DMG:                         Endpoint = 0x1,
          [1650968848.687855][12747:12747] CHIP:DMG:                         Cluster = 0x50,
          [1650968848.687887][12747:12747] CHIP:DMG:                         Attribute = 0x0000_0003,
          [1650968848.687917][12747:12747] CHIP:DMG:                 }
          [1650968848.687974][12747:12747] CHIP:DMG:
          [1650968848.688003][12747:12747] CHIP:DMG:         ],
          [1650968848.688031][12747:12747] CHIP:DMG:
          [1650968848.688057][12747:12747] CHIP:DMG:         isFabricFiltered = true,
          [1650968848.688082][12747:12747] CHIP:DMG:         InteractionModelRevision = 1
          [1650968848.688105][12747:12747] CHIP:DMG: },
          [1650968848.688174][12747:12747] CHIP:DMG: IM RH moving to [GeneratingReports]




           ./chip-tool modeselect read standard-namespace 1 1

          verify the "standard-namespace response" on the TH (all-cluster-minimal-app) log:

          1650968644.223891][12747:12747] CHIP:IM: Received Read request
          [1650968644.223954][12747:12747] CHIP:DMG: ReadRequestMessage =
          [1650968644.223981][12747:12747] CHIP:DMG: {
          [1650968644.224003][12747:12747] CHIP:DMG:         AttributePathIBs =
          [1650968644.224028][12747:12747] CHIP:DMG:         [
          [1650968644.224052][12747:12747] CHIP:DMG:                 AttributePathIB =
          [1650968644.224099][12747:12747] CHIP:DMG:                 {
          [1650968644.224139][12747:12747] CHIP:DMG:                         Endpoint = 0x1,
          [1650968644.224169][12747:12747] CHIP:DMG:                         Cluster = 0x50,
          [1650968644.224206][12747:12747] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1650968644.224233][12747:12747] CHIP:DMG:                 }
          [1650968644.224272][12747:12747] CHIP:DMG:
          [1650968644.224297][12747:12747] CHIP:DMG:         ],
          [1650968644.224334][12747:12747] CHIP:DMG:
          [1650968644.224369][12747:12747] CHIP:DMG:         isFabricFiltered = true,
          [1650968644.224394][12747:12747] CHIP:DMG:         InteractionModelRevision = 1
          [1650968644.224426][12747:12747] CHIP:DMG: },
          [1650968644.224507][12747:12747] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1650968644.224596][12747:12747] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1650968644.224633][12747:12747] CHIP:DMG: <RE:Run> Cluster 50, Attribute 1 is dirty
          [1650968644.224658][12747:12747] CHIP:DMG: Reading attribute: Cluster=0x0000_0050 Endpoint=1 AttributeId=0x0000_0001 (expanded=0)
          [1650968644.224687][12747:12747] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0050 e=1 p=v
          [1650968644.224720][12747:12747] CHIP:DMG: AccessControl: allowed



          ./chip-tool modeselect read description 1 1

          verify the "description response" on the TH (all-cluster-minimal-app) log:

          [1650969447.413679][12747:12747] CHIP:EM: Handling via exchange: 65381r, Delegate: 0xaaaae5201098
          [1650969447.413718][12747:12747] CHIP:IM: Received Read request
          [1650969447.413769][12747:12747] CHIP:DMG: ReadRequestMessage =
          [1650969447.413795][12747:12747] CHIP:DMG: {
          [1650969447.413836][12747:12747] CHIP:DMG:         AttributePathIBs =
          [1650969447.413865][12747:12747] CHIP:DMG:         [
          [1650969447.413889][12747:12747] CHIP:DMG:                 AttributePathIB =
          [1650969447.413924][12747:12747] CHIP:DMG:                 {
          [1650969447.413956][12747:12747] CHIP:DMG:                         Endpoint = 0x1,
          [1650969447.413989][12747:12747] CHIP:DMG:                         Cluster = 0x50,
          [1650969447.414021][12747:12747] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1650969447.414051][12747:12747] CHIP:DMG:                 }
          [1650969447.414080][12747:12747] CHIP:DMG:
          [1650969447.414108][12747:12747] CHIP:DMG:         ],
          [1650969447.414137][12747:12747] CHIP:DMG:
          [1650969447.414163][12747:12747] CHIP:DMG:         isFabricFiltered = true,
          [1650969447.414188][12747:12747] CHIP:DMG:         InteractionModelRevision = 1
          [1650969447.414211][12747:12747] CHIP:DMG: },
          [1650969447.414280][12747:12747] 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: |
          TH all-clusters-minimal-app does not support optional attributes

          ./chip-tool modeselect read on-mode 1 1
          ./chip-tool modeselect read start-up-mode 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
