Skip to content

Commit

Permalink
Adding test scripts (YAMLs) for Laundry Dryer Mode (#31250)
Browse files Browse the repository at this point in the history
* Dryer test scripts are added

* YAML format checked

* Restyled by whitespace

* Restyled by prettier-yaml

* copyright text added, file names changed

* Restyled by prettier-yaml

* Delete src/app/tests/suites/certification/TC-DRYERCTRL-1.1.yml

* Delete src/app/tests/suites/certification/TC-DRYERCTRL-2.1.yml

* added the script names in ciTests.json

* Restyled by whitespace

* Restyled by prettier-json

* File extension name changed from yml to yaml

* Delete src/app/tests/suites/certification/Test_TC_DRYERCTRL_1_1.yml

* Delete src/app/tests/suites/certification/Test_TC_DRYERCTRL_2_1.yml

* modified ci-pics-value file

* updated ci-pics-values file

* Adding PICS.YAML

* Restyled by prettier-yaml

* updated PICS.yaml and ci-pics-values

* Restyled by whitespace

* Restyled by prettier-yaml

* updated files

* reran the zap tool

* updated Test_TC_DRYERCTRL_2_1.yaml

* updated the labels in the testscripts

* Restyled by prettier-yaml

* Update src/app/tests/suites/certification/Test_TC_DRYERCTRL_2_1.yaml

Co-authored-by: C Freeman <cecille@google.com>

* Update src/app/tests/suites/certification/Test_TC_DRYERCTRL_1_1.yaml

Co-authored-by: C Freeman <cecille@google.com>

* Updated PICS.yaml and ci-pics-values

* Restyled by whitespace

* Restyled by prettier-yaml

* updated Test_TC_DRYERCTRL_2_1.yaml

* Regen Zap

* updated Dryerctrl_1_1

* Zap Regen

* updated test script

* Zap Regen

* updated script and ran zap

* updated init.py

* Restyled by isort

* updated 2_1.yaml based on latest TP and ran zap regenall

* Restyled by isort

---------

Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: Erik Hove <eahove@gmail.com>
Co-authored-by: C Freeman <cecille@google.com>
Co-authored-by: OmAmbalkar <36728913+OmAmbalkar@users.noreply.github.com>
  • Loading branch information
5 people authored Jan 12, 2024
1 parent eb7a27c commit 1cb1543
Show file tree
Hide file tree
Showing 7 changed files with 954 additions and 8 deletions.
38 changes: 38 additions & 0 deletions src/app/tests/suites/certification/PICS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8883,6 +8883,44 @@ PICS:
"Does the device implement sending the ChangeToModeResponse command?"
id: LWM.S.C01.Tx

# Laundry DRYER Mode Cluster

- label: "Does the device implement the Dryer cluster as a server?"
id: DRYERCTRL.S

#- label: "Does the DUT support testing the failed ChangeToMode command?"
# id: DRYERCTRL.S.M.CAN_TEST_MODE_FAILURE

#- label:
# "Id of mode the device will fail to transition to, given its current
# state"
# id: PIXIT.DRYERCTRL.S.MODE_CHANGE_FAIL

#- label:
# "Id of mode the device will successfully transition to, given its
# current state"
# id: PIXIT.DRYERCTRL.S.MODE_CHANGE_OK

#
# server / features
#
- label:
"Does the device support depending on an On/Off cluster implemented on
the same endpoint?"
id: DRYERCTRL.S.F00

#
# server / attributes
#
- label: "Does the device implement the SupportedModes attribute?"
id: DRYERCTRL.S.A0000

- label: "Does the device implement the CurrentMode attribute?"
id: DRYERCTRL.S.A0001

- label: "Can the device be controlled manually?"
id: DRYERCTRL.S.M.ManuallyControlled

# RVC Clean Mode Cluster

- label: "Does the device implement the RVCCLEANM cluster as a server?"
Expand Down
91 changes: 91 additions & 0 deletions src/app/tests/suites/certification/Test_TC_DRYERCTRL_1_1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Copyright (c) 2023 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: 3.1.1. [TC-DRYERCTRL-1.1] Global attributes with server as DUT

PICS:
- DRYERCTRL.S

config:
nodeId: 0x12344321
cluster: "Laundry Dryer Controls"
endpoint: 1

tests:
- label: "Step 1: Wait for the commissioned device to be retrieved"
cluster: "DelayCommands"
command: "WaitForCommissionee"
arguments:
values:
- name: "nodeId"
value: nodeId

- label: "Step2: TH reads from the DUT the ClusterRevision attribute."
command: "readAttribute"
attribute: "ClusterRevision"
response:
value: 1
constraints:
type: int16u

- label: "Step 3: TH reads from the DUT the FeatureMap attribute."
command: "readAttribute"
attribute: "FeatureMap"
response:
value: 0
constraints:
type: bitmap32

- label: "Step 4: TH reads from the DUT the AttributeList attribute."
PICS: PICS_EVENT_LIST_ENABLED
command: "readAttribute"
attribute: "AttributeList"
response:
constraints:
type: list
contains: [0, 1, 65528, 65529, 65530, 65531, 65532, 65533]

- label: "Step 4: TH reads from the DUT the AttributeList attribute."
PICS: "!PICS_EVENT_LIST_ENABLED"
command: "readAttribute"
attribute: "AttributeList"
response:
constraints:
type: list
contains: [0, 1, 65528, 65529, 65531, 65532, 65533]

- label: "Step 5: TH reads from the DUT the EventList attribute."
PICS: PICS_EVENT_LIST_ENABLED
command: "readAttribute"
attribute: "EventList"
response:
value: []
constraints:
type: list

- label: "Step 6: TH reads from the DUT the AcceptedCommandList attribute."
command: "readAttribute"
attribute: "AcceptedCommandList"
response:
value: []
constraints:
type: list

- label: "Step 7: TH reads from the DUT the GeneratedCommandList attribute."
command: "readAttribute"
attribute: "GeneratedCommandList"
response:
value: []
constraints:
type: list
126 changes: 126 additions & 0 deletions src/app/tests/suites/certification/Test_TC_DRYERCTRL_2_1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# Copyright (c) 2023 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: 3.2.1. [TC-DRYERCTRL-2.1] Optional Dryness attributes with server as DUT

PICS:
- DRYERCTRL.S

config:
nodeId: 0x12344321
cluster: "Laundry Dryer Controls"
endpoint: 1

unsupportedSelectedDrynessLevel:
type: int8u
defaultValue: 4

SupportedDrynessLevel:
type: int8u
defaultValue: 1

tests:
- label: "Step 1: Wait for the commissioned device to be retrieved"
cluster: "DelayCommands"
command: "WaitForCommissionee"
arguments:
values:
- name: "nodeId"
value: nodeId

- label:
"Step 2: TH reads from the DUT the mandatory attribute:
SupportedDrynessLevels"
PICS: DRYERCTRL.S.A0000
command: "readAttribute"
attribute: "SupportedDrynessLevels"
response:
constraints:
type: list
maxLength: 16

- label:
"Step 3: TH reads from the DUT the mandatory attribute:
SelectedDrynessLevel"
PICS: DRYERCTRL.S.A0001
command: "readAttribute"
attribute: "SelectedDrynessLevel"
response:
constraints:
type: enum8
minValue: 0
maxValue: 15

- label:
"Step 4:TH writes a supported SelectedDrynessLevel attribute that is
within the list of SupportedDrynessLevels"
PICS: DRYERCTRL.S.A0001
command: "writeAttribute"
attribute: "SelectedDrynessLevel"
arguments:
value: SupportedDrynessLevel

- label: "Wait 2 seconds"
cluster: "DelayCommands"
command: "WaitForMs"
arguments:
values:
- name: "ms"
value: 2000

- label:
"Step 5: after a few seconds, TH reads from the DUT the
SelectedDrynessLevel attribute"
PICS: DRYERCTRL.S.A0001
command: "readAttribute"
attribute: "SelectedDrynessLevel"
response:
value: SupportedDrynessLevel
constraints:
type: enum8

- label:
"Step 6: TH writes an unsupported SelectedDrynessLevel attribute that
is not in list of SupportedDrynessLevels to DUT"
PICS: DRYERCTRL.S.A0001
command: "writeAttribute"
attribute: "SelectedDrynessLevel"
arguments:
value: unsupportedSelectedDrynessLevel
response:
error: CONSTRAINT_ERROR

- label: "Step 6: Operate device to set the condition to read only"
verification: |
Manual operation required
cluster: "LogCommands"
command: "UserPrompt"
PICS: PICS_SKIP_SAMPLE_APP && DRYERCTRL.S.M.ManuallyControlled
arguments:
values:
- name: "message"
value: "Please enter 'y' for success"
- name: "expectedValue"
value: "y"

- label:
"Step 7: TH writes a supported SelectedDrynessLevel attribute to DUT
while DUT is not in a valid state."
PICS: DRYERCTRL.S.M.ManuallyControlled && DRYERCTRL.S.A0001
command: "writeAttribute"
attribute: "SelectedDrynessLevel"
arguments:
value: SupportedDrynessLevel
response:
error: INVALID_IN_STATE
16 changes: 16 additions & 0 deletions src/app/tests/suites/certification/ci-pics-values
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,22 @@ PIXIT.LWM.MODE_CHANGE_OK=1

LWM.S.M.CAN_TEST_MODE_FAILURE=1


# LAUNDRY DRYER MODE CLUSTER
DRYERCTRL.S=1
DRYERCTRL.S.A0000=1
DRYERCTRL.S.A0001=1

#Feature
DRYERCTRL.S.F00=1

#PIXIT
#PIXIT.DRYERCTRL.S.MODE_CHANGE_FAIL=1
#PIXIT.DRYERCTRL.S.MODE_CHANGE_OK=1

#DRYERCTRL.S.M.CAN_TEST_MODE_FAILURE=1
DRYERCTRL.S.M.ManuallyControlled=0

# Time Format Localization Cluster
LTIME.S=1
LTIME.S.A0000=1
Expand Down
4 changes: 4 additions & 0 deletions src/app/tests/suites/ciTests.json
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,9 @@
"Test_TC_WASHERCTRL_2_1",
"Test_TC_WASHERCTRL_2_2"
],

