blob: c7f50658d1a36630b339fdaa5c8a7af640dda893 [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: General Commissioning cluster basic tests
config:
nodeId: 0x12344321
cluster: "General Commissioning"
endpoint: 0
discriminator:
type: int16u
defaultValue: 3840
payload:
type: char_string
defaultValue: "MT:-24J0AFN00KA0648G00" # This value needs to be generated automatically
tests:
- label: "Wait for the commissioned device to be retrieved"
cluster: "DelayCommands"
command: "WaitForCommissionee"
arguments:
values:
- name: "nodeId"
value: nodeId
- label: "Write Breadcrumb (1/2)"
command: "writeAttribute"
attribute: "Breadcrumb"
arguments:
value: 137438953472
- label: "Read back Breadcrumb (1/2)"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 137438953472
- label: "Write Breadcrumb (2/2)"
command: "writeAttribute"
attribute: "Breadcrumb"
arguments:
value: 81
- label: "Read back Breadcrumb (2/2)"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 81
- label: "Reboot to reset Breadcrumb"
cluster: "SystemCommands"
command: "Reboot"
- label: "Connect to the device again"
cluster: "DelayCommands"
command: "WaitForCommissionee"
arguments:
values:
- name: "nodeId"
value: nodeId
- label: "Read back Breadcrumb after reboot and ensure it was not persisted"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 0
- label: "Set Breadcrumb to nonzero value"
command: "writeAttribute"
attribute: "Breadcrumb"
arguments:
value: 1
- label: "Check Breadcrumb set worked"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 1
- label: "Send CommissioningComplete without armed fail-safe"
command: "CommissioningComplete"
response:
values:
- name: ErrorCode
value: 3 # NoFailSafe
- label: "Check Breadcrumb was not touched by invalid CommissioningComplete"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 1
- label: "Open Commissioning Window from alpha"
cluster: "Administrator Commissioning"
command: "OpenBasicCommissioningWindow"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "CommissioningTimeout"
value: 180
# Arming a fail-safe over CASE while a commissioning window is open should not work.
- label: "Try to arm fail-safe"
command: "ArmFailSafe"
arguments:
values:
- name: ExpiryLengthSeconds
value: 10
- name: Breadcrumb
value: 5000
response:
values:
- name: ErrorCode
value: 4 # BusyWithOtherAdmin
- label:
"Check Breadcrumb was not touched by ArmFailSafe with commissioning
window open"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 1
- label: "Reset Breadcrumb to 0 so we can commission"
command: "writeAttribute"
attribute: "Breadcrumb"
arguments:
value: 0
- label: "Commission from beta"
identity: "beta"
cluster: "CommissionerCommands"
command: "PairWithCode"
arguments:
values:
- name: "nodeId"
value: 0x12345
- name: "payload"
value: payload
- label: "Wait for the commissioned device to be retrieved for beta"
identity: "beta"
cluster: "DelayCommands"
command: "WaitForCommissionee"
arguments:
values:
- name: "nodeId"
value: 0x12345
- label: "Arm fail-safe"
command: "ArmFailSafe"
arguments:
values:
- name: ExpiryLengthSeconds
value: 500
- name: Breadcrumb
value: 2
response:
values:
- name: ErrorCode
value: 0 # OK
- label: "Check Breadcrumb was properly set by ArmFailSafe"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 2
- label: "Try to arm fail-safe from wrong fabric"
command: "ArmFailSafe"
identity: "beta"
arguments:
values:
- name: ExpiryLengthSeconds
value: 10
- name: Breadcrumb
value: 5000
response:
values:
- name: ErrorCode
value: 4 # BusyWithOtherAdmin
- label:
"Check Breadcrumb was not touched by ArmFailSafe with existing
fail-safe armed"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 2
- label: "Send CommissioningComplete from wrong fabric"
command: "CommissioningComplete"
identity: "beta"
response:
values:
- name: ErrorCode
value: 2 # InvalidAuthentication
- label:
"Check Breadcrumb was not touched by CommissioningComplete from wrong
fabric"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 2
- label: "Close out the fail-safe gracefully"
command: "CommissioningComplete"
response:
values:
- name: ErrorCode
value: 0 # Ok
- label: "Check Breadcrumb was reset to 0 by CommissioningComplete"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 0
- label: "Arm fail-safe again"
command: "ArmFailSafe"
arguments:
values:
- name: ExpiryLengthSeconds
value: 500
- name: Breadcrumb
value: 3
response:
values:
- name: ErrorCode
value: 0 # OK
- label: "Check Breadcrumb was set by arming fail-safe again"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 3
- label: "Force-expire the fail-safe"
command: "ArmFailSafe"
arguments:
values:
- name: ExpiryLengthSeconds
value: 0
- name: Breadcrumb
value: 4
response:
values:
- name: ErrorCode
value: 0 # OK
- label: "Check Breadcrumb was reset by expiring the fail-safe"
command: "readAttribute"
attribute: "Breadcrumb"
response:
value: 0
- label: "Validate presence of SupportsConcurrentConnection"
command: "readAttribute"
attribute: "SupportsConcurrentConnection"
response:
constraints:
type: boolean
- label: "Read original regulatory location"
command: "readAttribute"
attribute: "RegulatoryConfig"
response:
saveAs: originalRegulatoryConfig
- label: "Read original location"
command: "readAttribute"
cluster: "Basic Information"
attribute: "Location"
response:
value: "XX"
saveAs: originalLocation
- label: "Try to SetRegulatoryConfig with 0-length country code"
command: "SetRegulatoryConfig"
arguments:
values:
- name: "NewRegulatoryConfig"
value: 0
- name: "CountryCode"
value: ""
- name: "Breadcrumb"
value: 0
response:
error: CONSTRAINT_ERROR
- label: "Read back location"
command: "readAttribute"
cluster: "Basic Information"
attribute: "Location"
response:
value: originalLocation
- label: "Try to SetRegulatoryConfig with length-1 country code"
command: "SetRegulatoryConfig"
arguments:
values:
- name: "NewRegulatoryConfig"
value: 0
- name: "CountryCode"
value: "U"
- name: "Breadcrumb"
value: 0
response:
error: CONSTRAINT_ERROR
- label: "Read back location second time"
command: "readAttribute"
cluster: "Basic Information"
attribute: "Location"
response:
value: originalLocation
- label: "Try to SetRegulatoryConfig with length-2 country code"
command: "SetRegulatoryConfig"
arguments:
values:
- name: "NewRegulatoryConfig"
value: 0
- name: "CountryCode"
value: "US"
- name: "Breadcrumb"
value: 0
response:
values:
- name: "ErrorCode"
value: 0
- name: "DebugText"
value: ""
- label: "Read back location third time"
command: "readAttribute"
cluster: "Basic Information"
attribute: "Location"
response:
value: "US"
- label: "Restore initial values"
command: "SetRegulatoryConfig"
arguments:
values:
- name: "NewRegulatoryConfig"
value: originalRegulatoryConfig
- name: "CountryCode"
value: originalLocation
- name: "Breadcrumb"
value: 0