blob: 0cb6a033cc50ae60a12de565f72b5bdf7162a6ff [file] [log] [blame]
# 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.
name: Test Discovery
config:
nodeId: 0x12344321
endpoint: 0
# These defaults correspond to the behavior of all-clusters-app, and
# different values should be passed on the command line when testing
# against any other server.
discriminator:
type: int16u
defaultValue: 3840
shortDiscriminator:
type: int16u
defaultValue: 15
vendorId:
type: int16u
defaultValue: 65521
productId:
type: int16u
defaultValue: 32769
deviceType:
type: int16u
defaultValue: 0x0101
tests:
- label: "Stop target device"
cluster: "SystemCommands"
command: "Stop"
- label:
"Start target device with the provided discriminator for basic
commissioning advertisement"
cluster: "SystemCommands"
command: "Start"
arguments:
values:
- name: "discriminator"
value: discriminator
- label: "Wait for the commissioned device to be retrieved"
cluster: "DelayCommands"
command: "WaitForCommissionee"
arguments:
values:
- name: "nodeId"
value: nodeId
- label: "Open Commissioning Window with too-short timeout"
cluster: "Administrator Commissioning"
command: "OpenBasicCommissioningWindow"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "CommissioningTimeout"
value: 120
response:
error: INVALID_COMMAND
- label: "Open Commissioning Window with too-long timeout"
cluster: "Administrator Commissioning"
command: "OpenBasicCommissioningWindow"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "CommissioningTimeout"
value: 1000
response:
error: INVALID_COMMAND
- label: "Open Commissioning Window"
cluster: "Administrator Commissioning"
command: "OpenBasicCommissioningWindow"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "CommissioningTimeout"
value: 180
- label: "Check Instance Name"
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "instanceName"
saveAs: deviceInstanceNameBeforeReboot
constraints:
minLength: 16
maxLength: 16
isUpperCase: true
isHexString: true
# TODO:
# Find a way to validate the service type and the service domain
- label: "Check Hostname"
PICS: "(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR"
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "hostName"
constraints:
minLength: 12
maxLength: 16
isUpperCase: true
isHexString: true
- label: "Check Hostname"
PICS: "(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR"
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "hostName"
constraints:
minLength: 16
maxLength: 16
isUpperCase: true
isHexString: true
# Commissioning Subtypes
- label: "Check Long Discriminator _L"
cluster: "DiscoveryCommands"
command: "FindCommissionableByLongDiscriminator"
arguments:
values:
- name: "value"
value: discriminator
- label: "Check Short Discriminator (_S)"
cluster: "DiscoveryCommands"
command: "FindCommissionableByShortDiscriminator"
arguments:
values:
- name: "value"
value: shortDiscriminator
- label: "Check Commissioning Mode (_CM)"
cluster: "DiscoveryCommands"
command: "FindCommissionableByCommissioningMode"
- label: "Check Vendor ID (_V)"
PICS: MCORE.SC.VENDOR_SUBTYPE
cluster: "DiscoveryCommands"
command: "FindCommissionableByVendorId"
arguments:
values:
- name: "value"
value: vendorId
- label: "Check Device Type ID (_T)"
PICS: MCORE.SC.DEVTYPE_SUBTYPE
cluster: "DiscoveryCommands"
command: "FindCommissionableByDeviceType"
arguments:
values:
- name: "value"
value: deviceType
# TXT Records
- label: "TXT key for discriminator (D)"
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "longDiscriminator"
value: discriminator
constraints:
minValue: 0
maxValue: 4096
- label: "TXT key for Vendor ID and Product ID (VP)"
PICS: MCORE.SC.VP_KEY
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "vendorId"
value: vendorId
# Maybe it should be a PICS code to differentiate between manufacturer that wants to broadcast the
# product id ?
- label: "TXT key for Vendor ID and Product ID (VP)"
PICS: MCORE.SC.VP_KEY
disabled: true # [TestDiscovery] Enable back TXT key for Vendor ID and Product ID (VP) #25017
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "productId"
value: productId
- label: "Optional TXT key for MRP Session Idle Interval (SII)"
PICS: MCORE.SC.SII_COMM_DISCOVERY_KEY
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "mrpRetryIntervalIdle"
constraints:
minValue: 0
maxValue: 3600000
- label: "Optional TXT key for MRP Session Active Interval (SAI)"
PICS: MCORE.SC.SAI_COMM_DISCOVERY_KEY
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "mrpRetryIntervalActive"
constraints:
minValue: 0
maxValue: 3600000
- label: "TXT key for commissioning mode (CM)"
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "commissioningMode"
value: 1
- label: "Optional TXT key for device type (DT)"
PICS: MCORE.SC.DT_KEY
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "deviceType"
value: deviceType
- label: "Optional TXT key for device name (DN)"
PICS: MCORE.SC.DN_KEY
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "deviceName"
constraints:
maxLength: 32
- label: "Optional TXT key for rotating device identifier (RI)"
PICS: MCORE.SC.RI_KEY
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "rotatingIdLen"
constraints:
maxValue: 100
- label: "Optional TXT key for pairing hint (PH)"
PICS: MCORE.SC.PH_KEY
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "pairingHint"
constraints:
notValue: 0
- label: "Optional TXT key for pairing instructions (PI)"
PICS: MCORE.SC.PI_KEY
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "pairingInstruction"
constraints:
maxLength: 128
- label: "Check IPs"
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "numIPs"
constraints:
minValue: 1
- label: "Stop target device"
cluster: "SystemCommands"
command: "Stop"
- label:
"Start target device with the provided discriminator for basic
commissioning advertisement"
cluster: "SystemCommands"
command: "Start"
arguments:
values:
- name: "discriminator"
value: discriminator
- label: "Wait for the commissioned device to be retrieved"
cluster: "DelayCommands"
command: "WaitForCommissionee"
arguments:
values:
- name: "nodeId"
value: nodeId
- label: "Open Commissioning Window"
cluster: "Administrator Commissioning"
command: "OpenBasicCommissioningWindow"
timedInteractionTimeoutMs: 10000
arguments:
values:
- name: "CommissioningTimeout"
value: 180
- label: "Check Instance Name"
cluster: "DiscoveryCommands"
command: "FindCommissionable"
response:
values:
- name: "instanceName"
constraints:
minLength: 16
maxLength: 16
isUpperCase: true
isHexString: true
notValue: deviceInstanceNameBeforeReboot