# Copyright (c) 2021 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default

name: 84.2.1. [TC-DESC-2.1] Descriptor Cluster Attributes [DUT-Server]

PICS:
    - DESC.S

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

tests:
    - label: "Note"
      verification: |
          Mandatory cluster requirements for each device type can be found here.
          https://github.com/CHIP-Specifications/chip-test-plans/tree/master/tools/device-type-requirements
          Use the correct json required for the DUT, this file is PIXIT.DESC.DeviceTypeConformanceList.
      disabled: true

    - label: "Precondition"
      verification: |
          TH and DUT are commissioned
      disabled: true

    - label:
          "TH reads DeviceTypeList and PartsList attributes from DUT for
          Endpoint 0"
      PICS: DESC.S.A0000 && DESC.S.A0003
      verification: |
          Send a read request to the DUT using chip-tool to read the partsList attribute in the descriptor cluster on Endpoint 0.
          Make a note of all the items(Endpoint id’s) in the list. In the below example there are 2 endpoint id's listed [1,2]

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

          Verify "PartsList" response is not empty (use this list of endpoints in step 1b) on the TH (Chip-tool) and below is the sample log provided for the raspi platform:

           }
          [1672919206.069327][33426:33428] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2847656117
          [1672919206.069380][33426:33428] CHIP:TOO:   PartsList: 2 entries
          [1672919206.069398][33426:33428] CHIP:TOO:     [1]: 1
          [1672919206.069410][33426:33428] CHIP:TOO:     [2]: 2

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

          Verify "DeviceTypeList" response has at least one entry as Root Node Device Type and is not an Application Device Types  on TH (Chip-tool) and below is the sample log provided for the raspi platform and   Revision value is not less than 1:

          [1674552598.748946][21129:21131] CHIP:DMG: }
          [1674552598.749017][21129:21131] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2963153058
          [1674552598.749027][21129:21131] CHIP:TOO:   DeviceTypeList: 1 entries
          [1674552598.749036][21129:21131] CHIP:TOO:     [1]: {
          [1674552598.749042][21129:21131] CHIP:TOO:       DeviceType: 22
          [1674552598.749045][21129:21131] CHIP:TOO:       Revision: 1
          [1674552598.749048][21129:21131] CHIP:TOO:      }
      disabled: true

    - label:
          "TH reads DeviceTypeList and PartsList attributes from DUT for each
          Endpoint supported by DUT (except Endpoint 0)."
      PICS: DESC.S.A0000 && DESC.S.A0003
      verification: |
          For all the Endpoint’s listed from the previous step run the following steps. The device type should correspond to the id value in the device_type.json
          Chip tool outputs all values in integer,  convert to hex before comparing.


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

          Verify  parts-list response contains 0 entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform:

          [1660127331.634565][46437:46442] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 934889243
          [1660127331.634631][46437:46442] CHIP:TOO:   parts list: 0 entries

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

          Verify DeviceTypeList response contains 1 entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform:


          [1674552599.264189][21135:21137] CHIP:DMG: }
          [1674552599.264258][21135:21137] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2605122001
          [1674552599.264268][21135:21137] CHIP:TOO:   DeviceTypeList: 1 entries
          [1674552599.264277][21135:21137] CHIP:TOO:     [1]: {
          [1674552599.264284][21135:21137] CHIP:TOO:       DeviceType: 256
          [1674552599.264287][21135:21137] CHIP:TOO:       Revision: 1
          [1674552599.264290][21135:21137] CHIP:TOO:      }

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

          Verify parts-list response contains 0 entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform:

          [1660127879.565330][46472:46477] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1237610137
          [1660127879.565473][46472:46477] CHIP:TOO:   parts list: 0 entries


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

          Verify DeviceTypeList response contains 1 entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform:
          [1674552599.786124][21141:21143] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4029338401
          [1674552599.786141][21141:21143] CHIP:TOO:   DeviceTypeList: 1 entries
          [1674552599.786155][21141:21143] CHIP:TOO:     [1]: {
          [1674552599.786164][21141:21143] CHIP:TOO:       DeviceType: 256
          [1674552599.786168][21141:21143] CHIP:TOO:       Revision: 1
          [1674552599.786171][21141:21143] CHIP:TOO:      }
      disabled: true

    - label: "TH reads 'ServerList' attribute."
      PICS: DESC.S.A0001
      verification: |
          For all the Endpoint id’s listed in step 1a run the following steps. For all the server list entries listed in the output - Convert them to Hex values. For example 29 is 0x001D. Verify that these are also present in the device_type.json. Every server cluster listed in the JSON should correspond to a number here in the output.

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

          Verify server list on the TH (Chip-tool) and below is the sample log provided for the raspi platform:


          [1676367247.572430][9790:9792] CHIP:DMG: }
          [1676367247.572742][9790:9792] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 3336430903
          [1676367247.572770][9790:9792] CHIP:TOO:   ServerList: 45 entries
          [1676367247.572775][9790:9792] CHIP:TOO:     [1]: 3
          [1676367247.572778][9790:9792] CHIP:TOO:     [2]: 4
          [1676367247.572781][9790:9792] CHIP:TOO:     [3]: 5
          [1676367247.572784][9790:9792] CHIP:TOO:     [4]: 6
          [1676367247.572787][9790:9792] CHIP:TOO:     [5]: 7
          [1676367247.572790][9790:9792] CHIP:TOO:     [6]: 8
          [1676367247.572792][9790:9792] CHIP:TOO:     [7]: 15
          [1676367247.572795][9790:9792] CHIP:TOO:     [8]: 29
          [1676367247.572798][9790:9792] CHIP:TOO:     [9]: 30
          [1676367247.572801][9790:9792] CHIP:TOO:     [10]: 37
          [1676367247.572804][9790:9792] CHIP:TOO:     [11]: 47
          [1676367247.572807][9790:9792] CHIP:TOO:     [12]: 59
          [1676367247.572810][9790:9792] CHIP:TOO:     [13]: 64
          [1676367247.572813][9790:9792] CHIP:TOO:     [14]: 65
          [1676367247.572815][9790:9792] CHIP:TOO:     [15]: 69
          [1676367247.572818][9790:9792] CHIP:TOO:     [16]: 80
          [1676367247.572821][9790:9792] CHIP:TOO:     [17]: 257
          [1676367247.572824][9790:9792] CHIP:TOO:     [18]: 258
          [1676367247.572827][9790:9792] CHIP:TOO:     [19]: 259
          [1676367247.572829][9790:9792] CHIP:TOO:     [20]: 512
          [1676367247.572832][9790:9792] CHIP:TOO:     [21]: 513
          [1676367247.572835][9790:9792] CHIP:TOO:     [22]: 514
          [1676367247.572838][9790:9792] CHIP:TOO:     [23]: 516
          [1676367247.572841][9790:9792] CHIP:TOO:     [24]: 768
          [1676367247.572843][9790:9792] CHIP:TOO:     [25]: 769
          [1676367247.572846][9790:9792] CHIP:TOO:     [26]: 1024
          [1676367247.572849][9790:9792] CHIP:TOO:     [27]: 1026
          [1676367247.572852][9790:9792] CHIP:TOO:     [28]: 1027
          [1676367247.572855][9790:9792] CHIP:TOO:     [29]: 1028
          [1676367247.572858][9790:9792] CHIP:TOO:     [30]: 1029
          [1676367247.572860][9790:9792] CHIP:TOO:     [31]: 1030
          [1676367247.572863][9790:9792] CHIP:TOO:     [32]: 1283
          [1676367247.572866][9790:9792] CHIP:TOO:     [33]: 1284
          [1676367247.572869][9790:9792] CHIP:TOO:     [34]: 1285
          [1676367247.572872][9790:9792] CHIP:TOO:     [35]: 1286
          [1676367247.572874][9790:9792] CHIP:TOO:     [36]: 1287
          [1676367247.572877][9790:9792] CHIP:TOO:     [37]: 1288
          [1676367247.572880][9790:9792] CHIP:TOO:     [38]: 1289
          [1676367247.572883][9790:9792] CHIP:TOO:     [39]: 1290
          [1676367247.572886][9790:9792] CHIP:TOO:     [40]: 1291
          [1676367247.572889][9790:9792] CHIP:TOO:     [41]: 1292
          [1676367247.572892][9790:9792] CHIP:TOO:     [42]: 1293
          [1676367247.572894][9790:9792] CHIP:TOO:     [43]: 1294
          [1676367247.572897][9790:9792] CHIP:TOO:     [44]: 2820
          [1676367247.572900][9790:9792] CHIP:TOO:     [45]: 4294048773

          ./chip-tool descriptor read server-list 1 2

          Verify server list entries on TH (Chip-tool) Log:

          [1660146145.982691][46811:46816] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1051414887
          [1660146145.982733][46811:46816] CHIP:TOO:   server list: 5 entries
          [1660146145.982744][46811:46816] CHIP:TOO:     [1]: 4
          [1660146145.982752][46811:46816] CHIP:TOO:     [2]: 6
          [1660146145.982759][46811:46816] CHIP:TOO:     [3]: 29
          [1660146145.982771][46811:46816] CHIP:TOO:     [4]: 47
          [1660146145.982778][46811:46816] CHIP:TOO:     [5]: 1030
      disabled: true

    - label: "TH reads 'ClientList' attribute"
      PICS: DESC.S.A0002
      verification: |
          For all the Endpoint id’s listed in step 1a run the following steps. For all the client list entries listed in the output - Convert them to Hex values. For example 29 is 0x001D. Verify that these are also present in the device_type.json. Every server cluster listed in the JSON should correspond to a number here in the output.

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

          Verify client list entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform:

          [1676367470.160199][9805:9807] CHIP:DMG: }
          [1676367470.160268][9805:9807] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0002 DataVersion: 3336430903
          [1676367470.160282][9805:9807] CHIP:TOO:   ClientList: 1 entries
          [1676367470.160289][9805:9807] CHIP:TOO:     [1]: 6


          ./chip-tool descriptor read client-list 1 2

          Verify client list entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform:

          [1660146160.390200][46818:46823] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0002 DataVersion: 1051414887
          [1660146160.390211][46818:46823] CHIP:TOO:   client list: 0 entries
      disabled: true

    - label: "TH reads 'PartsList' attribute."
      PICS: DESC.S.A0003
      verification: |
          ./chip-tool descriptor read  parts-list 1 0

          Verify PartsList response  greater than 0 and  Endpoint is in the range of 1 to 65534 on the TH (Chip-tool) and below is the sample log provided for the raspi platform:

          [1672919326.178697][33468:33470] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2847656117
          [1672919326.178739][33468:33470] CHIP:TOO:   PartsList: 2 entries
          [1672919326.178765][33468:33470] CHIP:TOO:     [1]: 1
          [1672919326.178777][33468:33470] CHIP:TOO:     [2]: 2
      disabled: true

    - label:
          "The cluster tests applicable to each Device Type should be executed
          to make sure all mandatory (and applicable optional)
          attributes/commands are implemented."
      verification: |
          This step is redundant as during certification the appropriate tests are being run
      disabled: true
