# 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.1.1. [TC-BR-1] Basics of Bridging

PICS:
    - MCORE.BRIDGE

config:
    nodeId: 0x12344321
    cluster: "Basic"
    endpoint: 0

tests:
    - label: "Precondition"
      verification: |
          1. DUT (bridge) has been commissioned to TH

          2. Two or more bridged devices of a supported type connected via non-Matter network/protocol to DUT (bridge).
          If the bridge supports both actuator and sensor/switch devices, use at least one of each type
      disabled: true

    - label:
          "Read attribute DeviceTypeList of the Descriptor cluster on endpoint 0"
      PICS: MCORE.BRIDGE
      verification: |
          ./chip-tool  descriptor read device-list 1 0

          Verify the attribute contains device type Root Node (Type-22) in TH(chip-tool) Log

          [1657002174.323780][3885:3890] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3573910940
          [1657002174.323838][3885:3890] CHIP:TOO:   device list: 1 entries
          [1657002174.323919][3885:3890] CHIP:TOO:     [1]: {
          [1657002174.323961][3885:3890] CHIP:TOO:       Type: 22
          [1657002174.323989][3885:3890] CHIP:TOO:       Revision: 1
          [1657002174.324016][3885:3890] CHIP:TOO:      }
      disabled: true

    - label: "Read attribute PartsList of the Descriptor cluster on endpoint 0"
      verification: |
          ./chip-tool  descriptor read parts-list 1 0

          Verify the endpoints listed in TH(chip-tool) Log

          [1657002201.045720][3893:3899] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3573910940
          [1657002201.045841][3893:3899] CHIP:TOO:   parts list: 12 entries
          [1657002201.045887][3893:3899] CHIP:TOO:     [1]: 1
          [1657002201.045925][3893:3899] CHIP:TOO:     [2]: 3
          [1657002201.045963][3893:3899] CHIP:TOO:     [3]: 4
          [1657002201.046000][3893:3899] CHIP:TOO:     [4]: 5
          [1657002201.046037][3893:3899] CHIP:TOO:     [5]: 6
          [1657002201.046073][3893:3899] CHIP:TOO:     [6]: 7
          [1657002201.046110][3893:3899] CHIP:TOO:     [7]: 8
          [1657002201.046147][3893:3899] CHIP:TOO:     [8]: 9
          [1657002201.046184][3893:3899] CHIP:TOO:     [9]: 10
          [1657002201.046221][3893:3899] CHIP:TOO:     [10]: 11
          [1657002201.046259][3893:3899] CHIP:TOO:     [11]: 12
          [1657002201.046296][3893:3899] CHIP:TOO:     [12]: 13
      disabled: true

    - label:
          "For each of the endpoints read in step 1b, read attribute
          DeviceTypeList of the Descriptor cluster on that endpoint"
      verification: |
          Verify  which of Those endpoints in The previous step results have a DeviceTypeList containing device type Aggregator (Type- 14) for all The following steps. in TH(chip-tool)

          ./chip-tool  descriptor read device-list 1 1

          Verify in TH(chip-tool) Log

          [1657002313.871608][3977:3982] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3021853414
          [1657002313.871680][3977:3982] CHIP:TOO:   device list: 1 entries
          [1657002313.871740][3977:3982] CHIP:TOO:     [1]: {
          [1657002313.871788][3977:3982] CHIP:TOO:       Type: 14
          [1657002313.871821][3977:3982] CHIP:TOO:       Revision: 1
          [1657002313.871852][3977:3982] :TOOCHIP:      }


          ./chip-tool  descriptor read device-list 1 3

          Verify in TH(chip-tool) Log

          [1657002329.438065][3983:3988] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2452512872
          [1657002329.438135][3983:3988] CHIP:TOO:   device list: 2 entries
          [1657002329.438193][3983:3988] CHIP:TOO:     [1]: {
          [1657002329.438238][3983:3988] CHIP:TOO:       Type: 256
          [1657002329.438269][3983:3988] CHIP:TOO:       Revision: 1
          [1657002329.438298][3983:3988] CHIP:TOO:      }
          [1657002329.438332][3983:3988] CHIP:TOO:     [2]: {
          [1657002329.438360][3983:3988] CHIP:TOO:       Type: 19
          [1657002329.438389][3983:3988] CHIP:TOO:       Revision: 1
          [1657002329.438416][3983:3988] CHIP:TOO:      }


          ./chip-tool  descriptor read device-list 1 4

          Verify in TH(chip-tool) Log

          [1659351082.975711][12107:12112] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3999956962
          [1659351082.975821][12107:12112] CHIP:TOO:   device list: 2 entries
          [1659351082.975883][12107:12112] CHIP:TOO:     [1]: {
          [1659351082.975929][12107:12112] CHIP:TOO:       Type: 770
          [1659351082.975973][12107:12112] CHIP:TOO:       Revision: 1
          [1659351082.976015][12107:12112] CHIP:TOO:      }
          [1659351082.976066][12107:12112] CHIP:TOO:     [2]: {
          [1659351082.976109][12107:12112] CHIP:TOO:       Type: 19
          [1659351082.976150][12107:12112] CHIP:TOO:       Revision: 1
          [1659351082.976191][12107:12112] CHIP:TOO:      }




          ./chip-tool  descriptor read device-list 1 5

          Verify in TH(chip-tool) Log

          [1659351100.369601][12113:12118] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3187411685
          [1659351100.369695][12113:12118] CHIP:TOO:   device list: 2 entries
          [1659351100.369746][12113:12118] CHIP:TOO:     [1]: {
          [1659351100.369781][12113:12118] CHIP:TOO:       Type: 770
          [1659351100.369816][12113:12118] CHIP:TOO:       Revision: 1
          [1659351100.369849][12113:12118] CHIP:TOO:      }
          [1659351100.369889][12113:12118] CHIP:TOO:     [2]: {
          [1659351100.369923][12113:12118] CHIP:TOO:       Type: 19
          [1659351100.369955][12113:12118] CHIP:TOO:       Revision: 1
          [1659351100.369988][12113:12118] CHIP:TOO:      }



          ./chip-tool  descriptor read device-list 1 6

          Verify in TH(chip-tool) Log


          [1659351102.837218][12119:12124] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1173571869
          [1659351102.837357][12119:12124] CHIP:TOO:   device list: 1 entries
          [1659351102.837437][12119:12124] CHIP:TOO:     [1]: {
          [1659351102.837496][12119:12124] CHIP:TOO:       Type: 19
          [1659351102.837554][12119:12124] CHIP:TOO:       Revision: 1
          [1659351102.837610][12119:12124] CHIP:TOO:      }
          [1659351102.837789][12119:12124] CHIP:EM: Sending Standalone Ack for MessageCounter:92381172 on exchange 45312i




          ./chip-tool  descriptor read device-list 1 7

          Verify in TH(chip-tool) Log

          [1659351105.133982][12125:12130] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1309892739
          [1659351105.134087][12125:12130] CHIP:TOO:   device list: 1 entries
          [1659351105.134148][12125:12130] CHIP:TOO:     [1]: {
          [1659351105.134192][12125:12130] CHIP:TOO:       Type: 770
          [1659351105.134236][12125:12130] CHIP:TOO:       Revision: 1
          [1659351105.134277][12125:12130] CHIP:TOO:      }
          [1659351105.134419][12125:12130] CHIP:EM: Sending Standalone Ack for MessageCounter:88821004 on exchange 41639i




          ./chip-tool  descriptor read device-list 1 8

          Verify in TH(chip-tool) Log

          [1659351107.202771][12131:12136] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 929721508
          [1659351107.202850][12131:12136] CHIP:TOO:   device list: 1 entries
          [1659351107.202887][12131:12136] CHIP:TOO:     [1]: {
          [1659351107.202912][12131:12136] CHIP:TOO:       Type: 770
          [1659351107.202937][12131:12136] CHIP:TOO:       Revision: 1
          [1659351107.202961][12131:12136] CHIP:TOO:      }
          [1659351107.203062][12131:12136] CHIP:EM: Sending Standalone Ack for MessageCounter:193017490 on exchange 10260i




          ./chip-tool  descriptor read device-list 1 9

          Verify in TH(chip-tool) Log

          [1657002455.445818][4040:4045] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 913116116
          [1657002455.445883][4040:4045] CHIP:TOO:   device list: 1 entries
          [1657002455.445944][4040:4045] CHIP:TOO:     [1]: {
          [1657002455.445991][4040:4045] CHIP:TOO:       Type: 17
          [1657002455.446025][4040:4045] CHIP:TOO:       Revision: 1
          [1657002455.446056][4040:4045] CHIP:TOO:      }



          ./chip-tool  descriptor read device-list 1 10

          Verify in TH(chip-tool) Log

          [1657002473.100910][4047:4052] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 259205426
          [1657002473.100967][4047:4052] CHIP:TOO:   device list: 2 entries
          [1657002473.101013][4047:4052] CHIP:TOO:     [1]: {
          [1657002473.101051][4047:4052] CHIP:TOO:       Type: 256
          [1657002473.101076][4047:4052] CHIP:TOO:       Revision: 1
          [1657002473.101098][4047:4052] CHIP:TOO:      }
          [1657002473.101126][4047:4052] CHIP:TOO:     [2]: {
          [1657002473.101148][4047:4052] CHIP:TOO:       Type: 19
          [1657002473.101170][4047:4052] CHIP:TOO:       Revision: 1
          [1657002473.101192][4047:4052] CHIP:TOO:      }


          ./chip-tool  descriptor read device-list 1 11

          Verify in TH(chip-tool) Log

          [1657002495.856770][4061:4066] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4248421677
          [1657002495.856836][4061:4066] CHIP:TOO:   device list: 2 entries
          [1657002495.856893][4061:4066] CHIP:TOO:     [1]: {
          [1657002495.856938][4061:4066] CHIP:TOO:       Type: 256
          [1657002495.856968][4061:4066] CHIP:TOO:       Revision: 1
          [1657002495.856996][4061:4066] CHIP:TOO:      }
          [1657002495.857030][4061:4066] CHIP:TOO:     [2]: {
          [1657002495.857058][4061:4066] CHIP:TOO:       Type: 19
          [1657002495.857085][4061:4066] CHIP:TOO:       Revision: 1
          [1657002495.857112][4061:4066] CHIP:TOO:      }



          ./chip-tool  descriptor read device-list 1 12

          Verify in TH(chip-tool) Log

          [1657002515.862187][4073:4078] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2731599835
          [1657002515.862249][4073:4078] CHIP:TOO:   device list: 2 entries
          [1657002515.862302][4073:4078] CHIP:TOO:     [1]: {
          [1657002515.862343][4073:4078] CHIP:TOO:       Type: 256
          [1657002515.862372][4073:4078] CHIP:TOO:       Revision: 1
          [1657002515.862398][4073:4078] CHIP:TOO:      }
          [1657002515.862429][4073:4078] CHIP:TOO:     [2]: {
          [1657002515.862455][4073:4078] CHIP:TOO:       Type: 19
          [1657002515.862480][4073:4078] CHIP:TOO:       Revision: 1
          [1657002515.862504][4073:4078] CHIP:TOO:      }



          ./chip-tool  descriptor read device-list 1 13

          Verify in TH(chip-tool) Log

          [1657002538.134605][4097:4102] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3449178249
          [1657002538.134700][4097:4102] CHIP:TOO:   device list: 2 entries
          [1657002538.134784][4097:4102] CHIP:TOO:     [1]: {
          [1657002538.134869][4097:4102] CHIP:TOO:       Type: 256
          [1657002538.134916][4097:4102] CHIP:TOO:       Revision: 1
          [1657002538.134973][4097:4102] CHIP:TOO:      }
          [1657002538.135025][4097:4102] CHIP:TOO:     [2]: {
          [1657002538.135083][4097:4102] CHIP:TOO:       Type: 19
          [1657002538.135126][4097:4102] CHIP:TOO:       Revision: 1
          [1657002538.135166][4097:4102] CHIP:TOO:      }
      disabled: true

    - label:
          "IF 0 endpoints found in step 1c, FAIL the test (no Aggregator device
          type found) ELSE Execute test steps 2a..7d for each of the endpoints
          found in step 1c (i.e. for each of the Aggregator device types)"
      verification: |
          From Step1c,  list all the endpoints having the aggregator i.e., 0x000e=14

          Then in this case Endpoint is 1
      disabled: true

    - label:
          "Read attribute PartsList of the Descriptor cluster on endpoint found
          in step 1c"
      PICS: MCORE.BRIDGE
      verification: |
          Read attribute PartsList of the Descriptor cluster on endpoint found in step 1c step

          ./chip-tool  descriptor read parts-list 1 1

          Verify the list contains 11 entries in TH(chip-tool) Log

          [1657002810.697118][4121:4126] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3021853414
          [1657002810.697276][4121:4126] CHIP:TOO:   parts list: 11 entries
          [1657002810.697312][4121:4126] CHIP:TOO:     [1]: 3
          [1657002810.697342][4121:4126] CHIP:TOO:     [2]: 4
          [1657002810.697370][4121:4126] CHIP:TOO:     [3]: 5
          [1657002810.697397][4121:4126] CHIP:TOO:     [4]: 6
          [1657002810.697425][4121:4126] CHIP:TOO:     [5]: 7
          [1657002810.697453][4121:4126] CHIP:TOO:     [6]: 8
          [1657002810.697480][4121:4126] CHIP:TOO:     [7]: 9
          [1657002810.697508][4121:4126] CHIP:TOO:     [8]: 10
          [1657002810.697536][4121:4126] CHIP:TOO:     [9]: 11
          [1657002810.697564][4121:4126] CHIP:TOO:     [10]: 12
          [1657002810.697592][4121:4126] CHIP:TOO:     [11]: 13
      disabled: true

    - label:
          "For each of the endpoints found in this PartsList attribute, read the
          DeviceTypeList attribute in the Descriptor cluster on such endpoint,
          and select those endpoints which have (at least) a device type of
          Bridged Node in their DeviceTypeList"
      verification: |
          Verify device type has either Bridged node (0x0013), i.e.,  Type=19

          Verify in TH(chip-tool) Log

          ./chip-tool  descriptor read device-list 1 3
          [1657002843.395988][4135:4140] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2452512872
          [1657002843.396058][4135:4140] CHIP:TOO:   device list: 2 entries
          [1657002843.396112][4135:4140] CHIP:TOO:     [1]: {
          [1657002843.396154][4135:4140] CHIP:TOO:       Type: 256
          [1657002843.396204][4135:4140] CHIP:TOO:       Revision: 1
          [1657002843.396232][4135:4140] CHIP:TOO:      }
          [1657002843.396265][4135:4140] CHIP:TOO:     [2]: {
          [1657002843.396291][4135:4140] CHIP:TOO:       Type: 19
          [1657002843.396317][4135:4140] CHIP:TOO:       Revision: 1
          [1657002843.396342][4135:4140] CHIP:TOO:      }

           ./chip-tool  descriptor read device-list 1 4

          Verify in TH(chip-tool) Log

          [1659351082.975711][12107:12112] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3999956962
          [1659351082.975821][12107:12112] CHIP:TOO:   device list: 2 entries
          [1659351082.975883][12107:12112] CHIP:TOO:     [1]: {
          [1659351082.975929][12107:12112] CHIP:TOO:       Type: 770
          [1659351082.975973][12107:12112] CHIP:TOO:       Revision: 1
          [1659351082.976015][12107:12112] CHIP:TOO:      }
          [1659351082.976066][12107:12112] CHIP:TOO:     [2]: {
          [1659351082.976109][12107:12112] CHIP:TOO:       Type: 19
          [1659351082.976150][12107:12112] CHIP:TOO:       Revision: 1
          [1659351082.976191][12107:12112] CHIP:TOO:      }




          ./chip-tool  descriptor read device-list 1 5

          Verify in TH(chip-tool) Log

          [1659351100.369601][12113:12118] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3187411685
          [1659351100.369695][12113:12118] CHIP:TOO:   device list: 2 entries
          [1659351100.369746][12113:12118] CHIP:TOO:     [1]: {
          [1659351100.369781][12113:12118] CHIP:TOO:       Type: 770
          [1659351100.369816][12113:12118] CHIP:TOO:       Revision: 1
          [1659351100.369849][12113:12118] CHIP:TOO:      }
          [1659351100.369889][12113:12118] CHIP:TOO:     [2]: {
          [1659351100.369923][12113:12118] CHIP:TOO:       Type: 19
          [1659351100.369955][12113:12118] CHIP:TOO:       Revision: 1
          [1659351100.369988][12113:12118] CHIP:TOO:      }



          ./chip-tool  descriptor read device-list 1 6

          Verify in TH(chip-tool) Log


          [1659351102.837218][12119:12124] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1173571869
          [1659351102.837357][12119:12124] CHIP:TOO:   device list: 1 entries
          [1659351102.837437][12119:12124] CHIP:TOO:     [1]: {
          [1659351102.837496][12119:12124] CHIP:TOO:       Type: 19
          [1659351102.837554][12119:12124] CHIP:TOO:       Revision: 1
          [1659351102.837610][12119:12124] CHIP:TOO:      }
          [1659351102.837789][12119:12124] CHIP:EM: Sending Standalone Ack for MessageCounter:92381172 on exchange 45312i




          ./chip-tool  descriptor read device-list 1 7

          Verify in TH(chip-tool) Log

          [1659351105.133982][12125:12130] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1309892739
          [1659351105.134087][12125:12130] CHIP:TOO:   device list: 1 entries
          [1659351105.134148][12125:12130] CHIP:TOO:     [1]: {
          [1659351105.134192][12125:12130] CHIP:TOO:       Type: 770
          [1659351105.134236][12125:12130] CHIP:TOO:       Revision: 1
          [1659351105.134277][12125:12130] CHIP:TOO:      }
          [1659351105.134419][12125:12130] CHIP:EM: Sending Standalone Ack for MessageCounter:88821004 on exchange 41639i




          ./chip-tool  descriptor read device-list 1 8

          Verify in TH(chip-tool) Log

          [1659351107.202771][12131:12136] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 929721508
          [1659351107.202850][12131:12136] CHIP:TOO:   device list: 1 entries
          [1659351107.202887][12131:12136] CHIP:TOO:     [1]: {
          [1659351107.202912][12131:12136] CHIP:TOO:       Type: 770
          [1659351107.202937][12131:12136] CHIP:TOO:       Revision: 1
          [1659351107.202961][12131:12136] CHIP:TOO:      }
          [1659351107.203062][12131:12136] CHIP:EM: Sending Standalone Ack for MessageCounter:193017490 on exchange 10260i




          ./chip-tool  descriptor read device-list 1 9

          Verify in TH(chip-tool) Log

          [1657002455.445818][4040:4045] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 913116116
          [1657002455.445883][4040:4045] CHIP:TOO:   device list: 1 entries
          [1657002455.445944][4040:4045] CHIP:TOO:     [1]: {
          [1657002455.445991][4040:4045] CHIP:TOO:       Type: 17
          [1657002455.446025][4040:4045] CHIP:TOO:       Revision: 1
          [1657002455.446056][4040:4045] CHIP:TOO:      }



          ./chip-tool  descriptor read device-list 1 10

          Verify in TH(chip-tool) Log

          [1657002473.100910][4047:4052] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 259205426
          [1657002473.100967][4047:4052] CHIP:TOO:   device list: 2 entries
          [1657002473.101013][4047:4052] CHIP:TOO:     [1]: {
          [1657002473.101051][4047:4052] CHIP:TOO:       Type: 256
          [1657002473.101076][4047:4052] CHIP:TOO:       Revision: 1
          [1657002473.101098][4047:4052] CHIP:TOO:      }
          [1657002473.101126][4047:4052] CHIP:TOO:     [2]: {
          [1657002473.101148][4047:4052] CHIP:TOO:       Type: 19
          [1657002473.101170][4047:4052] CHIP:TOO:       Revision: 1
          [1657002473.101192][4047:4052] CHIP:TOO:      }


          ./chip-tool  descriptor read device-list 1 11

          Verify in TH(chip-tool) Log

          [1657002495.856770][4061:4066] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4248421677
          [1657002495.856836][4061:4066] CHIP:TOO:   device list: 2 entries
          [1657002495.856893][4061:4066] CHIP:TOO:     [1]: {
          [1657002495.856938][4061:4066] CHIP:TOO:       Type: 256
          [1657002495.856968][4061:4066] CHIP:TOO:       Revision: 1
          [1657002495.856996][4061:4066] CHIP:TOO:      }
          [1657002495.857030][4061:4066] CHIP:TOO:     [2]: {
          [1657002495.857058][4061:4066] CHIP:TOO:       Type: 19
          [1657002495.857085][4061:4066] CHIP:TOO:       Revision: 1
          [1657002495.857112][4061:4066] CHIP:TOO:      }



          ./chip-tool  descriptor read device-list 1 12

          Verify in TH(chip-tool) Log

          [1657002515.862187][4073:4078] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2731599835
          [1657002515.862249][4073:4078] CHIP:TOO:   device list: 2 entries
          [1657002515.862302][4073:4078] CHIP:TOO:     [1]: {
          [1657002515.862343][4073:4078] CHIP:TOO:       Type: 256
          [1657002515.862372][4073:4078] CHIP:TOO:       Revision: 1
          [1657002515.862398][4073:4078] CHIP:TOO:      }
          [1657002515.862429][4073:4078] CHIP:TOO:     [2]: {
          [1657002515.862455][4073:4078] CHIP:TOO:       Type: 19
          [1657002515.862480][4073:4078] CHIP:TOO:       Revision: 1
          [1657002515.862504][4073:4078] CHIP:TOO:      }



          ./chip-tool  descriptor read device-list 1 13

          Verify in TH(chip-tool) Log

          [1657002538.134605][4097:4102] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3449178249
          [1657002538.134700][4097:4102] CHIP:TOO:   device list: 2 entries
          [1657002538.134784][4097:4102] CHIP:TOO:     [1]: {
          [1657002538.134869][4097:4102] CHIP:TOO:       Type: 256
          [1657002538.134916][4097:4102] CHIP:TOO:       Revision: 1
          [1657002538.134973][4097:4102] CHIP:TOO:      }
          [1657002538.135025][4097:4102] CHIP:TOO:     [2]: {
          [1657002538.135083][4097:4102] CHIP:TOO:       Type: 19
          [1657002538.135126][4097:4102] CHIP:TOO:       Revision: 1
          [1657002538.135166][4097:4102] CHIP:TOO:      }
      disabled: true

    - label:
          "For each of the endpoints for the bridged devices found in step 2b,
          perform the tests for Bridged Device Basic Information cluster"
      PICS: MCORE.BRIDGE
      verification: |
          For Bridged Device Basic Information cluster, ref the test plan (https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/cluster/bridged_device_basic_information.adoc)

           ./chip-tool bridgeddevicebasic read reachable 1 3

          Verify reachable attribute is read successfully in TH(chip-tool) Log

          [1657003614.269096][4564:4569] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0011 DataVersion: 1897994097
          [1657003614.269155][4564:4569] CHIP:TOO:   Reachable: TRUE

          ./chip-tool bridgeddevicebasic read node-label 1 4

          Verify Node-label is read sucessfully in TH(chip-tool) Log

          [1657003598.573764][4552:4557] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 3722118563
          [1657003598.573811][4552:4557] CHIP:TOO:   NodeLabel: Switch 1
      disabled: true

    - label:
          "For each of the endpoints found in step 2b, if a Power Source
          Configuration cluster is present on this endpoint, perform the tests
          for this Power Source Configuration cluster plus the tests for the
          Power Source clusters at the endpoint(s) which this Power Source
          Configuration cluster refers to"
      PICS: MCORE.BRIDGE && MCORE.BRIDGE.BatInfo
      verification: |
          For Power Source Configuration and Power Source clusters, ref the  test plan - Link  Link2

          None of the endpoints listed in step 2b supports Power Source Configuration cluster and Power Source cluster.

          If any device lists the PS configuration, then below sample command needs to be executed for all the attributes for the endpoint listed in 2b
          ./chip-tool powersourceconfiguration read sources 1 0
          ./chip-tool powersource read status 1 1
      disabled: true

    - label:
          "For each of the endpoints found in step 2b, from the DeviceTypeList
          attribute in their Descriptor cluster, derive the (application) device
          type(s) of the bridged device"
      PICS: MCORE.BRIDGE
      verification: |
          Verify the device-list attribute has devicetype application e.g., 0x0100 = 256(on/off light),0x0302=770( temperature sensor)


          ./chip-tool descriptor read device-list 1 3

          Verify in TH(chip-tool) Log

          [1657003925.553294][4664:4669] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2452512872
          [1657003925.553368][4664:4669] CHIP:TOO:   device list: 2 entries
          [1657003925.553430][4664:4669] CHIP:TOO:     [1]: {
          [1657003925.553492][4664:4669] CHIP:TOO:       Type: 256
          [1657003925.553527][4664:4669] CHIP:TOO:       Revision: 1
          [1657003925.553557][4664:4669] CHIP:TOO:      }
          [1657003925.553608][4664:4669] CHIP:TOO:     [2]: {
          [1657003925.553638][4664:4669] CHIP:TOO:       Type: 19
          [1657003925.553682][4664:4669] CHIP:TOO:       Revision: 1
          [1657003925.553714][4664:4669] CHIP:TOO:      }



          ./chip-tool descriptor read device-list 1 4

          Verify in TH(chip-tool) Log

          [1659350396.878528][11929:11934] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3398096270
          [1659350396.878598][11929:11934] CHIP:TOO:   device list: 2 entries
          [1659350396.878635][11929:11934] CHIP:TOO:     [1]: {
          [1659350396.878661][11929:11934] CHIP:TOO:       Type: 770
          [1659350396.878688][11929:11934] CHIP:TOO:       Revision: 1
          [1659350396.878712][11929:11934] CHIP:TOO:      }
          [1659350396.878741][11929:11934] CHIP:TOO:     [2]: {
          [1659350396.878765][11929:11934] CHIP:TOO:       Type: 19
          [1659350396.878789][11929:11934] CHIP:TOO:       Revision: 1
          [1659350396.878812][11929:11934] CHIP:TOO:      }



          ./chip-tool descriptor read device-list 1 5

          Verify in TH(chip-tool) Log

          [1659350678.671359][11991:11996] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3750503881
          [1659350678.671437][11991:11996] CHIP:TOO:   device list: 2 entries
          [1659350678.671475][11991:11996] CHIP:TOO:     [1]: {
          [1659350678.671500][11991:11996] CHIP:TOO:       Type: 770
          [1659350678.671525][11991:11996] CHIP:TOO:       Revision: 1
          [1659350678.671548][11991:11996] CHIP:TOO:      }
          [1659350678.671577][11991:11996] CHIP:TOO:     [2]: {
          [1659350678.671601][11991:11996] CHIP:TOO:       Type: 19
          [1659350678.671624][11991:11996] CHIP:TOO:       Revision: 1
          [1659350678.671647][11991:11996] CHIP:TOO:      }



          ./chip-tool descriptor read device-list 1 6

          Verify in TH(chip-tool) Log

          [1659350682.392346][11997:12002] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2160703024
          [1659350682.392416][11997:12002] CHIP:TOO:   device list: 1 entries
          [1659350682.392455][11997:12002] CHIP:TOO:     [1]: {
          [1659350682.392481][11997:12002] CHIP:TOO:       Type: 19
          [1659350682.392507][11997:12002] CHIP:TOO:       Revision: 1
          [1659350682.392532][11997:12002] CHIP:TOO:      }
          [1659350682.392626][11997:12002] CHIP:EM: Sending Standalone Ack for MessageCounter:39744651 on exchange 45824i



          ./chip-tool descriptor read device-list 1 10

          Verify in TH(chip-tool) Log

          [1657004074.939061][4704:4709] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 259205426
          [1657004074.939126][4704:4709] CHIP:TOO:   device list: 2 entries
          [1657004074.939178][4704:4709] CHIP:TOO:     [1]: {
          [1657004074.939221][4704:4709] CHIP:TOO:       Type: 256
          [1657004074.939250][4704:4709] CHIP:TOO:       Revision: 1
          [1657004074.939272][4704:4709] CHIP:TOO:      }
          [1657004074.939298][4704:4709] CHIP:TOO:     [2]: {
          [1657004074.939320][4704:4709] CHIP:TOO:       Type: 19
          [1657004074.939340][4704:4709] CHIP:TOO:       Revision: 1
          [1657004074.939361][4704:4709] CHIP:TOO:      }


          ./chip-tool descriptor read device-list 1 11

          Verify in TH(chip-tool) Log

          [1657004114.075998][4725:4730] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4248421677
          [1657004114.076073][4725:4730] CHIP:TOO:   device list: 2 entries
          [1657004114.076130][4725:4730] CHIP:TOO:     [1]: {
          [1657004114.076209][4725:4730] CHIP:TOO:       Type: 256
          [1657004114.076342][4725:4730] CHIP:TOO:       Revision: 1
          [1657004114.076372][4725:4730] CHIP:TOO:      }
          [1657004114.076407][4725:4730] CHIP:TOO:     [2]: {
          [1657004114.076435][4725:4730] CHIP:TOO:       Type: 19
          [1657004114.076474][4725:4730] CHIP:TOO:       Revision: 1
          [1657004114.076503][4725:4730] CHIP:TOO:      }


          ./chip-tool descriptor read device-list 1 12

          Verify in TH(chip-tool) Log

          [1657004134.659723][4737:4742] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2731599835
          [1657004134.659785][4737:4742] CHIP:TOO:   device list: 2 entries
          [1657004134.659835][4737:4742] CHIP:TOO:     [1]: {
          [1657004134.659875][4737:4742] CHIP:TOO:       Type: 256
          [1657004134.659901][4737:4742] CHIP:TOO:       Revision: 1
          [1657004134.659925][4737:4742] CHIP:TOO:      }
          [1657004134.659953][4737:4742] CHIP:TOO:     [2]: {
          [1657004134.659977][4737:4742] CHIP:TOO:       Type: 19
          [1657004134.660001][4737:4742] CHIP:TOO:       Revision: 1
          [1657004134.660023][4737:4742] CHIP:TOO:      }


          ./chip-tool descriptor read device-list 1 13

          Verify in TH(chip-tool) Log

          [1657004152.758221][4749:4754] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3449178249
          [1657004152.758277][4749:4754] CHIP:TOO:   device list: 2 entries
          [1657004152.758323][4749:4754] CHIP:TOO:     [1]: {
          [1657004152.758359][4749:4754] CHIP:TOO:       Type: 256
          [1657004152.758384][4749:4754] CHIP:TOO:       Revision: 1
          [1657004152.758406][4749:4754] CHIP:TOO:      }
          [1657004152.758433][4749:4754] CHIP:TOO:     [2]: {
          [1657004152.758456][4749:4754] CHIP:TOO:       Type: 19
          [1657004152.758478][4749:4754] CHIP:TOO:       Revision: 1
          [1657004152.758500][4749:4754] CHIP:TOO:      }
      disabled: true

    - label:
          "From the list acquired in step 5, choose one of the bridged devices
          which is an actuator (e.g. light, window covering)"
      PICS: MCORE.BRIDGE
      verification: |
          From Step 5 output , choose one of the device type and identify the device from the device library.
          For Ex: on-off cluster has been taken as example to run tfurther steps
      disabled: true

    - label:
          "Read the state of this bridged device (through Matter), e.g. on/off,
          brightness"
      verification: |
          ./chip-tool onoff read on-off 1 3

          Verify the actual state of the bridged device in TH(chip-tool) Log

          [1657004454.213279][4792:4798] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3808303315
          [1657004454.213319][4792:4798] CHIP:TOO:   OnOff: FALSE
      disabled: true

    - label:
          "Change the state of this bridged device (through Matter), e.g. change
          its brightness or toggle its on/off state"
      verification: |
          ./chip-tool onoff toggle 1 3


          Verify state change response of the bridged device in TH(chip-tool) Log

          [1657522278.539407][16698:16703] CHIP:DMG: {
          [1657522278.539447][16698:16703] CHIP:DMG:         suppressResponse = false,
          [1657522278.539495][16698:16703] CHIP:DMG:         InvokeResponseIBs =
          [1657522278.539545][16698:16703] CHIP:DMG:         [
          [1657522278.539585][16698:16703] CHIP:DMG:                 InvokeResponseIB =
          [1657522278.539641][16698:16703] CHIP:DMG:                 {
          [1657522278.539688][16698:16703] CHIP:DMG:                         CommandStatusIB =
          [1657522278.539746][16698:16703] CHIP:DMG:                         {
          [1657522278.539795][16698:16703] CHIP:DMG:                                 CommandPathIB =
          [1657522278.539856][16698:16703] CHIP:DMG:                                 {
          [1657522278.539912][16698:16703] CHIP:DMG:                                         EndpointId = 0x3,
          [1657522278.539977][16698:16703] CHIP:DMG:                                         ClusterId = 0x6,
          [1657522278.540039][16698:16703] CHIP:DMG:                                         CommandId = 0x2,
          [1657522278.540097][16698:16703] CHIP:DMG:                                 },
          [1657522278.540162][16698:16703] CHIP:DMG:
          [1657522278.540214][16698:16703] CHIP:DMG:                                 StatusIB =
          [1657522278.540276][16698:16703] CHIP:DMG:                                 {
          [1657522278.540332][16698:16703] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1657522278.540386][16698:16703] CHIP:DMG:                                 },
          [1657522278.540446][16698:16703] CHIP:DMG:
          [1657522278.540499][16698:16703] CHIP:DMG:                         },
          [1657522278.540560][16698:16703] CHIP:DMG:
          [1657522278.540605][16698:16703] CHIP:DMG:                 },
          [1657522278.540658][16698:16703] CHIP:DMG:
          [1657522278.540696][16698:16703] CHIP:DMG:         ],
          [1657522278.540744][16698:16703] CHIP:DMG:
          [1657522278.540783][16698:16703] CHIP:DMG:         InteractionModelRevision = 1
          [1657522278.540825][16698:16703] CHIP:DMG: },
          [1657522278.540916][16698:16703] CHIP:DMG: Received Command Response Status for Endpoint=3 Cluster=0x0000_0006 Command=0x0000_0002 Status=0x0
          [1657522278.540981][16698:16703] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label: "Read the state of this bridged device (through Matter), as in 6b"
      verification: |
          ./chip-tool onoff read on-off 1 3

          Verify the value of onoff matches the value of onoff in step 6c in TH(chip-tool) Log

          [1657004565.254591][4804:4809] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3808303316
          [1657004565.254635][4804:4809] CHIP:TOO:   OnOff: TRUE
      disabled: true

    - label:
          "From the list acquired in step 5, choose one of the bridged devices
          which is a sensor (e.g. occupancy sensor, contact sensor, temperature
          sensor)or switch"
      PICS: MCORE.BRIDGE
      verification: |
          From Step 5 output , choose one of the sensor device type and identify the device from the device library
          For Ex:  temperature sensor, being added to bridge-app as example to run further steps
      disabled: true

    - label:
          "Read the state of this bridged device (through Matter), e.g.
          occupancy status, contact status, current temperature"
      verification: |
          ./chip-tool temperaturemeasurement read measured-value 1 4

          [1659351487.005743][12201:12207] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0402 Attribute 0x0000_0000 DataVersion: 2406690152
          [1659351487.005831][12201:12207] CHIP:TOO:   MeasuredValue: 100
          [1659351487.005924][12201:12207] CHIP:EM: Sending Standalone Ack for MessageCounter:236763897 on exchange 8128i
      disabled: true

    - label:
          "Change the state of this sensor (e.g. cover the occupancy sensor,
          open the contact sensor, heat the temperature sensor)"
      verification: |
          Press a key "t" on bridge-app to change the simulated temperature

          [1659351537.115828][14237:14242] CHIP:DL: TempSensorDevice[TempSensor 1]: New measurement="200"
          [1659351537.115987][14237:14242] CHIP:DL: TempSensorDevice[TempSensor 2]: New measurement="200"
          [1659351537.116097][14237:14242] CHIP:DL: TempSensorDevice[Composed TempSensor 1]: New measurement="200"
          [1659351537.116158][14237:14237] CHIP:DMG: Endpoint 4, Cluster 0x0000_0402 update version to 8f732d69
          [1659351537.116300][14237:14237] CHIP:DMG: Endpoint 5, Cluster 0x0000_0402 update version to 36be37c5
          [1659351537.116393][14237:14237] CHIP:DMG: Endpoint 7, Cluster 0x0000_0402 update version to 2cf2064d
          [1659351537.116179][14237:14242] CHIP:DL: TempSensorDevice[Composed TempSensor 2]: New measurement="200"
      disabled: true

    - label: "Read the state of this bridged device again, as in 7b"
      verification: |
          ./chip-tool temperaturemeasurement read measured-value 1 4

          expect to get a different value than step 7b
          [1659351542.393349][12212:12217] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0402 Attribute 0x0000_0000 DataVersion: 2406690153
          [1659351542.393429][12212:12217] CHIP:TOO:   MeasuredValue: 200
          [1659351542.393552][12212:12217] CHIP:EM: Sending Standalone Ack for MessageCounter:120981971 on exchange 25924i
      disabled: true
