blob: f5a0dcdf99d27befeb154a3bcdf356d5db8421fa [file] [log] [blame]
# Copyright (c) 2022 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.
name: Test OTA Software Update Successful Transfer
config:
endpoint: 0
requestorNodeId:
type: node_id
defaultValue: 0x12344321
providerNodeId:
type: node_id
defaultValue: 0xC0FFEE
providerPayload:
type: char_string
defaultValue: "MT:-24J0IX4122-.548G00" # This value needs to be generated
providerDiscriminator:
type: int16u
defaultValue: 50
providerPort:
type: int16u
defaultValue: 5560
providerKvs:
type: char_string
defaultValue: "/tmp/chip_kvs_provider"
otaImageFilePath:
type: char_string
defaultValue: "/tmp/otaImage"
rawImageFilePath:
type: char_string
defaultValue: "/tmp/rawImage"
rawImageContent:
type: char_string
defaultValue: "Have a hootenanny!"
downloadImageFilePath:
type: char_string
defaultValue: "/tmp/downloadedImage"
tests:
- label: "Create OTA image"
cluster: "SystemCommands"
command: "CreateOtaImage"
arguments:
values:
- name: "otaImageFilePath"
value: otaImageFilePath
- name: "rawImageFilePath"
value: rawImageFilePath
- name: "rawImageContent"
value: rawImageContent
- label: "Start the provider with an image"
cluster: "SystemCommands"
command: "Start"
arguments:
values:
- name: "registerKey"
value: "chip-ota-provider-app"
- name: "discriminator"
value: providerDiscriminator
- name: "port"
value: providerPort
- name: "kvs"
value: providerKvs
- name: "filepath"
value: otaImageFilePath
- label: "Commission the provider from alpha"
identity: "alpha"
cluster: "CommissionerCommands"
command: "PairWithCode"
arguments:
values:
- name: "nodeId"
value: providerNodeId
- name: "payload"
value: providerPayload
- label: "Wait for the commissioned provider to be retrieved for alpha"
identity: "alpha"
cluster: "DelayCommands"
command: "WaitForCommissionee"
arguments:
values:
- name: "nodeId"
value: providerNodeId
- label: "Install ACL for QueryImage"
cluster: "Access Control"
command: "writeAttribute"
attribute: "ACL"
arguments:
value: [
# Grant administer privilege to the default controller node ID 112233
{
FabricIndex: 1,
Privilege: 5,
AuthMode: 2,
Subjects: [112233],
Targets: null,
},
# Grant operate privileges to all nodes for the OTA Provider cluster on every endpoint
{
FabricIndex: 1,
Privilege: 3,
AuthMode: 2,
Subjects: null,
Targets:
[{ Cluster: 41, Endpoint: null, DeviceType: null }],
},
]
- label: "Stop the requestor"
cluster: "SystemCommands"
command: "Stop"
- label: "Start the requestor with an OTA download path"
cluster: "SystemCommands"
command: "Start"
arguments:
values:
- name: "otaDownloadPath"
value: downloadImageFilePath
- label: "Wait for the commissioned requestor to be retrieved for alpha"
identity: "alpha"
cluster: "DelayCommands"
command: "WaitForCommissionee"
arguments:
values:
- name: "nodeId"
value: requestorNodeId
- label: "Send an announce OTA provider command to the requestor"
cluster: "OTA Software Update Requestor"
command: "AnnounceOTAProvider"
arguments:
values:
- name: "ProviderNodeID"
value: providerNodeId
- name: "VendorID"
value: 0
- name: "AnnouncementReason"
value: 0
- name: "Endpoint"
value: endpoint
- label: "Wait for transfer complete message"
cluster: "DelayCommands"
command: "WaitForMessage"
arguments:
values:
- name: "registerKey"
value: "default"
- name: "message"
value: "OTA image downloaded"
- label: "Compare original file to downloaded file"
cluster: "SystemCommands"
command: "CompareFiles"
arguments:
values:
- name: "file1"
value: rawImageFilePath
- name: "file2"
value: downloadImageFilePath