# 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: 88.1.1. [TC-DGGEN-1.1] Global Attributes with DUT as Server

PICS:
    - DGGEN.S

config:
    nodeId: 0x12344321
    cluster: "General Diagnostics"
    endpoint: 0

tests:
    - label: "Wait for the commissioned device to be retrieved"
      cluster: "DelayCommands"
      command: "WaitForCommissionee"
      arguments:
          values:
              - name: "nodeId"
                value: nodeId

    - label: "Read the global attribute: ClusterRevision"
      PICS: DGGEN.S.Afffd
      command: "readAttribute"
      attribute: "ClusterRevision"
      response:
          value: 1
          constraints:
              type: int16u

    - label: "Read the global attribute: FeatureMap"
      PICS: DGGEN.S.Afffc
      command: "readAttribute"
      attribute: "FeatureMap"
      response:
          value: 0
          constraints:
              type: bitmap32

    - label: "Read the global attribute: AttributeList"
      PICS: DGGEN.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [0, 1, 8, 65528, 65529, 65530, 65531, 65532, 65533]

    - label: "Read optional attribute(UpTime) in AttributeList"
      PICS: DGGEN.S.A0002 && DGGEN.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [2]

    - label: "Read optional attribute(TotalOperationalHours) in AttributeList"
      PICS: DGGEN.S.A0003 && DGGEN.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [3]

    - label: "Read optional attribute(BootReason) in AttributeList"
      PICS: DGGEN.S.A0004 && DGGEN.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [4]

    - label: "Read optional attribute(ActiveHardwareFaults) in AttributeList"
      PICS: DGGEN.S.A0005 && DGGEN.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [5]

    - label: "Read optional attribute(ActiveRadioFaults) in AttributeList"
      PICS: DGGEN.S.A0006 && DGGEN.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [6]

    - label: "Read optional attribute(ActiveNetworkFaults) in AttributeList"
      PICS: DGGEN.S.A0007 && DGGEN.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [7]

    #List values range check support https://github.com/project-chip/connectedhomeip/issues/26570
    - label:
          "TH reads AttributeList attribute from DUT. 1.The list SHALL NOT
          contain any additional values in the standard or scoped range:
          (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) 2.The list
          MAY contain values in the Manufacturer Extensible Identifier (MEI)
          range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI
          range (0x0001 - 0xFFF1), these values SHALL be ignored. 3.The list
          SHALL NOT contain any values in the Test Vendor or invalid range:
          (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 -
          0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the
          allowed MEI range (0x0001 - 0xFFF1)"
      verification: |
          ./chip-tool generaldiagnostics read attribute-list 1 0

          On TH(chip-tool), Verify that the DUT response provides a list of supported attributes. This list SHALL include all supported attributes ID values, i.e it should list all mandatory attributes (0, 1, 8),  global attributes (65528, 65529, 65531, 65533) and list may include optional attributes (values 2, 3, 4, 5, 6, 7) based on DUT Implementation.
          [1676280601.205500][4157:4159] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Attribute 0x0000_FFFB DataVersion: 2261309517
          [1676280601.205598][4157:4159] CHIP:TOO:   AttributeList: 15 entries
          [1676280601.205620][4157:4159] CHIP:TOO:     [1]: 0
          [1676280601.205635][4157:4159] CHIP:TOO:     [2]: 1
          [1676280601.205649][4157:4159] CHIP:TOO:     [3]: 2
          [1676280601.205663][4157:4159] CHIP:TOO:     [4]: 3
          [1676280601.205677][4157:4159] CHIP:TOO:     [5]: 4
          [1676280601.205691][4157:4159] CHIP:TOO:     [6]: 5
          [1676280601.205705][4157:4159] CHIP:TOO:     [7]: 6
          [1676280601.205719][4157:4159] CHIP:TOO:     [8]: 7
          [1676280601.205733][4157:4159] CHIP:TOO:     [9]: 8
          [1676280601.205748][4157:4159] CHIP:TOO:     [10]: 65528
          [1676280601.205762][4157:4159] CHIP:TOO:     [11]: 65529
          [1676280601.205776][4157:4159] CHIP:TOO:     [12]: 65530
          [1676280601.205789][4157:4159] CHIP:TOO:     [13]: 65531
          [1676280601.205803][4157:4159] CHIP:TOO:     [14]: 65532
          [1676280601.205817][4157:4159] CHIP:TOO:     [15]: 65533
          [1676280601.206035][4157:4159] CHIP:EM: <<< [E:45912i M:24926720 (Ack:175157605)] (S) Msg TX to 1:00000000
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGGEN.S.Afffb
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "Read the global attribute: EventList"
      PICS: DGGEN.S.Afffa
      command: "readAttribute"
      attribute: "EventList"
      response:
          constraints:
              type: list
              contains: [3]

    - label: "Read optional event(HardwareFaultChange) in EventList"
      PICS: DGGEN.S.Afffa && DGGEN.S.E00
      command: "readAttribute"
      attribute: "EventList"
      response:
          constraints:
              type: list
              contains: [0]

    - label: "Read optional event(RadioFaultChange) in EventList"
      PICS: DGGEN.S.Afffa && DGGEN.S.E01
      command: "readAttribute"
      attribute: "EventList"
      response:
          constraints:
              type: list
              contains: [1]

    - label: "Read optional event(NetworkFaultChange) in EventList"
      PICS: DGGEN.S.Afffa && DGGEN.S.E02
      command: "readAttribute"
      attribute: "EventList"
      response:
          constraints:
              type: list
              contains: [2]

    - label:
          "TH reads EventList attribute from DUT. 1.The list MAY contain values
          in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 -
          0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1),
          these values SHALL be ignored. 2.The list SHALL NOT contain any values
          in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF),
          (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where
          XXXX is the allowed MEI range (0x0001 - 0xFFF1)"
      verification: |
          ./chip-tool  generaldiagnostics read event-list 1 0


          [1676459408.977604][25255:25257] CHIP:DMG: }
          [1676459408.977730][25255:25257] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Attribute 0x0000_FFFA DataVersion: 4000280266
          [1676459408.977747][25255:25257] CHIP:TOO:   EventList: 4 entries
          [1676459408.977752][25255:25257] CHIP:TOO:     [1]: 0
          [1676459408.977755][25255:25257] CHIP:TOO:     [2]: 1
          [1676459408.977759][25255:25257] CHIP:TOO:     [3]: 2
          [1676459408.977761][25255:25257] CHIP:TOO:     [4]: 3
          [1676459408.977790][25255:25257] CHIP:EM: <<< [E:3742i S:56131 M:239009454 (Ack:224914310)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck)
          [1676459408.977795][25255:25257] CHIP:IN: (S) Sending msg 239009454 on secure session with LSID: 56131
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGGEN.S.Afffa
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "Read the global attribute: AcceptedCommandList"
      PICS: DGGEN.S.Afff9
      command: "readAttribute"
      attribute: "AcceptedCommandList"
      response:
          constraints:
              type: list
              contains: [0]

    - label:
          "TH reads AcceptedCommandList attribute from DUT. 1.The list SHALL NOT
          contain any additional values in the standard or scoped range:
          (0x0000_0000 - 0x0000_00FF). 2.The list MAY contain values in the
          Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 -
          0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1),
          these values SHALL be ignored.3.The list SHALL NOT contain any values
          in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF),
          (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where
          XXXX is the allowed MEI range (0x0001 - 0xFFF1)"
      verification: |
          ./chip-tool generaldiagnostics read accepted-command-list 1 0

          On TH(Chip-tool), Verify that the DUT response provides a list of Acccepted Command that DUT implemented as mandatory or optional/feature support. TestEventTrigger command is mandatory. So, this list SHALL include one entry.

          [1654681912.442893][32901:32906] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Attribute 0x0000_FFF9 DataVersion: 2161135285
          [1654681912.442974][32901:32906] CHIP:TOO:   AcceptedCommandList: 1 entries
          [1654681912.443007][32901:32906] CHIP:TOO:     [1]: 0
          [1654681912.443085][32901:32906] CHIP:EM: Sending Standalone Ack for MessageCounter:150175766 on exchange 54113i
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGGEN.S.Afff9
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label:
          "TH reads GeneratedCommandList attribute from DUT. 1.The list MAY
          contain values in the Manufacturer Extensible Identifier (MEI) range:
          (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range
          (0x0001 - 0xFFF1), these values SHALL be ignored. 2.The list SHALL NOT
          contain any values in the Test Vendor or invalid range: (0x0000_0100 -
          0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 -
          0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1)"
      verification: |
          ./chip-tool generaldiagnostics read generated-command-list 1 0

          On TH(Chip-tool), Verify that the DUT response provides a list of Generated Command. Also verify that the DUT response with an empty list (0 entries) if there is no generated command.

          [1654681931.626110][32908:32913] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Attribute 0x0000_FFF8 DataVersion: 2161135285
          [1654681931.626284][32908:32913] CHIP:TOO:   GeneratedCommandList: 0 entries
          [1654681931.626454][32908:32913] CHIP:EM: Sending Standalone Ack for MessageCounter:43923364 on exchange
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGGEN.S.Afff8
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"
