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

PICS:
    - DGETH.S

config:
    nodeId: 0x12344321
    cluster: "Ethernet Network Diagnostics"
    endpoint: 0

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

    - label: "TH reads the ClusterRevision from DUT"
      PICS: DGETH.S.Afffd
      command: "readAttribute"
      attribute: "ClusterRevision"
      response:
          value: 1
          constraints:
              type: int16u

    - label: "TH reads the FeatureMap from DUT"
      PICS: " !DGETH.S.F00 && !DGETH.S.F01 && DGETH.S.Afffc"
      command: "readAttribute"
      attribute: "FeatureMap"
      response:
          value: 0
          constraints:
              type: bitmap32

    - label: "Given DGETH.S.F00 ensure featuremap has the correct bit set"
      PICS: DGETH.S.F00 && DGETH.S.Afffc
      command: "readAttribute"
      attribute: "FeatureMap"
      response:
          constraints:
              type: bitmap32
              hasMasksSet: [0x1]

    - label: "Given DGETH.S.F01 ensure featuremap has the correct bit set"
      PICS: DGETH.S.F01 && DGETH.S.Afffc
      command: "readAttribute"
      attribute: "FeatureMap"
      response:
          constraints:
              type: bitmap32
              hasMasksSet: [0x2]

    - label: "TH reads AttributeList from DUT"
      PICS: DGETH.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [65528, 65529, 65530, 65531, 65532, 65533]

    - label: "TH reads optional attribute(PHYRate) in AttributeList"
      PICS: DGETH.S.A0000 && DGETH.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [0]

    - label: "TH reads optional attribute(FullDuplex) in AttributeList"
      PICS: DGETH.S.A0001 && DGETH.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [1]

    - label:
          "TH reads optional attribute(PacketRxCount) and Feature
          dependent(DGETH.S.F00(PKTCNT)) in AttributeList"
      PICS: DGETH.S.A0002 && DGETH.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [2]

    - label:
          "TH reads optional attribute(PacketRxCount) and Feature
          dependent(DGETH.S.F00(PKTCNT)) in AttributeList"
      PICS: DGETH.S.A0003 && DGETH.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [3]

    - label:
          "TH reads optional attribute(PacketRxCount) and Feature
          dependent(DGETH.S.F01(ERRCNT)) in AttributeList"
      PICS: DGETH.S.A0004 && DGETH.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [4]

    - label:
          "TH reads optional attribute(PacketRxCount) and Feature
          dependent(DGETH.S.F01(ERRCNT)) in AttributeList"
      PICS: DGETH.S.A0005 && DGETH.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [5]

    - label:
          "TH reads optional attribute(PacketRxCount) and Feature
          dependent(DGETH.S.F01(ERRCNT)) in AttributeList"
      PICS: DGETH.S.A0006 && DGETH.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [6]

    - label: "TH reads optional attribute(CarrierDetect) in AttributeList"
      PICS: DGETH.S.A0007 && DGETH.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [7]

    - label: "TH reads optional attribute(TimeSinceReset) in AttributeList"
      PICS: DGETH.S.A0008 && DGETH.S.Afffb
      command: "readAttribute"
      attribute: "AttributeList"
      response:
          constraints:
              type: list
              contains: [8]

    #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 ethernetnetworkdiagnostics read attribute-list 1 0

          Verify " AttributeList " value consists the list of mandatory attributes (65533, 65532, 65531, 65529, 65528) and if DUT supports it lists optional attribute (0, 1, 2 , 3, 4, 5, 6, 7, 8) where 2, 3 if PCKCNT supported 4, 5, 6 if ERRCNT supported on the TH(Chip-tool) Log:

          [1676280358.144465][4074:4076] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFFB DataVersion: 1151677028
          [1676280358.144560][4074:4076] CHIP:TOO:   AttributeList: 15 entries
          [1676280358.144581][4074:4076] CHIP:TOO:     [1]: 0
          [1676280358.144597][4074:4076] CHIP:TOO:     [2]: 1
          [1676280358.144611][4074:4076] CHIP:TOO:     [3]: 2
          [1676280358.144625][4074:4076] CHIP:TOO:     [4]: 3
          [1676280358.144639][4074:4076] CHIP:TOO:     [5]: 4
          [1676280358.144652][4074:4076] CHIP:TOO:     [6]: 5
          [1676280358.144666][4074:4076] CHIP:TOO:     [7]: 6
          [1676280358.144680][4074:4076] CHIP:TOO:     [8]: 7
          [1676280358.144693][4074:4076] CHIP:TOO:     [9]: 8
          [1676280358.144708][4074:4076] CHIP:TOO:     [10]: 65528
          [1676280358.144722][4074:4076] CHIP:TOO:     [11]: 65529
          [1676280358.144736][4074:4076] CHIP:TOO:     [12]: 65530
          [1676280358.144750][4074:4076] CHIP:TOO:     [13]: 65531
          [1676280358.144764][4074:4076] CHIP:TOO:     [14]: 65532
          [1676280358.144778][4074:4076] CHIP:TOO:     [15]: 65533
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGETH.S.Afffb
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - label: "TH reads AcceptedCommandList from DUT"
      PICS: ( DGETH.S.F00 || DGETH.S.F01 ) && DGETH.S.Afff9
      command: "readAttribute"
      attribute: "AcceptedCommandList"
      response:
          constraints:
              type: list
              contains: [0]

    - label: "TH reads AcceptedCommandList from DUT"
      PICS: DGETH.S.Afff9 && !DGETH.S.F00 && !DGETH.S.F01
      command: "readAttribute"
      attribute: "AcceptedCommandList"
      response:
          value: []
          constraints:
              type: list

    - 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 ethernetnetworkdiagnostics read accepted-command-list 1 0

          Verify " AcceptedCommandList " consists the list of supported commands, in this cluster in RPI has 1 entry with  value is 0  on the TH(Chip-tool) Log:

          [1651786971.201258][240944:240949] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFF9 DataVersion: 2811403040
          [1651786971.201322][240944:240949] CHIP:TOO:   AcceptedCommandList: 1 entries
          [1651786971.201347][240944:240949] CHIP:TOO:     [1]: 0
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGETH.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 ethernetnetworkdiagnostics read generated-command-list 1 0

          Verify " GeneratedCommandList " consists the list of supported commands, Also verify that the DUT response with an empty list (0 entries) if there is no generated command on the TH(Chip-tool) Log:

          [1651787190.403639][240971:240976] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFF8 DataVersion: 2811403040
          [1651787190.403729][240971:240976] CHIP:TOO:   GeneratedCommandList: 0 entries
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGETH.S.Afff8
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"

    - 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  ethernetnetworkdiagnostics read event-list 1 0
          Verify "  EventList attribute " consists the list of supported events,  which for this cluster should be an empty list on the TH(Chip-tool) Log:

          [1676459303.132712][25176:25178] CHIP:DMG: }
          [1676459303.132751][25176:25178] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFFA DataVersion: 2330608789
          [1676459303.132772][25176:25178] CHIP:TOO:   EventList: 0 entries
          [1676459303.132795][25176:25178] CHIP:EM: <<< [E:41866i S:29076 M:220910528 (Ack:11574043)] (S) Msg TX to 1:0000000000000001 [110F] --- Type 0000:10 (SecureChannel:StandaloneAck)
          [1676459303.132799][25176:25178] CHIP:IN: (S) Sending msg 220910528 on secure session with LSID: 29076
          [1676459303.132809][25176:25178] CHIP:EM: Flushed pending ack for MessageCounter:11574043 on exchange 41866i
      cluster: "LogCommands"
      command: "UserPrompt"
      PICS: PICS_USER_PROMPT && DGETH.S.Afffa
      arguments:
          values:
              - name: "message"
                value: "Please enter 'y' for success"
              - name: "expectedValue"
                value: "y"
