# 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.6.1. [TC-WAKEONLAN-4.1] Wake-On LAN Verification

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

tests:
    - label: "TH reads the MACAddress attribute from the DUT"
      PICS: WAKEONLAN.S.A0000
      verification: |
          ./chip-tool wakeonlan read macaddress 1 1

          [1654248817.394846][3637:3643] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0503 Attribute 0x0000_0000 DataVersion: 3900236652
          [1654248817.394895][3637:3643] CHIP:TOO:   MACAddress: e4:5f:01:69:61:b1
          [1654248817.394982][3637:3643] CHIP:EM: Sending Standalone Ack for MessageCounter:15292555 on exchange 12123i
      disabled: true

    - label: "TH sends a Sleep command to DUT"
      PICS: PICS_LP
      verification: |
          ./chip-tool lowpower sleep 1 1
          [1646101689.826629][3009:3014] CHIP:DMG: InvokeResponseMessage =
          [1646101689.826665][3009:3014] CHIP:DMG: {
          [1646101689.826697][3009:3014] CHIP:DMG:        suppressResponse = false,
          [1646101689.826727][3009:3014] CHIP:DMG:        InvokeResponseIBs =
          [1646101689.826769][3009:3014] CHIP:DMG:        [
          [1646101689.826804][3009:3014] CHIP:DMG:                InvokeResponseIB =
          [1646101689.826848][3009:3014] CHIP:DMG:                {
          [1646101689.826882][3009:3014] CHIP:DMG:                        CommandStatusIB =
          [1646101689.826922][3009:3014] CHIP:DMG:                        {
          [1646101689.826954][3009:3014] CHIP:DMG:                                CommandPathIB =
          [1646101689.826989][3009:3014] CHIP:DMG:                                {
          [1646101689.827031][3009:3014] CHIP:DMG:                                        EndpointId = 0x1,
          [1646101689.827082][3009:3014] CHIP:DMG:                                        ClusterId = 0x508,
          [1646101689.827127][3009:3014] CHIP:DMG:                                        CommandId = 0x0,
          [1646101689.827172][3009:3014] CHIP:DMG:                                },
          [1646101689.827223][3009:3014] CHIP:DMG:
          [1646101689.827260][3009:3014] CHIP:DMG:                                StatusIB =
          [1646101689.827311][3009:3014] CHIP:DMG:                                {
          [1646101689.827360][3009:3014] CHIP:DMG:                                        status = 0x0,
          [1646101689.827411][3009:3014] CHIP:DMG:                                },
          [1646101689.827457][3009:3014] CHIP:DMG:
          [1646101689.827498][3009:3014] CHIP:DMG:                        },
          [1646101689.827540][3009:3014] CHIP:DMG:
          [1646101689.827607][3009:3014] CHIP:DMG:                },
          [1646101689.827658][3009:3014] CHIP:DMG:
          [1646101689.827689][3009:3014] CHIP:DMG:        ],
          [1646101689.827730][3009:3014] CHIP:DMG:
          [1646101689.827761][3009:3014] CHIP:DMG:        InteractionModelRevision = 1
          [1646101689.827792][3009:3014] CHIP:DMG: },
          [1646101689.827875][3009:3014] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0508 Command=0x0000_0000 Status=0x0
      disabled: true

    - label:
          "TH sends a Wake-On LAN magic packet containing the MAC address from
          step 1"
      PICS: LOWPOWER.S
      verification: |
          ./chip-tool lowpower read accepted-command-list 1 1
          [1654248854.491911][3652:3657] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0508 Attribute 0x0000_FFF9 DataVersion: 2125568804
          [1654248854.491994][3652:3657] CHIP:TOO:   AcceptedCommandList: 1 entries
          [1654248854.492040][3652:3657] CHIP:TOO:     [1]: 0
          [1654248854.492157][3652:3657] CHIP:EM: Sending Standalone Ack for MessageCounter:15063522 on exchange 51389i
      disabled: true
