# 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.5.1. [TC-SU-2.7] Events generated by OTA-R(DUT)

PICS:
    - MCORE.OTA.Requestor

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

tests:
    - label: "Perform a software update on the DUT."
      verification: |
          ./chip-tool interactive start

          Subscribe to StateTransition event using command

          otasoftwareupdaterequestor subscribe-event state-transition 5 10 0x1234567890 0

          Trigger OTA query using command

          otasoftwareupdaterequestor announce-ota-provider 0xDEADBEEF 0 0 0 0x1234567890 0

          where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID

          Verify that the chip-tool receives below StateTransition event notifications

          1644017070772] [33044:1032132] CHIP: [TOO]   StateTransition: {
          [1644017070772] [33044:1032132] CHIP: [TOO]     PreviousState: 1
          [1644017070772] [33044:1032132] CHIP: [TOO]     NewState: 2
          [1644017070772] [33044:1032132] CHIP: [TOO]     Reason: 1
          [1644017070772] [33044:1032132] CHIP: [TOO]     TargetSoftwareVersion: null
          [1644017070772] [33044:1032132] CHIP: [TOO]    }

          [1644017070772] [33044:1032132] CHIP: [TOO]   StateTransition: {
          [1644017070772] [33044:1032132] CHIP: [TOO]     PreviousState: 2
          [1644017070772] [33044:1032132] CHIP: [TOO]     NewState: 4
          [1644017070772] [33044:1032132] CHIP: [TOO]     Reason: 1
          [1644017070772] [33044:1032132] CHIP: [TOO]     TargetSoftwareVersion: 1
          [1644017070772] [33044:1032132] CHIP: [TOO]    }

          [1644017080776] [33044:1032131] CHIP: [TOO]   StateTransition: {
          [1644017080776] [33044:1032131] CHIP: [TOO]     PreviousState: 4
          [1644017080776] [33044:1032131] CHIP: [TOO]     NewState: 5
          [1644017080776] [33044:1032131] CHIP: [TOO]     Reason: 1
          [1644017080776] [33044:1032131] CHIP: [TOO]     TargetSoftwareVersion: 1
          [1644017080776] [33044:1032131] CHIP: [TOO]    }

          [1644017080776] [33044:1032131] CHIP: [TOO]   StateTransition: {
          [1644017080776] [33044:1032131] CHIP: [TOO]     PreviousState: 5
          [1644017080776] [33044:1032131] CHIP: [TOO]     NewState: 1
          [1644017080776] [33044:1032131] CHIP: [TOO]     Reason: 1
          [1644017080776] [33044:1032131] CHIP: [TOO]     TargetSoftwareVersion: null
          [1644017080776] [33044:1032131] CHIP: [TOO]    }
      disabled: true

    - label:
          "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a
          QueryImageResponse back to DUT. QueryStatus is set to Busy."
      verification: |
          ./chip-tool interactive start

          Subscribe to StateTransition event using command

          otasoftwareupdaterequestor subscribe-event state-transition 5 10 0x1234567890 0

          Trigger OTA query using command

          otasoftwareupdaterequestor announce-ota-provider 0xDEADBEEF 0 0 0 0x1234567890 0

          where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID

          Verify that the chip-tool receives below StateTransition event notification

          [1651282443727] [28764:35514810] CHIP: [TOO]   StateTransition: {
          [1651282443727] [28764:35514810] CHIP: [TOO]     PreviousState: 1
          [1651282443727] [28764:35514810] CHIP: [TOO]     NewState: 2
          [1651282443727] [28764:35514810] CHIP: [TOO]     Reason: 1
          [1651282443727] [28764:35514810] CHIP: [TOO]     TargetSoftwareVersion: null
          [1651282443727] [28764:35514810] CHIP: [TOO]    }

          [1651282443727] [28764:35514810] CHIP: [TOO]   StateTransition: {
          [1651282443727] [28764:35514810] CHIP: [TOO]     PreviousState: 2
          [1651282443727] [28764:35514810] CHIP: [TOO]     NewState: 3
          [1651282443727] [28764:35514810] CHIP: [TOO]     Reason: 4
          [1651282443727] [28764:35514810] CHIP: [TOO]     TargetSoftwareVersion: null
          [1651282443727] [28764:35514810] CHIP: [TOO]    }
      disabled: true

    - label:
          "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P does not
          respond back to DUT."
      verification: |
          ./chip-tool interactive start

          Subscribe to StateTransition event using command

          otasoftwareupdaterequestor subscribe-event state-transition 5 10 0x1234567890 0

          Kill OTA Provider App before issuing query using

          otasoftwareupdaterequestor announce-ota-provider 0xDEADBEEF 0 0 0 0x1234567890 0

          where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID

          Verify that the chip-tool receives below StateTransition event notification

          [1651282794539] [28929:35519901] CHIP: [TOO]   StateTransition: {
          [1651282794539] [28929:35519901] CHIP: [TOO]     PreviousState: 1
          [1651282794539] [28929:35519901] CHIP: [TOO]     NewState: 2
          [1651282794539] [28929:35519901] CHIP: [TOO]     Reason: 1
          [1651282794539] [28929:35519901] CHIP: [TOO]     TargetSoftwareVersion: null
          [1651282794539] [28929:35519901] CHIP: [TOO]    }

          [1651282804542] [28929:35519900] CHIP: [TOO]   StateTransition: {
          [1651282804542] [28929:35519900] CHIP: [TOO]     PreviousState: 2
          [1651282804542] [28929:35519900] CHIP: [TOO]     NewState: 1
          [1651282804542] [28929:35519900] CHIP: [TOO]     Reason: 2
          [1651282804542] [28929:35519900] CHIP: [TOO]     TargetSoftwareVersion: null
          [1651282804542] [28929:35519900] CHIP: [TOO]    }
      disabled: true

    - label:
          "DUT sends a QueryImage command to the TH/OTA-P. RequestorCanConsent
          is set to True by DUT. OTA-P/TH responds with a QueryImageResponse
          with UserConsentNeeded field set to True."
      PICS: MCORE.OTA.RequestorConsent
      verification: |
          Run the Provider App using
          ./chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin -c

          ./chip-tool interactive start

          Subscribe to StateTransition event using command

          otasoftwareupdaterequestor subscribe-event state-transition 5 10 0x1234567890 0

          Trigger OTA query using command

          otasoftwareupdaterequestor announce-ota-provider 0xDEADBEEF 0 0 0 0x1234567890 0

          where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID

          Verify that the OTA-Subscriber receives a StateTransition event notification for the state change to DelayedOnUserConsent.
      disabled: true

    - label:
          "Force an error during the download of the OTA image to the DUT. Wait
          for the Idle timeout which should be no less than 5 minutes."
      verification: |
          ./chip-tool interactive start

          Subscribe to StateTransition and DownloadError events using command

          otasoftwareupdaterequestor subscribe-event-by-id 0,2 30 60 0x1234567890 0

          Trigger OTA query using command

          otasoftwareupdaterequestor announce-ota-provider 0xDEADBEEF 0 0 0 0x1234567890 0

          where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID

          Verify that the chip-tool receives a DownloadError event notification on BDX Idle timeout which should be no less than 5 minutes.
          Verify that the chip-tool receives a StateTransition event notification for the state change to Idle.

          [1651520178426] [98732:38086919] CHIP: [TOO]   DownloadError: {
          [1651520178426] [98732:38086919] CHIP: [TOO]     SoftwareVersion: 2
          [1651520178426] [98732:38086919] CHIP: [TOO]     BytesDownloaded: 2995
          [1651520178426] [98732:38086919] CHIP: [TOO]     ProgressPercent: 65
          [1651520178426] [98732:38086919] CHIP: [TOO]     PlatformCode: null
          [1651520178426] [98732:38086919] CHIP: [TOO]    }

          [1654558704063] [57765:69159905] CHIP: [TOO]   StateTransition: {
          [1654558704064] [57765:69159905] CHIP: [TOO]     PreviousState: 4
          [1654558704064] [57765:69159905] CHIP: [TOO]     NewState: 1
          [1654558704064] [57765:69159905] CHIP: [TOO]     Reason: 3
          [1654558704064] [57765:69159905] CHIP: [TOO]     TargetSoftwareVersion: null
          [1654558704064] [57765:69159905] CHIP: [TOO]    }
      disabled: true

    - label:
          "After the OTA image is transferred, DUT sends ApplyUpdateRequest to
          the OTA-P. OTA-P/TH sends the ApplyUpdateResponse Command to the DUT.
          Action field is set to AwaitNextAction."
      verification: |
          ./chip-tool interactive start

          Subscribe to StateTransition event using command

          otasoftwareupdaterequestor subscribe-event state-transition 5 10 0x1234567890 0

          Trigger OTA query using command

          otasoftwareupdaterequestor announce-ota-provider 0xDEADBEEF 0 0 0 0x1234567890 0

          where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID

          [1651283503471] [29332:35530821] CHIP: [TOO]   StateTransition: {
          [1651283503471] [29332:35530821] CHIP: [TOO]     PreviousState: 1
          [1651283503471] [29332:35530821] CHIP: [TOO]     NewState: 2
          [1651283503471] [29332:35530821] CHIP: [TOO]     Reason: 1
          [1651283503471] [29332:35530821] CHIP: [TOO]     TargetSoftwareVersion: null
          [1651283503471] [29332:35530821] CHIP: [TOO]    }

          [1651283503471] [29332:35530821] CHIP: [TOO]   StateTransition: {
          [1651283503471] [29332:35530821] CHIP: [TOO]     PreviousState: 2
          [1651283503471] [29332:35530821] CHIP: [TOO]     NewState: 4
          [1651283503471] [29332:35530821] CHIP: [TOO]     Reason: 1
          [1651283503471] [29332:35530821] CHIP: [TOO]     TargetSoftwareVersion: 2
          [1651283503471] [29332:35530821] CHIP: [TOO]    }

          [1651283513475] [29332:35531053] CHIP: [TOO]   StateTransition: {
          [1651283513475] [29332:35531053] CHIP: [TOO]     PreviousState: 4
          [1651283513475] [29332:35531053] CHIP: [TOO]     NewState: 5
          [1651283513475] [29332:35531053] CHIP: [TOO]     Reason: 1
          [1651283513475] [29332:35531053] CHIP: [TOO]     TargetSoftwareVersion: 2
          [1651283513475] [29332:35531053] CHIP: [TOO]    }

          [1651283513475] [29332:35531053] CHIP: [TOO]   StateTransition: {
          [1651283513475] [29332:35531053] CHIP: [TOO]     PreviousState: 5
          [1651283513475] [29332:35531053] CHIP: [TOO]     NewState: 6
          [1651283513475] [29332:35531053] CHIP: [TOO]     Reason: 4
          [1651283513475] [29332:35531053] CHIP: [TOO]     TargetSoftwareVersion: null
          [1651283513475] [29332:35531053] CHIP: [TOO]    }
      disabled: true

    - label:
          "DUT successfully finishes applying a software update and the new
          software image version is being executed on the DUT. OTA-Subscriber
          sends a read request to read the VersionApplied event from the DUT."
      verification: |
          ./chip-tool otasoftwareupdaterequestor announce-ota-provider 0xDEADBEEF 0 0 0 0x1234567890 0

          where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID

          Read VersionApplied event when a new version starts executing after being applied due to a software update.
          ./chip-tool otasoftwareupdaterequestor read-event version-applied 0x1234567890 0

          Verify that the chip-tool receives below VersionApplied event notification

          [1645818271254] [21222:21170014] CHIP: [TOO]   VersionApplied: {
          [1645818271254] [21222:21170014] CHIP: [TOO]     SoftwareVersion: 2
          [1645818271254] [21222:21170014] CHIP: [TOO]     ProductID: 32769
          [1645818271254] [21222:21170014] CHIP: [TOO]    }
      disabled: true