"LaundryDryerControl": ["Test_TC_DRYERCTRL_1_1", "Test_TC_DRYERCTRL_2_1"],

"MediaControl": [
"Test_TC_LOWPOWER_1_1",
"Test_TC_KEYPADINPUT_1_2",
Expand Down Expand Up @@ -398,6 +401,7 @@
"TimeFormatLocalization",
"LaundryWasherMode",
"LaundryWasherControl",
"LaundryDryerControl",
"MediaControl",
"ModeSelect",
"MultipleFabrics",
Expand Down
18 changes: 10 additions & 8 deletions src/controller/python/chip/clusters/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@
DoorLock, ElectricalMeasurement, EnergyEvse, EthernetNetworkDiagnostics, FanControl, FaultInjection,
FixedLabel, FlowMeasurement, FormaldehydeConcentrationMeasurement, GeneralCommissioning, GeneralDiagnostics,
GroupKeyManagement, Groups, HepaFilterMonitoring, IcdManagement, Identify, IlluminanceMeasurement,
KeypadInput, LaundryWasherControls, LaundryWasherMode, LevelControl, LocalizationConfiguration, LowPower,
MediaInput, MediaPlayback, MicrowaveOvenControl, MicrowaveOvenMode, ModeSelect, NetworkCommissioning,
NitrogenDioxideConcentrationMeasurement, OccupancySensing, OnOff, OnOffSwitchConfiguration,
OperationalCredentials, OperationalState, OtaSoftwareUpdateProvider, OtaSoftwareUpdateRequestor,
OvenCavityOperationalState, OvenMode, OzoneConcentrationMeasurement, Pm1ConcentrationMeasurement,
Pm10ConcentrationMeasurement, Pm25ConcentrationMeasurement, PowerSource, PowerSourceConfiguration,
PressureMeasurement, ProxyConfiguration, ProxyDiscovery, ProxyValid, PulseWidthModulation,
PumpConfigurationAndControl, RadonConcentrationMeasurement, RefrigeratorAlarm,
KeypadInput, LaundryDryerControls, LaundryWasherControls, LaundryWasherMode, LevelControl,
LocalizationConfiguration, LowPower, MediaInput, MediaPlayback, MicrowaveOvenControl, MicrowaveOvenMode,
ModeSelect, NetworkCommissioning, NitrogenDioxideConcentrationMeasurement, OccupancySensing, OnOff,
OnOffSwitchConfiguration, OperationalCredentials, OperationalState, OtaSoftwareUpdateProvider,
OtaSoftwareUpdateRequestor, OvenCavityOperationalState, OvenMode, OzoneConcentrationMeasurement,
Pm1ConcentrationMeasurement, Pm10ConcentrationMeasurement, Pm25ConcentrationMeasurement, PowerSource,
PowerSourceConfiguration, PressureMeasurement, ProxyConfiguration, ProxyDiscovery, ProxyValid,
PulseWidthModulation, PumpConfigurationAndControl, RadonConcentrationMeasurement, RefrigeratorAlarm,
RefrigeratorAndTemperatureControlledCabinetMode, RelativeHumidityMeasurement, RvcCleanMode,
RvcOperationalState, RvcRunMode, Scenes, SmokeCoAlarm, SoftwareDiagnostics, Switch, TargetNavigator,
TemperatureControl, TemperatureMeasurement, Thermostat, ThermostatUserInterfaceConfiguration,
Expand All @@ -54,6 +54,8 @@
DoorLock, ElectricalMeasurement, EnergyEvse, EthernetNetworkDiagnostics, FanControl, FaultInjection, FixedLabel, FlowMeasurement,
FormaldehydeConcentrationMeasurement, GeneralCommissioning, GeneralDiagnostics, GroupKeyManagement, Groups,
HepaFilterMonitoring, IcdManagement, Identify, IlluminanceMeasurement, KeypadInput,
LaundryWasherControls, LaundryDryerControls, LaundryWasherMode, LevelControl, LocalizationConfiguration, LowPower, MediaInput, MediaPlayback, ModeSelect,
NetworkCommissioning, NitrogenDioxideConcentrationMeasurement,
LaundryWasherControls, LaundryWasherMode, LevelControl, LocalizationConfiguration, LowPower, MediaInput, MediaPlayback, MicrowaveOvenControl,
MicrowaveOvenMode, ModeSelect, NetworkCommissioning, NitrogenDioxideConcentrationMeasurement,
OccupancySensing, OnOff, OnOffSwitchConfiguration, OperationalCredentials, OperationalState,
Expand Down
Loading

0 comments on commit 1cb1543

Please sign in to comment.