# 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]

PICS:
    - BRBINFO.C

config:
    nodeId: 0x12344321
    cluster: "Basic Information"
    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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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:
          [1678082556.298595][4469:4469] CHIP:IM: Received Read request
          [1678082556.298708][4469:4469] CHIP:DMG: ReadRequestMessage =
          [1678082556.298741][4469:4469] CHIP:DMG: {
          [1678082556.298765][4469:4469] CHIP:DMG:         AttributePathIBs =
          [1678082556.298807][4469:4469] CHIP:DMG:         [
          [1678082556.298834][4469:4469] CHIP:DMG:                 AttributePathIB =
          [1678082556.298867][4469:4469] CHIP:DMG:                 {
          [1678082556.298899][4469:4469] CHIP:DMG:                         Endpoint = 0x3,
          [1678082556.298933][4469:4469] CHIP:DMG:                         Cluster = 0x39,
          [1678082556.298966][4469:4469] CHIP:DMG:                         Attribute = 0x0000_0005,
          [1678082556.298998][4469:4469] CHIP:DMG:                 }
          [1678082556.299030][4469:4469] CHIP:DMG:
          [1678082556.299059][4469:4469] CHIP:DMG:         ],
          [1678082556.299089][4469:4469] CHIP:DMG:
          [1678082556.299118][4469:4469] CHIP:DMG:         isFabricFiltered = true,
          [1678082556.299145][4469:4469] CHIP:DMG:         InteractionModelRevision = 1
          [1678082556.299171][4469:4469] CHIP:DMG: },
          [1678082556.299247][4469:4469] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1678082556.299380][4469:4469] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1678082556.299413][4469:4469] CHIP:DMG: <RE:Run> Cluster 39, Attribute 5 is dirty
      disabled: true

    - label: "DUT reads HardwareVersion from the TH"
      PICS: BRBINFO.C.A0007
      verification: |
          ./chip-tool bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation 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 bridgeddevicebasicinformation read reachable 1 3

          Verify ReadRequestMessage is displayed on TH(bridge-app) Log
          [1674815846.289405][16608:16608] CHIP:DMG: ReportDataMessage =
          [1674815846.289407][16608:16608] CHIP:DMG: {
          [1674815846.289409][16608:16608] CHIP:DMG:         AttributeReportIBs =
          [1674815846.289413][16608:16608] CHIP:DMG:         [
          [1674815846.289415][16608:16608] CHIP:DMG:                 AttributeReportIB =
          [1674815846.289419][16608:16608] CHIP:DMG:                 {
          [1674815846.289422][16608:16608] CHIP:DMG:                         AttributeDataIB =
          [1674815846.289425][16608:16608] CHIP:DMG:                         {
          [1674815846.289427][16608:16608] CHIP:DMG:                                 DataVersion = 0xf6524906,
          [1674815846.289431][16608:16608] CHIP:DMG:                                 AttributePathIB =
          [1674815846.289434][16608:16608] CHIP:DMG:                                 {
          [1674815846.289436][16608:16608] CHIP:DMG:                                         Endpoint = 0x3,
          [1674815846.289439][16608:16608] CHIP:DMG:                                         Cluster = 0x39,
          [1674815846.289441][16608:16608] CHIP:DMG:                                         Attribute = 0x0000_0011,
          [1674815846.289446][16608:16608] CHIP:DMG:                                 }
          [1674815846.289449][16608:16608] CHIP:DMG:
          [1674815846.289451][16608:16608] CHIP:DMG:                                 Data = true,
          [1674815846.289454][16608:16608] CHIP:DMG:                         },
          [1674815846.289457][16608:16608] CHIP:DMG:
          [1674815846.289459][16608:16608] CHIP:DMG:                 },
          [1674815846.289464][16608:16608] CHIP:DMG:
          [1674815846.289465][16608:16608] CHIP:DMG:         ],
          [1674815846.289468][16608:16608] CHIP:DMG:
          [1674815846.289471][16608:16608] CHIP:DMG:         SuppressResponse = true,
          [1674815846.289473][16608:16608] CHIP:DMG:         InteractionModelRevision = 1
          [1674815846.289475][16608:16608] CHIP:DMG: }
          [1674815846.289477][16608:16608] CHIP:DMG:
      disabled: true

    - label: "DUT reads UniqueID from the TH"
      PICS: BRBINFO.C.A0012
      verification: |
          ./chip-tool bridgeddevicebasicinformation 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
