# 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.2. [TC-DGGEN-2.2] Event functionality test with server as DUT

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

tests:
    - label: "Commission DUT to TH"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "Induce a DUT hardware failure two times as addressed in HardwareFault
          ENUM table 11.11.6.1. (Ex. Pull the DUT power plug off causing power
          source failure, and rejoin DUT back to previous TH fabric. Next,
          repeat power plug off and rejoining DUT back to previous TH fabric one
          more time.)"
      PICS: DGGEN.S.E00
      verification: |
          Optional attribute so its not compulsory to get the expected outcome
          On Raspi platform the event is triggered with this command, Pls use equivalent command on the respective DUT

          ./chip-tool generaldiagnostics read-event hardware-fault-change 1 0

          On TH verify that HardwareFaultChange Event SHALL indicate a change in the set of hardware faults currently
          detected by the Node. The current and previous field SHALL represent the set of faults as per Section 11.11.6.1,
          “HardwareFault enum”
          CHIP:DMG: ReportDataMessage =
          [1651562132.028543][7867:7872] CHIP:DMG: {
          [1651562132.028586][7867:7872] CHIP:DMG:         SuppressResponse = true,
          [1651562132.028632][7867:7872] CHIP:DMG:         InteractionModelRevision = 1
          [1651562132.028675][7867:7872] CHIP:DMG: }
          [1651562132.028788][7867:7872] CHIP:EM: Sending Standalone Ack for MessageCounter:10343932 on exchange 65462i

          1. Launch chip-tool into interactive mode with the below command
          ./chip-tool interactive start
           generaldiagnostics subscribe-event hardware-fault-change 100 1000 1 0

          On TH verify that TH reads and subscrition response message showing subscrition ID

          [1653659428.373913][242542:242547] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:15916168 on exchange 65448i
          [1653659428.373971][242542:242547] CHIP:EM: Found matching exchange: 65448i, Delegate: 0x7ff474004ae0
          [1653659428.374015][242542:242547] CHIP:EM: Rxd Ack; Removing MessageCounter:7607034 from Retrans Table on exchange 65448i
          [1653659428.374041][242542:242547] CHIP:EM: Removed CHIP MessageCounter:7607034 from RetransTable on exchange 65448i
          [1653659428.374100][242542:242547] CHIP:DMG: SubscribeResponseMessage =
          [1653659428.374122][242542:242547] CHIP:DMG: {
          [1653659428.374146][242542:242547] CHIP:DMG:         SubscriptionId = 0xc90581ad3918815d,
          [1653659428.374168][242542:242547] CHIP:DMG:         MinIntervalFloorSeconds = 0x64,
          [1653659428.374189][242542:242547] CHIP:DMG:         MaxIntervalCeilingSeconds = 0x3e8,
          [1653659428.374209][242542:242547] CHIP:DMG:         InteractionModelRevision = 1
          [1653659428.374228][242542:242547] CHIP:DMG: }
          [1653659428.374257][242542:242547] CHIP:DMG: Subscription established with SubscriptionID = 0xC90581AD3918815D MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000002
      disabled: true

    - label:
          "Induce a DUT radio failure two times as addressed in RadioFault ENUM
          table 11.11.6.2. (Ex. Put the DUT under metallic cover causing WiFi
          failure. Uncover DUT and make DUT rejoining DUT back to previous TH
          fabric. Repeat the radio failure one more time and rejoin DUT back to
          previous TH fabric."
      PICS: DGGEN.S.E01
      verification: |
          Optional attribute so its not compulsory to get the expected outcome

          On TH verify that RadioFaultChange Event SHALL indicate a change in the set of radio faults currently detected
          by the Node.
          ./chip-tool generaldiagnostics read-event radio-fault-change 1 0

          CHIP:DMG: ReportDataMessage =
          [1651562132.028543][7867:7872] CHIP:DMG: {
          [1651562132.028586][7867:7872] CHIP:DMG:         SuppressResponse = true,
          [1651562132.028632][7867:7872] CHIP:DMG:         InteractionModelRevision = 1
          [1651562132.028675][7867:7872] CHIP:DMG: }
          [1651562132.028788][7867:7872] CHIP:EM: Sending Standalone Ack for MessageCounter:10343932 on exchange 65462i
      disabled: true

    - label:
          "Induce a DUT radio failure two times as addressed in NetworkFault
          ENUM table 11.11.6.3. (Ex. Put the DUT under metallic cover causing
          network failure. Uncover DUT and rejoin DUT back to previous TH
          fabric. Pull the DUT power plug off causing power source failure.
          rejoining DUT back to previous TH fabric.)"
      PICS: DGGEN.S.E02
      verification: |
          sudo ./chip-tool generaldiagnostics subscribe-event radio-fault-change 100 1000 1 0

          On TH verify that subscription response  of RadioFault event shows subscrition ID

          [1653659768.885436][242582:242587] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:13730082 on exchange 33170i
          [1653659768.885490][242582:242587] CHIP:EM: Found matching exchange: 33170i, Delegate: 0x7f1d40006300
          [1653659768.885520][242582:242587] CHIP:EM: Rxd Ack; Removing MessageCounter:6045655 from Retrans Table on exchange 33170i
          [1653659768.885539][242582:242587] CHIP:EM: Removed CHIP MessageCounter:6045655 from RetransTable on exchange 33170i
          [1653659768.885591][242582:242587] CHIP:DMG: SubscribeResponseMessage =
          [1653659768.885609][242582:242587] CHIP:DMG: {
          [1653659768.885623][242582:242587] CHIP:DMG:         SubscriptionId = 0x3487b97e17eb62c7,
          [1653659768.885637][242582:242587] CHIP:DMG:         MinIntervalFloorSeconds = 0x64,
          [1653659768.885651][242582:242587] CHIP:DMG:         MaxIntervalCeilingSeconds = 0x3e8,
          [1653659768.885668][242582:242587] CHIP:DMG:         InteractionModelRevision = 1
          [1653659768.885684][242582:242587] CHIP:DMG: }
          [1653659768.885708][242582:242587] CHIP:DMG: Subscription established with SubscriptionID = 0x3487B97E17EB62C7 MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000002
      disabled: true

    - label:
          "Reboot DUT with a normal reboot process. Rejoin DUT back to previous
          TH fabric."
      PICS: DGGEN.S.E03
      verification: |
          Optional attribute so its not compulsory to get the expected outcome


          ./chip-tool generaldiagnostics read-event network-fault-change 1 0

          On TH verify that The NetworkFaultChange Event SHALL indicate a change in the set of network faults currently
          detected by the Node.
          CHIP:DMG: ReportDataMessage =
          [1651562132.028543][7867:7872] CHIP:DMG: {
          [1651562132.028586][7867:7872] CHIP:DMG:         SuppressResponse = true,
          [1651562132.028632][7867:7872] CHIP:DMG:         InteractionModelRevision = 1
          [1651562132.028675][7867:7872] CHIP:DMG: }
          [1651562132.028788][7867:7872] CHIP:EM: Sending Standalone Ack for MessageCounter:10343932 on exchange 65462i
      disabled: true

    - label: "TH initiates the subscription of NetworkFault event from DUT."
      PICS: DGGEN.S.E02
      verification: |
          On Raspi platform the event is triggered with this command, Pls use equivalent command on the respective DUT

          sudo ./chip-tool generaldiagnostics subscribe-event network-fault-change 100 1000 1 0
          On TH verify that subscription response  of NetworkFault event  shows subscrition ID

          [1653659901.757441][242605:242610] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:11933575 on exchange 20223i
          [1653659901.757513][242605:242610] CHIP:EM: Found matching exchange: 20223i, Delegate: 0x7fd058003950
          [1653659901.757544][242605:242610] CHIP:EM: Rxd Ack; Removing MessageCounter:3369789 from Retrans Table on exchange 20223i
          [1653659901.757564][242605:242610] CHIP:EM: Removed CHIP MessageCounter:3369789 from RetransTable on exchange 20223i
          [1653659901.757618][242605:242610] CHIP:DMG: SubscribeResponseMessage =
          [1653659901.757638][242605:242610] CHIP:DMG: {
          [1653659901.757658][242605:242610] CHIP:DMG:         SubscriptionId = 0x17dc072d1130a3bd,
          [1653659901.757676][242605:242610] CHIP:DMG:         MinIntervalFloorSeconds = 0x64,
          [1653659901.757690][242605:242610] CHIP:DMG:         MaxIntervalCeilingSeconds = 0x3e8,
          [1653659901.757708][242605:242610] CHIP:DMG:         InteractionModelRevision = 1
          [1653659901.757721][242605:242610] CHIP:DMG: }
          [1653659901.757746][242605:242610] CHIP:DMG: Subscription established with SubscriptionID = 0x17DC072D1130A3BD MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000002
      disabled: true

    - label:
          "Reboot DUT with a normal reboot process. Rejoin DUT back to previous
          TH fabric."
      PICS: DGGEN.S.E03
      verification: |
          1. Reboot DUT with a normal reboot process
          2. ./chip-tool generaldiagnostics read-event boot-reason 1 0
          On TH verify that the event data of BootReason specified by Table 103 BootReason ENUM table.

          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0003
          [1651562139.644134][7873:7878] CHIP:TOO:          Event number: 1
          [1651562139.644157][7873:7878] CHIP:TOO:          Priority: Critical
          [1651562139.644179][7873:7878] CHIP:TOO:          Timestamp: 8347991
          [1651562139.644273][7873:7878] CHIP:TOO:   BootReason: {
          [1651562139.644317][7873:7878] CHIP:TOO:     BootReason: 0
          [1651562139.644343][7873:7878] CHIP:TOO:    }
          [1651562139.644431][7873:7878] CHIP:EM: Sending Standalone Ack for MessageCounter:9685408 on exchange 6383i
      disabled: true
