# 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.3. [TC-BRBINFO-2.3] Attributes [DUT-Client]

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: "Precondition"
      verification: |
          1. Commission TH to DUT
      disabled: true

    - label: "DUT reads VendorName from the TH"
      PICS: BRBINFO.C.A0001
      verification: |
          ./chip-tool bridgeddevicebasic read vendor-name 1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1662483091.813322][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483091.813361][6721:6721] CHIP:DMG: {
          [1662483091.813393][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483091.813431][6721:6721] CHIP:DMG:         [
          [1662483091.813467][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483091.813507][6721:6721] CHIP:DMG:                 {
          [1662483091.813548][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483091.813594][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483091.813641][6721:6721] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1662483091.813684][6721:6721] CHIP:DMG:                 }
          [1662483091.813725][6721:6721] CHIP:DMG:
          [1662483091.813762][6721:6721] CHIP:DMG:         ],
          [1662483091.813803][6721:6721] CHIP:DMG:
          [1662483091.813841][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483091.813878][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483091.813912][6721:6721] CHIP:DMG: },
          [1662483091.814011][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
      disabled: true

    - label: "DUT reads VendorID from the TH"
      PICS: BRBINFO.C.A0002
      verification: |
          ./chip-tool bridgeddevicebasic read vendor-id 1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1662483142.830377][6721:6721] CHIP:IM: Received Read request
          [1662483142.830459][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483142.830487][6721:6721] CHIP:DMG: {
          [1662483142.830510][6721:6721] CHIP:DMG: 	AttributePathIBs =
          [1662483142.830553][6721:6721] CHIP:DMG: 	[
          [1662483142.830578][6721:6721] CHIP:DMG: 		AttributePathIB =
          [1662483142.830616][6721:6721] CHIP:DMG: 		{
          [1662483142.830650][6721:6721] CHIP:DMG: 			Endpoint = 0x3,
          [1662483142.830690][6721:6721] CHIP:DMG: 			Cluster = 0x39,
          [1662483142.830728][6721:6721] CHIP:DMG: 			Attribute = 0x0000_0002,
          [1662483142.830756][6721:6721] CHIP:DMG: 		}
          [1662483142.830792][6721:6721] CHIP:DMG:
          [1662483142.830818][6721:6721] CHIP:DMG: 	],
          [1662483142.830856][6721:6721] CHIP:DMG:
          [1662483142.830883][6721:6721] CHIP:DMG: 	isFabricFiltered = true,
          [1662483142.830916][6721:6721] CHIP:DMG: 	InteractionModelRevision = 1
          [1662483142.830940][6721:6721] CHIP:DMG: },
          [1662483142.831024][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
      disabled: true

    - label: "DUT reads ProductName from the TH"
      PICS: BRBINFO.C.A0003
      verification: |
          ./chip-tool bridgeddevicebasic read product-name 1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1662483164.120156][6721:6721] CHIP:IM: Received Read request
          [1662483164.120237][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483164.120264][6721:6721] CHIP:DMG: {
          [1662483164.120286][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483164.120312][6721:6721] CHIP:DMG:         [
          [1662483164.120336][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483164.120364][6721:6721] CHIP:DMG:                 {
          [1662483164.120391][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483164.120426][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483164.120458][6721:6721] CHIP:DMG:                         Attribute = 0x0000_0003,
          [1662483164.120487][6721:6721] CHIP:DMG:                 }
          [1662483164.120515][6721:6721] CHIP:DMG:
          [1662483164.120540][6721:6721] CHIP:DMG:         ],
          [1662483164.120568][6721:6721] CHIP:DMG:
          [1662483164.120594][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483164.120619][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483164.120642][6721:6721] CHIP:DMG: },
          [1662483164.120713][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483164.120803][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1662483164.120834][6721:6721] CHIP:DMG: <RE:Run> Cluster 39, Attribute 3 is dirty
      disabled: true

    - label: "DUT reads NodeLabel from the TH"
      PICS: BRBINFO.C.A0005
      verification: |
          ./chip-tool bridgeddevicebasic read node-label 1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1662483190.104331][6721:6721] CHIP:IM: Received Read request
          [1662483190.104408][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483190.104434][6721:6721] CHIP:DMG: {
          [1662483190.104455][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483190.104481][6721:6721] CHIP:DMG:         [
          [1662483190.104505][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483190.104534][6721:6721] CHIP:DMG:                 {
          [1662483190.104562][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483190.104592][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483190.104623][6721:6721] CHIP:DMG:                         Attribute = 0x0000_0005,
          [1662483190.104650][6721:6721] CHIP:DMG:                 }
          [1662483190.104678][6721:6721] CHIP:DMG:
          [1662483190.104702][6721:6721] CHIP:DMG:         ],
          [1662483190.104730][6721:6721] CHIP:DMG:
          [1662483190.104755][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483190.104780][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483190.104803][6721:6721] CHIP:DMG: },
          [1662483190.104875][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483190.104951][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1662483190.104979][6721:6721] CHIP:DMG: <RE:Run> Cluster 39, Attribute 5 is dirty
      disabled: true

    - label: "DUT reads Location from the TH"
      PICS: BRBINFO.C.A0006
      verification: |
          ./chip-tool bridgeddevicebasic read location 1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE



          chip-tool needs to be implemented
      disabled: true

    - label: "DUT reads HardwareVersion from the TH"
      PICS: BRBINFO.C.A0007
      verification: |
          ./chip-tool bridgeddevicebasic read  hardware-version 1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1662483240.584273][6721:6721] CHIP:IM: Received Read request
          [1662483240.584351][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483240.584389][6721:6721] CHIP:DMG: {
          [1662483240.584411][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483240.584437][6721:6721] CHIP:DMG:         [
          [1662483240.584470][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483240.584500][6721:6721] CHIP:DMG:                 {
          [1662483240.584539][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483240.584570][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483240.584611][6721:6721] CHIP:DMG:                         Attribute = 0x0000_0007,
          [1662483240.584648][6721:6721] CHIP:DMG:                 }
          [1662483240.584679][6721:6721] CHIP:DMG:
          [1662483240.584713][6721:6721] CHIP:DMG:         ],
          [1662483240.584743][6721:6721] CHIP:DMG:
          [1662483240.584780][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483240.584805][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483240.584837][6721:6721] CHIP:DMG: },
          [1662483240.584919][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483240.585010][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
      disabled: true

    - label: "DUT reads HardwareVersionString from the TH"
      PICS: BRBINFO.C.A0008
      verification: |
          ./chip-tool bridgeddevicebasic read  hardware-version-string 1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1662483260.814729][6721:6721] CHIP:IM: Received Read request
          [1662483260.814805][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483260.814843][6721:6721] CHIP:DMG: {
          [1662483260.814872][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483260.814903][6721:6721] CHIP:DMG:         [
          [1662483260.814928][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483260.814955][6721:6721] CHIP:DMG:                 {
          [1662483260.814983][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483260.815022][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483260.815063][6721:6721] CHIP:DMG:                         Attribute = 0x0000_0008,
          [1662483260.815091][6721:6721] CHIP:DMG:                 }
          [1662483260.815129][6721:6721] CHIP:DMG:
          [1662483260.815156][6721:6721] CHIP:DMG:         ],
          [1662483260.815192][6721:6721] CHIP:DMG:
          [1662483260.815218][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483260.815252][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483260.815275][6721:6721] CHIP:DMG: },
          [1662483260.815364][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483260.815454][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1662483260.815483][6721:6721] CHIP:DMG: <RE:Run> Cluster 39, Attribute 8 is dirty
      disabled: true

    - label: "DUT reads SoftwareVersion from the TH"
      PICS: BRBINFO.C.A0009
      verification: |
          ./chip-tool bridgeddevicebasic read software-version 1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1662483282.272696][6721:6721] CHIP:IM: Received Read request
          [1662483282.272777][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483282.272805][6721:6721] CHIP:DMG: {
          [1662483282.272830][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483282.272866][6721:6721] CHIP:DMG:         [
          [1662483282.272891][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483282.272920][6721:6721] CHIP:DMG:                 {
          [1662483282.272949][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483282.272978][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483282.273007][6721:6721] CHIP:DMG:                         Attribute = 0x0000_0009,
          [1662483282.273036][6721:6721] CHIP:DMG:                 }
          [1662483282.273064][6721:6721] CHIP:DMG:
          [1662483282.273089][6721:6721] CHIP:DMG:         ],
          [1662483282.273118][6721:6721] CHIP:DMG:
          [1662483282.273144][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483282.273169][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483282.273192][6721:6721] CHIP:DMG: },
          [1662483282.273267][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483282.273361][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1662483282.273392][6721:6721] CHIP:DMG: <RE:Run> Cluster 39, Attribute 9 is dirty
      disabled: true

    - label: "DUT reads SoftwareVersionString from the TH"
      PICS: BRBINFO.C.A000a
      verification: |
          ./chip-tool bridgeddevicebasic read software-version-string 1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1662483301.552473][6721:6721] CHIP:IM: Received Read request
          [1662483301.552587][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483301.552630][6721:6721] CHIP:DMG: {
          [1662483301.552666][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483301.552709][6721:6721] CHIP:DMG:         [
          [1662483301.552748][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483301.552796][6721:6721] CHIP:DMG:                 {
          [1662483301.552842][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483301.552893][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483301.552946][6721:6721] CHIP:DMG:                         Attribute = 0x0000_000A,
          [1662483301.552992][6721:6721] CHIP:DMG:                 }
          [1662483301.553038][6721:6721] CHIP:DMG:
          [1662483301.553079][6721:6721] CHIP:DMG:         ],
          [1662483301.553125][6721:6721] CHIP:DMG:
          [1662483301.553168][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483301.553208][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483301.553246][6721:6721] CHIP:DMG: },
          [1662483301.553352][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483301.553468][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1662483301.553513][6721:6721] CHIP:DMG: <RE:Run> Cluster 39, Attribute a is dirty
      disabled: true

    - label: "DUT reads ManufacturingDate from the TH"
      PICS: BRBINFO.C.A000b
      verification: |
          ./chip-tool bridgeddevicebasic read manufacturing-date  1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1662483324.189011][6721:6721] CHIP:IM: Received Read request
          [1662483324.189095][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483324.189123][6721:6721] CHIP:DMG: {
          [1662483324.189145][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483324.189170][6721:6721] CHIP:DMG:         [
          [1662483324.189194][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483324.189222][6721:6721] CHIP:DMG:                 {
          [1662483324.189250][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483324.189284][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483324.189317][6721:6721] CHIP:DMG:                         Attribute = 0x0000_000B,
          [1662483324.189347][6721:6721] CHIP:DMG:                 }
          [1662483324.189376][6721:6721] CHIP:DMG:
          [1662483324.189401][6721:6721] CHIP:DMG:         ],
          [1662483324.189429][6721:6721] CHIP:DMG:
          [1662483324.189455][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483324.189479][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483324.189502][6721:6721] CHIP:DMG: },
          [1662483324.189575][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483324.189665][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration =
      disabled: true

    - label: "DUT reads PartNumber from the TH"
      PICS: BRBINFO.C.A000c
      verification: |
          ./chip-tool bridgeddevicebasic read part-number  1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1662483344.709130][6721:6721] CHIP:IM: Received Read request
          [1662483344.709209][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483344.709236][6721:6721] CHIP:DMG: {
          [1662483344.709257][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483344.709283][6721:6721] CHIP:DMG:         [
          [1662483344.709307][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483344.709341][6721:6721] CHIP:DMG:                 {
          [1662483344.709371][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483344.709407][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483344.709439][6721:6721] CHIP:DMG:                         Attribute = 0x0000_000C,
          [1662483344.709468][6721:6721] CHIP:DMG:                 }
          [1662483344.709496][6721:6721] CHIP:DMG:
          [1662483344.709523][6721:6721] CHIP:DMG:         ],
          [1662483344.709551][6721:6721] CHIP:DMG:
          [1662483344.709576][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483344.709603][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483344.709626][6721:6721] CHIP:DMG: },
          [1662483344.709697][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483344.709776][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1662483344.709805][6721:6721] CHIP:DMG: <RE:Run> Cluster 39, Attribute c is dirty
      disabled: true

    - label: "DUT reads ProductURL from the TH"
      PICS: BRBINFO.C.A000d
      verification: |
          ./chip-tool bridgeddevicebasic read product-url  1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1662483368.089998][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483368.090026][6721:6721] CHIP:DMG: {
          [1662483368.090047][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483368.090100][6721:6721] CHIP:DMG:         [
          [1662483368.090126][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483368.090154][6721:6721] CHIP:DMG:                 {
          [1662483368.090182][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483368.090214][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483368.090244][6721:6721] CHIP:DMG:                         Attribute = 0x0000_000D,
          [1662483368.090272][6721:6721] CHIP:DMG:                 }
          [1662483368.090299][6721:6721] CHIP:DMG:
          [1662483368.090324][6721:6721] CHIP:DMG:         ],
          [1662483368.090352][6721:6721] CHIP:DMG:
          [1662483368.090378][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483368.090403][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483368.090426][6721:6721] CHIP:DMG: },
          [1662483368.090499][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483368.090578][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1662483368.090607][6721:6721] CHIP:DMG: <RE:Run> Cluster 39, Attribute d is dirty
      disabled: true

    - label: "DUT reads ProductLabel from the TH"
      PICS: BRBINFO.C.A000e
      verification: |
          ./chip-tool bridgeddevicebasic read product-label  1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1662483390.848183][6721:6721] CHIP:IM: Received Read request
          [1662483390.848263][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483390.848289][6721:6721] CHIP:DMG: {
          [1662483390.848311][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483390.848344][6721:6721] CHIP:DMG:         [
          [1662483390.848368][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483390.848395][6721:6721] CHIP:DMG:                 {
          [1662483390.848423][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483390.848454][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483390.848488][6721:6721] CHIP:DMG:                         Attribute = 0x0000_000E,
          [1662483390.848517][6721:6721] CHIP:DMG:                 }
          [1662483390.848546][6721:6721] CHIP:DMG:
          [1662483390.848573][6721:6721] CHIP:DMG:         ],
          [1662483390.848601][6721:6721] CHIP:DMG:
          [1662483390.848627][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483390.848652][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483390.848675][6721:6721] CHIP:DMG: },
          [1662483390.848745][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
      disabled: true

    - label: "DUT reads SerialNumber from the TH"
      PICS: BRBINFO.C.A000f
      verification: |
          ./chip-tool bridgeddevicebasic read serial-number  1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:

          [1662483412.129986][6721:6721] CHIP:IM: Received Read request
          [1662483412.130062][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483412.130088][6721:6721] CHIP:DMG: {
          [1662483412.130134][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483412.130162][6721:6721] CHIP:DMG:         [
          [1662483412.130186][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483412.130214][6721:6721] CHIP:DMG:                 {
          [1662483412.130242][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483412.130273][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483412.130304][6721:6721] CHIP:DMG:                         Attribute = 0x0000_000F,
          [1662483412.130333][6721:6721] CHIP:DMG:                 }
          [1662483412.130361][6721:6721] CHIP:DMG:
          [1662483412.130386][6721:6721] CHIP:DMG:         ],
          [1662483412.130413][6721:6721] CHIP:DMG:
          [1662483412.130439][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483412.130464][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483412.130487][6721:6721] CHIP:DMG: },
          [1662483412.130558][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483412.130636][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1662483412.130665][6721:6721] CHIP:DMG: <RE:Run> Cluster 39, Attribute f is dirty
      disabled: true

    - label: "DUT reads Reachable from the TH"
      PICS: BRBINFO.C.A0011
      verification: |
          ./chip-tool bridgeddevicebasic read reachable 1 3

          Verify ReadRequestMessage is displayed on TH(bridge-app) Log
          [1662483432.994416][6721:6721] CHIP:IM: Received Read request
          [1662483432.994498][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483432.994524][6721:6721] CHIP:DMG: {
          [1662483432.994546][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483432.994572][6721:6721] CHIP:DMG:         [
          [1662483432.994596][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483432.994623][6721:6721] CHIP:DMG:                 {
          [1662483432.994651][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483432.994684][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483432.994714][6721:6721] CHIP:DMG:                         Attribute = 0x0000_0011,
          [1662483432.994742][6721:6721] CHIP:DMG:                 }
          [1662483432.994770][6721:6721] CHIP:DMG:
          [1662483432.994795][6721:6721] CHIP:DMG:         ],
          [1662483432.994823][6721:6721] CHIP:DMG:
          [1662483432.994849][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483432.994873][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483432.994896][6721:6721] CHIP:DMG: },
          [1662483432.994968][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483432.995051][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1662483432.995079][6721:6721] CHIP:DMG: <RE:Run> Cluster 39, Attribute 11 is dirty
      disabled: true

    - label: "DUT reads UniqueID from the TH"
      PICS: BRBINFO.C.A0012
      verification: |
          ./chip-tool bridgeddevicebasic read unique-id 1 3

          Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE

          Example Log:
          [1662483460.016076][6721:6721] CHIP:IM: Received Read request
          [1662483460.016164][6721:6721] CHIP:DMG: ReadRequestMessage =
          [1662483460.016192][6721:6721] CHIP:DMG: {
          [1662483460.016214][6721:6721] CHIP:DMG:         AttributePathIBs =
          [1662483460.016240][6721:6721] CHIP:DMG:         [
          [1662483460.016264][6721:6721] CHIP:DMG:                 AttributePathIB =
          [1662483460.016298][6721:6721] CHIP:DMG:                 {
          [1662483460.016335][6721:6721] CHIP:DMG:                         Endpoint = 0x3,
          [1662483460.016368][6721:6721] CHIP:DMG:                         Cluster = 0x39,
          [1662483460.016399][6721:6721] CHIP:DMG:                         Attribute = 0x0000_0012,
          [1662483460.016429][6721:6721] CHIP:DMG:                 }
          [1662483460.016457][6721:6721] CHIP:DMG:
          [1662483460.016482][6721:6721] CHIP:DMG:         ],
          [1662483460.016510][6721:6721] CHIP:DMG:
          [1662483460.016536][6721:6721] CHIP:DMG:         isFabricFiltered = true,
          [1662483460.016561][6721:6721] CHIP:DMG:         InteractionModelRevision = 1
          [1662483460.016584][6721:6721] CHIP:DMG: },
          [1662483460.016656][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1662483460.016752][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGenera
      disabled: true
