[Scenes] Test Update (#31614)
* Updated PICS and server yamls Test_TC_... to fit test plan
* Apply suggestions convert hex to dec base
Co-authored-by: Junior Martinez <67972863+jmartinez-silabs@users.noreply.github.com>
* Updated remaining transition times and added delay for Darwin CI test
* Added verification for steps 4b and 4c in TC_S_2_5
* Restyled by whitespace
* Restyled by prettier-yaml
* Removed Un-necessary PICS, added verification where it was missing in TC_S_2_5 and TC_S_2_6
---------
Co-authored-by: Junior Martinez <67972863+jmartinez-silabs@users.noreply.github.com>
Co-authored-by: Restyled.io <commits@restyled.io>
diff --git a/src/app/clusters/scenes-server/SceneTable.h b/src/app/clusters/scenes-server/SceneTable.h
index 8f0353b..1b63421 100644
--- a/src/app/clusters/scenes-server/SceneTable.h
+++ b/src/app/clusters/scenes-server/SceneTable.h
@@ -39,7 +39,7 @@
static constexpr size_t kIteratorsMax = CHIP_CONFIG_MAX_SCENES_CONCURRENT_ITERATORS;
static constexpr size_t kSceneNameMaxLength = CHIP_CONFIG_SCENES_CLUSTER_MAXIMUM_NAME_LENGTH;
-static constexpr size_t kScenesMaxTransitionTime = 6'000'000u;
+static constexpr size_t kScenesMaxTransitionTime = 60'000'000u;
/// @brief SceneHandlers are meant as interface between various clusters and the Scene table.
/// When a scene command involving extension field sets is received, the Scene Table will go through
diff --git a/src/app/clusters/scenes-server/scenes-server.cpp b/src/app/clusters/scenes-server/scenes-server.cpp
index cce4a7e..9403929 100644
--- a/src/app/clusters/scenes-server/scenes-server.cpp
+++ b/src/app/clusters/scenes-server/scenes-server.cpp
@@ -61,7 +61,15 @@
{
if (CHIP_NO_ERROR != err)
{
- resp.status = to_underlying(StatusIB(err).mStatus);
+ // TODO : Properly fix mapping between error types (issue https://github.com/project-chip/connectedhomeip/issues/26885)
+ if (CHIP_ERROR_NOT_FOUND == err)
+ {
+ resp.status = to_underlying(Protocols::InteractionModel::Status::NotFound);
+ }
+ else
+ {
+ resp.status = to_underlying(StatusIB(err).mStatus);
+ }
ctx.mCommandHandler.AddResponse(ctx.mRequestPath, resp);
}
return err;
diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml
index 09d55df..205955b 100644
--- a/src/app/tests/suites/certification/PICS.yaml
+++ b/src/app/tests/suites/certification/PICS.yaml
@@ -5781,7 +5781,7 @@
- label: "Write all supported optional attributes"
id: RH.C.AO-WRITE
- # Scenes Cluster Test Plan
+ # Scenes Management Cluster Test Plan
- label: "Does the device implement the Scenes cluster as a server?"
id: S.S
@@ -5870,11 +5870,6 @@
- label: "Does the device implement sending the CopyScene command?"
id: S.C.C40.Tx
- - label:
- "Does the device process the TransitionTime parameter of the
- RecallScene command?"
- id: PICS_SC_RECALL_SCENE_TRANSITION_TIME_MS
-
#
# client / manually
#
diff --git a/src/app/tests/suites/certification/Test_TC_S_1_1.yaml b/src/app/tests/suites/certification/Test_TC_S_1_1.yaml
index 9b5eb4d..3631442 100644
--- a/src/app/tests/suites/certification/Test_TC_S_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_1_1.yaml
@@ -110,7 +110,7 @@
contains: [0, 1, 2, 3, 4, 6]
- label:
- "Step 7b: Read optional command(CopySceneResponse) in
+ "Step 7b: TH reads Read optional command(CopySceneResponse) in
GeneratedCommandList (global attribute 65528)"
PICS: S.S.C40.Rsp
command: "readAttribute"
diff --git a/src/app/tests/suites/certification/Test_TC_S_2_2.yaml b/src/app/tests/suites/certification/Test_TC_S_2_2.yaml
index 627bbe0..d569b12 100644
--- a/src/app/tests/suites/certification/Test_TC_S_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_2_2.yaml
@@ -28,6 +28,9 @@
G2:
type: group_id
defaultValue: 0x0002
+ GI:
+ type: group_id
+ defaultValue: 0x0099
tests:
- label: "Wait for the commissioned device to be retrieved"
@@ -78,8 +81,9 @@
value: maxScenesMinusOne / 2
- label:
- "Step 0a: preparation step for using commands from Groups cluster: Add
- KeySet"
+ "Step 0a :TH sends KeySetWrite command in the GroupKeyManagement
+ cluster to DUT using a key that is pre-installed on the TH.
+ GroupKeySet fields are as follows:"
cluster: "Group Key Management"
endpoint: 0
command: "KeySetWrite"
@@ -99,8 +103,9 @@
}
- label:
- "Step 0b: Preparation step for using commands from Groups cluster:
- Write Group Keys"
+ "Step 0b: TH binds GroupIds 0x0001 and 0x0002 with GroupKeySetID
+ 0x01a1 in the GroupKeyMap attribute list on GroupKeyManagement cluster
+ by writing the GroupKeyMap attribute with two entries as follows:"
cluster: "Group Key Management"
endpoint: 0
command: "writeAttribute"
@@ -154,7 +159,24 @@
value: G1
- label:
- "Step 1c: TH sends a GetSceneMembership command to DUT with the
+ "Step 1c: TH sends a RemoveAllScenes command to DUT with the GroupID
+ field set to GI (Where GI is a group currently absent from the group
+ table)."
+ PICS: S.S.C03.Rsp
+ command: "RemoveAllScenes"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: GI
+ response:
+ values:
+ - name: "Status"
+ value: 0x85
+ - name: "GroupID"
+ value: GI
+
+ - label:
+ "Step 1d: TH sends a GetSceneMembership command to DUT with the
GroupID field set to G1."
PICS: S.S.C06.Rsp
command: "GetSceneMembership"
@@ -172,7 +194,28 @@
value: G1
- label:
- "STep 2a: TH configures AC1 on DUT for all implemented application
+ "Step 1e: TH sends a GetSceneMembership command to DUT with the
+ GroupID field set to GI (Where GI is a group currently absent from the
+ group table)."
+ PICS: S.S.C06.Rsp
+ command: "GetSceneMembership"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: GI
+ response:
+ values:
+ - name: "Status"
+ value: 0x85
+ - name: "Capacity"
+ constraints:
+ anyOf: [fabricCapacity, 0xfe, null]
+ value: null
+ - name: "GroupID"
+ value: GI
+
+ - label:
+ "Step 2a: TH configures AC1 on DUT for all implemented application
clusters supporting scenes."
PICS: PICS_SDK_CI_ONLY
cluster: "Level Control"
@@ -226,6 +269,27 @@
value: 0x01
- label:
+ "Step 2c: TH sends a StoreScene command to DUT with the GroupID field
+ set to GI (Where GI is a group currently absent from the group table)
+ and the SceneID field set to 0x01."
+ PICS: S.S.C04.Rsp
+ command: "StoreScene"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: GI
+ - name: "SceneID"
+ value: 0x01
+ response:
+ values:
+ - name: "Status"
+ value: 0x85
+ - name: "GroupID"
+ value: GI
+ - name: "SceneID"
+ value: 0x01
+
+ - label:
"Step 3a: TH configures AC2 on DUT for all implemented application
clusters supporting scenes."
cluster: "Level Control"
@@ -369,7 +433,7 @@
value: 0x01
- label:
- "Step 5: TH sends a ViewScene command to DUT with the GroupID field
+ "Step 5a: TH sends a ViewScene command to DUT with the GroupID field
set to G1 and the SceneID field set to 0x01."
PICS: S.S.C01.Rsp && PICS_SDK_CI_ONLY
command: "ViewScene"
@@ -417,7 +481,7 @@
]
- label:
- "Step 5: TH sends a ViewScene command to DUT with the GroupID field
+ "Step 5a: TH sends a ViewScene command to DUT with the GroupID field
set to G1 and the SceneID field set to 0x01."
PICS: S.S.C01.Rsp && PICS_SKIP_SAMPLE_APP
command: "ViewScene"
@@ -439,6 +503,47 @@
value: 0x0000
- label:
+ "Step 5b: TH sends a ViewScene command to DUT with the GroupID field
+ set to GI (Where GI is a group currently absent from the group table)
+ and the SceneID field set to 0x01."
+ PICS: S.S.C01.Rsp
+ command: "ViewScene"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: GI
+ - name: "SceneID"
+ value: 0x01
+ response:
+ values:
+ - name: "Status"
+ value: 0x85
+ - name: "GroupID"
+ value: GI
+ - name: "SceneID"
+ value: 0x01
+
+ - label:
+ "Step 5c: TH sends a ViewScene command to DUT with the GroupID field
+ set to G1 and the SceneID field set to 0xFE."
+ PICS: S.S.C01.Rsp
+ command: "ViewScene"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0xFE
+ response:
+ values:
+ - name: "Status"
+ value: 0x8b
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0xFE
+
+ - label:
"Step 6: TH sends a GetSceneMembership command to DUT with the GroupID
field set to G1."
PICS: S.S.C06.Rsp
@@ -489,17 +594,15 @@
value: 0x00
- name: "Capacity"
constraints:
- anyOf: [fabricCapacity, 0xfe, 0x89]
+ anyOf: [fabricCapacity, 0xfe, null]
- name: "GroupID"
value: G1
- label:
"Step 8a: TH sends a AddScene command to DUT with the GroupID field
set to G1, the SceneID field set to 0x01, the TransitionTime field set
- to 7 000 000 (7 000s) and no extension field sets. This should fail
- and return a status of 0x85 (INVALID_COMMAND) because we exceed the
- max TransitionTime"
- #TODO Add to chip-test-plan
+ to 60 000 000 (60 000s) and a set of extension fields appropriate to
+ AC1."
PICS: S.S.C00.Rsp && PICS_SDK_CI_ONLY
command: "AddScene"
arguments:
@@ -509,34 +612,7 @@
- name: "SceneID"
value: 0x01
- name: "TransitionTime"
- value: 7000000
- - name: "SceneName"
- value: "Scene1"
- - name: "ExtensionFieldSets"
- value: []
- response:
- values:
- - name: "Status"
- value: 0x85
- - name: "GroupID"
- value: G1
- - name: "SceneID"
- value: 0x01
-
- - label:
- "Step 8b: TH sends a AddScene command to DUT with the GroupID field
- set to G1, the SceneID field set to 0x01, the TransitionTime field set
- to 1000 (1s) and a set of extension fields appropriate to AC1."
- PICS: S.S.C00.Rsp && PICS_SDK_CI_ONLY
- command: "AddScene"
- arguments:
- values:
- - name: "GroupID"
- value: G1
- - name: "SceneID"
- value: 0x01
- - name: "TransitionTime"
- value: 1000
+ value: 60000000
- name: "SceneName"
value: "Scene1"
- name: "ExtensionFieldSets"
@@ -563,13 +639,12 @@
value: 0x01
- label:
- "Step 8b: TH sends a AddScene command to DUT with the GroupID field
+ "Step 8a: TH sends a AddScene command to DUT with the GroupID field
set to G1, the SceneID field set to 0x01, the TransitionTime field set
- to 1000 (1s) and a set of extension fields appropriate to AC1."
+ to 60 000 000 (60 000s) and a set of extension fields appropriate to
+ AC1."
verification: |
- Execute the following command in TH to generate the pre-condition to execute this test case:
-
- ./chip-tool scenes add-scene 0x0001 1 1 "Test Name" '[{"clusterId": value, "attributeValueList":[{"attributeId": value, "attributeValue": value}]}' nodeId endpointId
+ ./chip-tool scenes add-scene 0x0001 1 60000000 "Test Name" '[{"clusterId": value, "attributeValueList":[{"attributeId": value, "attributeValue": value}]}' nodeId endpointId
Note: The number of ExtensionFieldSets, the value of clusterId of each ExtensionFieldSet, the number of attributes in attributeValueList and their values varies for each application
@@ -625,6 +700,34 @@
value: "y"
- label:
+ "Step 8b: TH sends a AddScene command to DUT with the GroupID field
+ set to GI (Where GI is a group currently absent from the group table),
+ the SceneID field set to 0x01, the TransitionTime field set to 1000
+ (1s) and a set of extension fields appropriate to AC1."
+ PICS: S.S.C00.Rsp
+ command: "AddScene"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: GI
+ - name: "SceneID"
+ value: 0x01
+ - name: "TransitionTime"
+ value: 1000
+ - name: "SceneName"
+ value: "Scene1"
+ - name: "ExtensionFieldSets"
+ value: []
+ response:
+ values:
+ - name: "Status"
+ value: 0x85
+ - name: "GroupID"
+ value: GI
+ - name: "SceneID"
+ value: 0x01
+
+ - label:
"Step 8c: TH sends a GetSceneMembership command to DUT with the
GroupID field set to G1."
PICS: S.S.C06.Rsp
@@ -646,6 +749,62 @@
value: [0x01]
- label:
+ "Step 8d: TH sends a AddScene command to DUT with the GroupID field
+ set to G1, the SceneID field set to 0x01, the TransitionTime field set
+ to 70 000 000 (70 000s) and no extension field sets. This should fail
+ and return a status of 0x85 (INVALID_COMMAND)."
+ PICS: S.S.C00.Rsp && PICS_SDK_CI_ONLY
+ command: "AddScene"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x01
+ - name: "TransitionTime"
+ value: 70000000
+ - name: "SceneName"
+ value: "Scene1"
+ - name: "ExtensionFieldSets"
+ value: []
+ response:
+ values:
+ - name: "Status"
+ value: 0x85
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x01
+
+ - label:
+ "Step 8e: TH sends a AddScene command to DUT with the GroupID field
+ set to G1, the SceneID field set to 0x01, the TransitionTime field set
+ to 60 000 001 (60 000.001s) and no extension field sets. This should
+ fail and return a status of 0x85 (INVALID_COMMAND)."
+ PICS: S.S.C00.Rsp && PICS_SDK_CI_ONLY
+ command: "AddScene"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x01
+ - name: "TransitionTime"
+ value: 60000001
+ - name: "SceneName"
+ value: "Scene1"
+ - name: "ExtensionFieldSets"
+ value: []
+ response:
+ values:
+ - name: "Status"
+ value: 0x85
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x01
+
+ - label:
"Step 9a: TH sends a RemoveScene command to DUT with the GroupID field
set to G1 and the SceneID field set to 0x01."
PICS: S.S.C02.Rsp
@@ -666,7 +825,48 @@
value: 0x01
- label:
- "Step 9b: TH sends a GetSceneMembership command to DUT with the
+ "Step 9b: TH sends a RemoveScene command to DUT with the GroupID field
+ set to GI (Where GI is a group currently absent from the group table)
+ and the SceneID field set to 0x01."
+ PICS: S.S.C02.Rsp
+ command: "RemoveScene"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: GI
+ - name: "SceneID"
+ value: 0x01
+ response:
+ values:
+ - name: "Status"
+ value: 0x85
+ - name: "GroupID"
+ value: GI
+ - name: "SceneID"
+ value: 0x01
+
+ - label:
+ "Step 9c: TH sends a RemoveScene command to DUT with the GroupID field
+ set to G1 and the SceneID field set to 0x01."
+ PICS: S.S.C02.Rsp
+ command: "RemoveScene"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x01
+ response:
+ values:
+ - name: "Status"
+ value: 0x8b
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x01
+
+ - label:
+ "Step 9d: TH sends a GetSceneMembership command to DUT with the
GroupID field set to G1."
PICS: S.S.C06.Rsp
command: "GetSceneMembership"
diff --git a/src/app/tests/suites/certification/Test_TC_S_2_3.yaml b/src/app/tests/suites/certification/Test_TC_S_2_3.yaml
index 156bf45..60d94f6 100644
--- a/src/app/tests/suites/certification/Test_TC_S_2_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_2_3.yaml
@@ -25,6 +25,12 @@
G1:
type: group_id
defaultValue: 0x0101
+ G2:
+ type: group_id
+ defaultValue: 0x0102
+ GI:
+ type: group_id
+ defaultValue: 0x0099
tests:
- label: "Wait for the commissioned device to be retrieved"
@@ -79,10 +85,10 @@
cluster to DUT using a key that is pre-installed on the TH.
GroupKeySet fields are as follows: 1)GroupKeySetID: 0x01a1
2)GroupKeySecurityPolicy: TrustFirst (0) 3)EpochKey0:
- d0d1d2d3d4d5d6d7d8d9dadbdcdddedf 4)EpochStartTime0: 2220000
- 5)EpochKey1: d1d1d2d3d4d5d6d7d8d9dadbdcdddedf 6)EpochStartTime1:
- 2220001 7)EpochKey2: d2d1d2d3d4d5d6d7d8d9dadbdcdddedf
- 8)EpochStartTime2: 2220002"
+ a0a1a2a3a4a5a6a7a8a9aaabacadaeaf 4)EpochStartTime0: 1110000
+ 5)EpochKey1: a1a1a2a3a4a5a6a7a8a9aaabacadaeaf 6)EpochStartTime1:
+ 1110001 7)EpochKey2: a2a1a2a3a4a5a6a7a8a9aaabacadaeaf
+ 8)EpochStartTime2: 1110002"
cluster: "Group Key Management"
endpoint: 0
command: "KeySetWrite"
@@ -102,6 +108,33 @@
}
- label:
+ "Step 0b: TH sends KeySetWrite command in the GroupKeyManagement
+ cluster to DUT using a key that is pre-installed on the TH.
+ GroupKeySet fields are as follows: 1)GroupKeySetID: 0x01a2
+ 2)GroupKeySecurityPolicy: TrustFirst (0) 3)EpochKey0:
+ d0d1d2d3d4d5d6d7d8d9dadbdcdddedf 4)EpochStartTime0: 2220000
+ 5)EpochKey1: d1d1d2d3d4d5d6d7d8d9dadbdcdddedf 6)EpochStartTime1:
+ 2220001 7)EpochKey2: d2d1d2d3d4d5d6d7d8d9dadbdcdddedf
+ 8)EpochStartTime2: 2220002"
+ cluster: "Group Key Management"
+ endpoint: 0
+ command: "KeySetWrite"
+ arguments:
+ values:
+ - name: "GroupKeySet"
+ value:
+ {
+ GroupKeySetID: 0x01a2,
+ GroupKeySecurityPolicy: 0,
+ EpochKey0: "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf",
+ EpochStartTime0: 2220000,
+ EpochKey1: "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef",
+ EpochStartTime1: 2220001,
+ EpochKey2: "\xf2\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
+ EpochStartTime2: 2220002,
+ }
+
+ - label:
"Step 0b: TH binds GroupId G1 with GroupKeySetID 0x01a1 in the
GroupKeyMap attribute list on GroupKeyManagement cluster by writing
the GroupKeyMap attribute with one entry as follows: List item 1:
@@ -111,7 +144,11 @@
command: "writeAttribute"
attribute: "GroupKeyMap"
arguments:
- value: [{ FabricIndex: 1, GroupId: G1, GroupKeySetID: 0x01a1 }]
+ value:
+ [
+ { FabricIndex: 1, GroupId: G1, GroupKeySetID: 0x01a1 },
+ { FabricIndex: 1, GroupId: G2, GroupKeySetID: 0x01a2 },
+ ]
- label:
"Step 1a: TH sends a AddGroup command to DUT with the GroupID field
@@ -132,6 +169,25 @@
- name: "GroupID"
value: G1
+ - label:
+ "Step 1b: TH sends a AddGroup command to DUT with the GroupID field
+ set to G2."
+ PICS: G.S.C00.Rsp
+ cluster: "Groups"
+ command: "AddGroup"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G2
+ - name: "GroupName"
+ value: "Group #2"
+ response:
+ values:
+ - name: "Status"
+ value: 0x00
+ - name: "GroupID"
+ value: G2
+
- label: "Install ACLs"
cluster: "Access Control"
endpoint: 0
@@ -158,7 +214,7 @@
]
- label:
- "Step 1b: TH sends a RemoveAllScenes command to DUT with the GroupID
+ "Step 1c: TH sends a RemoveAllScenes command to DUT with the GroupID
field set to G1."
PICS: S.S.C03.Rsp
command: "RemoveAllScenes"
@@ -174,7 +230,23 @@
value: G1
- label:
- "Step 1c: TH sends a GetSceneMembership command to DUT with the
+ "Step 1d: TH sends a RemoveAllScenes command to DUT with the GroupID
+ field set to G2."
+ PICS: S.S.C03.Rsp
+ command: "RemoveAllScenes"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G2
+ response:
+ values:
+ - name: "Status"
+ value: 0x00
+ - name: "GroupID"
+ value: G2
+
+ - label:
+ "Step 1e: TH sends a GetSceneMembership command to DUT with the
GroupID field set to G1."
PICS: S.S.C06.Rsp
command: "GetSceneMembership"
@@ -196,7 +268,7 @@
- label:
"Step 2: TH sends a AddScene command to DUT with the GroupID field set
to G1, the SceneID field set to 0x01, the TransitionTime field set to
- 0x0001 (1s) and a set of extension fields appropriate to AC1."
+ 1000 (1s) and a set of extension fields appropriate to AC1."
PICS: S.S.C00.Rsp && PICS_SDK_CI_ONLY
command: "AddScene"
arguments:
@@ -206,7 +278,7 @@
- name: "SceneID"
value: 0x01
- name: "TransitionTime"
- value: 0x0001
+ value: 1000
- name: "SceneName"
value: "Scene1"
- name: "ExtensionFieldSets"
@@ -235,10 +307,8 @@
- label:
"Step 2: TH sends a AddScene command to DUT with the GroupID field set
to G1, the SceneID field set to 0x01, the TransitionTime field set to
- G1 and a set of extension fields appropriate to AC1."
+ 1000 (1s) and a set of extension fields appropriate to AC1."
verification: |
- Execute the following command in TH to generate the pre-condition to execute this test case:
-
./chip-tool scenes add-scene GroupID SceneID TransitionTime "SceneName" '[{"clusterId": value, "attributeValueList":[{"attributeId": value, "attributeValue": value}]}' nodeId endpointId
Note: The number of ExtensionFieldSets, the value of clusterId of each ExtensionFieldSet, the number of attributes in attributeValueList and their values varies for each application
@@ -314,7 +384,7 @@
- name: "SceneID"
value: 0x01
- name: "TransitionTime"
- value: 0x0001
+ value: 1000
- name: "ExtensionFieldSets"
value:
[
@@ -335,8 +405,6 @@
set to G1 and the SceneID field set to 0x01."
PICS: S.S.C01.Rsp && PICS_SKIP_SAMPLE_APP
verification: |
- Execute the following command in TH to generate the pre-condition to execute this test case:
-
./chip-tool scenes view-scene GroupId SceneId Node-Id EndpointId
Note: The number of ExtensionFieldSets, the value of clusterId of each ExtensionFieldSet, the number of attributes in attributeValueList and their values varies for each application
@@ -418,8 +486,7 @@
field set to G1 and the scene ID field set to 0x01."
PICS: S.S.C05.Rsp
command: "RecallScene"
- # This value should be changed to G1 instead of 0x101 when it is supported, Issue opened here https://github.com/project-chip/connectedhomeip/issues/29637
- groupId: 0x101
+ groupId: G1
arguments:
values:
- name: "GroupID"
@@ -459,7 +526,210 @@
value: "y"
- label:
- "Step 6a: TH sends a CopyScene command to DUT with the mode field set
+ "Step 6a: TH sends a AddScene command to group G1 with the GroupID
+ field set to G1, the SceneID field set to 0x01, the TransitionTime
+ field set to 1000 (1s) and a set of extension fields appropriate to
+ AC1."
+ PICS: S.S.C00.Rsp && PICS_SDK_CI_ONLY
+ command: "AddScene"
+ groupId: G1
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x03
+ - name: "TransitionTime"
+ value: 1000
+ - name: "SceneName"
+ value: "Scene1"
+ - name: "ExtensionFieldSets"
+ value:
+ [
+ {
+ ClusterID: 0x0006,
+ AttributeValueList:
+ [{ AttributeID: 0x0000, AttributeValue: 0x01 }],
+ },
+ {
+ ClusterID: 0x0008,
+ AttributeValueList:
+ [{ AttributeID: 0x0000, AttributeValue: 0x64 }],
+ },
+ ]
+
+ - label:
+ "Step 6a: TH sends a AddScene command to group G1 with the GroupID
+ field set to G1, the SceneID field set to 0x03, the TransitionTime
+ field set to G1 and a set of extension fields appropriate to AC1."
+ verification: |
+ ./chip-tool scenes add-scene GroupID SceneID TransitionTime "SceneName" '[{"clusterId": value, "attributeValueList":[{"attributeId": value, "attributeValue": value}]}' groupID endpointId
+
+ Note: The number of ExtensionFieldSets, the value of clusterId of each ExtensionFieldSet, the number of attributes in attributeValueList and their values varies for each application
+
+ Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform:
+ [1670970505.887060][5742:5744] CHIP:DMG: InvokeResponseMessage =
+ [1670970505.887118][5742:5744] CHIP:DMG: {
+ [1670970505.887172][5742:5744] CHIP:DMG: suppressResponse = false,
+ [1670970505.887231][5742:5744] CHIP:DMG: InvokeResponseIBs =
+ [1670970505.887307][5742:5744] CHIP:DMG: [
+ [1670970505.887366][5742:5744] CHIP:DMG: InvokeResponseIB =
+ [1670970505.887444][5742:5744] CHIP:DMG: {
+ [1670970505.887507][5742:5744] CHIP:DMG: CommandDataIB =
+ [1670970505.887576][5742:5744] CHIP:DMG: {
+ [1670970505.887713][5742:5744] CHIP:DMG: CommandPathIB =
+ [1670970505.887804][5742:5744] CHIP:DMG: {
+ [1670970505.887940][5742:5744] CHIP:DMG: EndpointId = 0x1,
+ [1670970505.888093][5742:5744] CHIP:DMG: ClusterId = 0x5,
+ [1670970505.888242][5742:5744] CHIP:DMG: CommandId = 0x0,
+ [1670970505.888385][5742:5744] CHIP:DMG: },
+ [1670970505.888692][5742:5744] CHIP:DMG:
+ [1670970505.888769][5742:5744] CHIP:DMG: CommandFields =
+ [1670970505.888852][5742:5744] CHIP:DMG: {
+ [1670970505.889030][5742:5744] CHIP:DMG: 0x0 = 0,
+ [1670970505.889183][5742:5744] CHIP:DMG: 0x1 = 1,
+ [1670970505.889406][5742:5744] CHIP:DMG: 0x2 = 1,
+ [1670970505.889515][5742:5744] CHIP:DMG: },
+ [1670970505.889603][5742:5744] CHIP:DMG: },
+ [1670970505.889684][5742:5744] CHIP:DMG:
+ [1670970505.889745][5742:5744] CHIP:DMG: },
+ [1670970505.889821][5742:5744] CHIP:DMG:
+ [1670970505.889878][5742:5744] CHIP:DMG: ],
+ [1670970505.889953][5742:5744] CHIP:DMG:
+ [1670970505.890009][5742:5744] CHIP:DMG: InteractionModelRevision = 1
+ [1670970505.890066][5742:5744] CHIP:DMG: },
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ PICS: S.S.C00.Rsp && PICS_SKIP_SAMPLE_APP
+ arguments:
+ values:
+ - name: "message"
+ value:
+ "Please execute the add scene command with
+ extensionfieldsets in accordance with AC1 on DUT and enter
+ 'y' if the command is successful"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 6b: TH sends a ViewScene command to DUT with the GroupID field
+ set to G1 and the SceneID field set to 0x03."
+ PICS: S.S.C01.Rsp && PICS_SDK_CI_ONLY
+ command: "ViewScene"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x03
+ response:
+ values:
+ - name: "Status"
+ value: 0x00
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x03
+ - name: "TransitionTime"
+ value: 1000
+ - name: "ExtensionFieldSets"
+ value:
+ [
+ {
+ ClusterID: 0x0006,
+ AttributeValueList:
+ [{ AttributeID: 0x0000, AttributeValue: 0x01 }],
+ },
+ {
+ ClusterID: 0x0008,
+ AttributeValueList:
+ [{ AttributeID: 0x0000, AttributeValue: 0x64 }],
+ },
+ ]
+ - label:
+ "Step 6b: TH sends a ViewScene command to DUT with the GroupID field
+ set to G1 and the SceneID field set to 0x03."
+ PICS: S.S.C01.Rsp && PICS_SKIP_SAMPLE_APP
+ verification: |
+ ./chip-tool scenes view-scene GroupId SceneId Node-Id EndpointId
+
+ Note: The number of ExtensionFieldSets, the value of clusterId of each ExtensionFieldSet, the number of attributes in attributeValueList and their values varies for each application
+
+ Verify that the extension fields in the log match the ones expected and that
+ Status = 0x00
+ GroupID = G1
+ SceneID = 0x03
+ TransitionTime = 0x03E8
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value:
+ "Please execute the view-scene command and verify that the
+ extensionfieldsets, status, groupID and SceneID are in
+ accordance with AC1 on DUT and enter 'y' if the command is
+ successful"
+ - name: "expectedValue"
+ value: "y"
+
+ - label:
+ "Step 6c: TH sends a ViewScene command to group G1 with the GroupID
+ field set to G1 and the SceneID field set to 0x03."
+ PICS: S.S.C01.Rsp && PICS_SDK_CI_ONLY
+ command: "ViewScene"
+ groupId: G1
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x03
+
+ - label:
+ "Step 6d: TH sends a RemoveScene command to group G1 with the GroupID
+ field set to G1 and the SceneID field set to 0x03."
+ PICS: S.S.C02.Rsp
+ command: "RemoveScene"
+ groupId: G1
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x03
+
+ - label: "Wait 1+ s to give CI time to process the RemoveScene command."
+ PICS: PICS_SDK_CI_ONLY
+ cluster: "DelayCommands"
+ command: "WaitForMs"
+ arguments:
+ values:
+ - name: "ms"
+ value: 1250
+
+ - label:
+ "Step 6e: TH sends a ViewScene command to DUT with the GroupID field
+ set to G1 and the SceneID field set to 0x03."
+ PICS: S.S.C01.Rsp && PICS_SDK_CI_ONLY
+ command: "ViewScene"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x03
+ response:
+ values:
+ - name: "Status"
+ value: 0x8b
+ - name: "GroupID"
+ value: G1
+ - name: "SceneID"
+ value: 0x03
+
+ - label:
+ "Step 7a: TH sends a CopyScene command to DUT with the mode field set
to 0x00, the group identifier from field set to G1, the scene
identifier from field set to 0x01, the group identifier to field set
to G1 and the scene identifier to field set to 0x02."
@@ -487,7 +757,64 @@
value: 0x01
- label:
- "Step 6b: TH sends a GetSceneMembership command to DUT with the
+ "Step 7b: TH sends a CopyScene command to DUT with the mode field set
+ to 0x00, the group identifier from field set to GI (Where GI is a
+ group currently absent from the group table), the scene identifier
+ from field set to 0x01, the group identifier to field set to GI and
+ the scene identifier to field set to 0x02."
+ PICS: S.S.C40.Rsp
+ command: "CopyScene"
+ arguments:
+ values:
+ - name: "Mode"
+ value: 0x00
+ - name: "GroupIdentifierFrom"
+ value: GI
+ - name: "SceneIdentifierFrom"
+ value: 0x01
+ - name: "GroupIdentifierTo"
+ value: GI
+ - name: "SceneIdentifierTo"
+ value: 0x02
+ response:
+ values:
+ - name: "Status"
+ value: 0x85
+ - name: "GroupIdentifierFrom"
+ value: GI
+ - name: "SceneIdentifierFrom"
+ value: 0x01
+
+ - label:
+ "Step 7c: TH sends a CopyScene command to DUT with the mode field set
+ to 0x00, the group identifier from field set to G1, the scene
+ identifier from field set to 0xFE, the group identifier to field set
+ to G1 and the scene identifier to field set to 0x02."
+ PICS: S.S.C40.Rsp
+ command: "CopyScene"
+ arguments:
+ values:
+ - name: "Mode"
+ value: 0x00
+ - name: "GroupIdentifierFrom"
+ value: G1
+ - name: "SceneIdentifierFrom"
+ value: 0xFE
+ - name: "GroupIdentifierTo"
+ value: G1
+ - name: "SceneIdentifierTo"
+ value: 0x02
+ response:
+ values:
+ - name: "Status"
+ value: 0x8b
+ - name: "GroupIdentifierFrom"
+ value: G1
+ - name: "SceneIdentifierFrom"
+ value: 0xFE
+
+ - label:
+ "Step 7d: TH sends a GetSceneMembership command to DUT with the
GroupID field set to G1."
PICS: S.S.C06.Rsp
command: "GetSceneMembership"
@@ -507,7 +834,179 @@
value: [0x01, 0x02]
- label:
- "Step 7: TH removes the Group key set that was added by sending a
+ "Step 8a: TH sends a CopyScene command to DUT with the mode field set
+ to 0x01, the group identifier from field set to G1, the scene
+ identifier from field set to 0x01, the group identifier to field set
+ to G2 and the scene identifier to field set to 0x02."
+ PICS: S.S.C40.Rsp
+ command: "CopyScene"
+ arguments:
+ values:
+ - name: "Mode"
+ value: 0x01
+ - name: "GroupIdentifierFrom"
+ value: G1
+ - name: "SceneIdentifierFrom"
+ value: 01
+ - name: "GroupIdentifierTo"
+ value: G2
+ - name: "SceneIdentifierTo"
+ value: 0x02
+ response:
+ values:
+ - name: "Status"
+ value: 0x00
+ - name: "GroupIdentifierFrom"
+ value: G1
+ - name: "SceneIdentifierFrom"
+ value: 0x01
+ - label:
+ "Step 8b: TH sends a GetSceneMembership command to DUT with the
+ GroupID field set to G2."
+ PICS: S.S.C06.Rsp
+ command: "GetSceneMembership"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G2
+ response:
+ values:
+ - name: "Status"
+ value: 0x00
+ - name: "Capacity"
+ constraints:
+ anyOf: [fabricCapacity - 4, 0xfe, null]
+ - name: "GroupID"
+ value: G2
+ - name: "SceneList"
+ value: [0x01, 0x02]
+
+ - label:
+ "Step 8c: TH sends a CopyScene command to group G2 with the mode field
+ set to 0x00, the group identifier from field set to G2, the scene
+ identifier from field set to 0x02, the group identifier to field set
+ to G2 and the scene identifier to field set to 0x03."
+ PICS: S.S.C40.Rsp
+ command: "CopyScene"
+ groupId: G2
+ arguments:
+ values:
+ - name: "Mode"
+ value: 0x00
+ - name: "GroupIdentifierFrom"
+ value: G2
+ - name: "SceneIdentifierFrom"
+ value: 02
+ - name: "GroupIdentifierTo"
+ value: G2
+ - name: "SceneIdentifierTo"
+ value: 0x03
+
+ - label:
+ "Step 8d: TH sends a GetSceneMembership command to DUT with the
+ GroupID field set to G2."
+ PICS: S.S.C06.Rsp
+ command: "GetSceneMembership"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G2
+ response:
+ values:
+ - name: "Status"
+ value: 0x00
+ - name: "Capacity"
+ constraints:
+ anyOf: [fabricCapacity - 5, 0xfe, null]
+ - name: "GroupID"
+ value: G2
+ - name: "SceneList"
+ value: [0x01, 0x02, 0x03]
+
+ - label:
+ "Step 9a: TH sends a RemoveAllScenes command to group G1 with the
+ GroupID field set to G1."
+ PICS: S.S.C03.Rsp
+ command: "RemoveAllScenes"
+ groupId: G1
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+
+ - label: "Wait 1+ s to give CI time to process the RemoveScene command."
+ PICS: PICS_SDK_CI_ONLY
+ cluster: "DelayCommands"
+ command: "WaitForMs"
+ arguments:
+ values:
+ - name: "ms"
+ value: 1250
+
+ - label:
+ "Step 9b: TH sends a GetSceneMembership command to DUT with the
+ GroupID field set to G1."
+ PICS: S.S.C06.Rsp
+ command: "GetSceneMembership"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G1
+ response:
+ values:
+ - name: "Status"
+ value: 0x00
+ - name: "Capacity"
+ constraints:
+ anyOf: [fabricCapacity - 3, 0xfe, null]
+ - name: "GroupID"
+ value: G1
+ - name: "SceneList"
+ value: []
+
+ - label:
+ "Step 10a: TH sends a RemoveAllScenes command to group G2 with the
+ GroupID field set to G2."
+ PICS: S.S.C03.Rsp
+ command: "RemoveAllScenes"
+ groupId: G2
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G2
+
+ - label: "Wait 1+ s to give CI time to process the RemoveScene command."
+ PICS: PICS_SDK_CI_ONLY
+ cluster: "DelayCommands"
+ command: "WaitForMs"
+ arguments:
+ values:
+ - name: "ms"
+ value: 1250
+
+ - label:
+ "Step 10b: TH sends a GetSceneMembership command to DUT with the
+ GroupID field set to G1."
+ PICS: S.S.C06.Rsp
+ command: "GetSceneMembership"
+ arguments:
+ values:
+ - name: "GroupID"
+ value: G2
+ response:
+ values:
+ - name: "Status"
+ value: 0x00
+ - name: "Capacity"
+ constraints:
+ anyOf: [fabricCapacity, 0xfe, null]
+ - name: "GroupID"
+ value: G2
+ - name: "SceneList"
+ value: []
+
+ - label:
+ "Step 11: TH removes the Group key set that was added by sending a
KeySetRemove command to the GroupKeyManagement cluster with the
GroupKeySetID field set to 0x01a1"
cluster: "Group Key Management"
@@ -517,3 +1016,15 @@
values:
- name: GroupKeySetID
value: 0x01a1
+
+ - label:
+ "Step 12: TH removes the Group key set that was added by sending a
+ KeySetRemove command to the GroupKeyManagement cluster with the
+ GroupKeySetID field set to 0x01a2"
+ cluster: "Group Key Management"
+ endpoint: 0
+ command: "KeySetRemove"
+ arguments:
+ values:
+ - name: GroupKeySetID
+ value: 0x01a2
diff --git a/src/app/tests/suites/certification/Test_TC_S_2_4.yaml b/src/app/tests/suites/certification/Test_TC_S_2_4.yaml
index 878637d..0bbf762 100644
--- a/src/app/tests/suites/certification/Test_TC_S_2_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_2_4.yaml
@@ -76,7 +76,7 @@
arguments:
value: [{ FabricIndex: 1, GroupId: G1, GroupKeySetID: 0x01a1 }]
- - label: "Step 0c: TH sends a RemoveAllGroups command to DUT."
+ - label: "Step 1: TH sends a RemoveAllGroups command to DUT."
PICS: G.S.C04.Rsp
cluster: "Groups"
command: "RemoveAllGroups"
@@ -119,7 +119,7 @@
- label:
"Step 3: TH sends a AddScene command to DUT with the GroupID field set
to G1, the SceneID field set to 0x01, the TransitionTime field set to
- 0x4E20 (20s) and no extension fields set."
+ 20000 (20s) and no extension fields set."
PICS: S.S.C00.Rsp
command: "AddScene"
arguments:
@@ -129,7 +129,7 @@
- name: "SceneID"
value: 0x01
- name: "TransitionTime"
- value: 0x4E20
+ value: 20000
- name: "SceneName"
value: "Scene1"
- name: "ExtensionFieldSets"
@@ -317,7 +317,7 @@
Is DUT configured with AC2?
cluster: "LogCommands"
command: "UserPrompt"
- PICS: PICS_SKIP_SAMPLE_APP && PICS_SC_RECALL_SCENE_TRANSITION_TIME_MS
+ PICS: PICS_SKIP_SAMPLE_APP
arguments:
values:
- name: "message"
@@ -330,8 +330,8 @@
- label:
"Step 6b: TH sends a RecallScene command to DUT with the GroupID field
set to G1, the SceneID field set to 0x01 and the TransitionTime field
- set to 5000 (5s)."
- PICS: S.S.C05.Rsp && PICS_SC_RECALL_SCENE_TRANSITION_TIME_MS
+ set to 5000 5s."
+ PICS: S.S.C05.Rsp
command: "RecallScene"
arguments:
values:
@@ -343,7 +343,7 @@
value: 5000
- label: "Wait 5s"
- PICS: S.S.C05.Rsp && PICS_SC_RECALL_SCENE_TRANSITION_TIME_MS
+ PICS: S.S.C05.Rsp
cluster: "DelayCommands"
command: "WaitForMs"
arguments:
@@ -352,10 +352,8 @@
value: 5500
- label:
- "TH confirm the DUT reached AC2 (on level control cluster) after 5s"
- PICS:
- S.S.C05.Rsp && PICS_SC_RECALL_SCENE_TRANSITION_TIME_MS &&
- PICS_SDK_CI_ONLY
+ "TH confirm the DUT reached AC1 (on level control cluster) after 5s"
+ PICS: S.S.C05.Rsp && PICS_SDK_CI_ONLY
cluster: "Level Control"
command: "readAttribute"
attribute: "CurrentLevel"
@@ -424,6 +422,37 @@
- name: "TransitionTime"
value: null
+ - label: "Wait 20s"
+ PICS: S.S.C05.Rsp
+ cluster: "DelayCommands"
+ command: "WaitForMs"
+ arguments:
+ values:
+ - name: "ms"
+ value: 20500
+
+ - label:
+ "TH confirm the DUT reached AC1 (on level control cluster) after 20s"
+ PICS: S.S.C05.Rsp && PICS_SDK_CI_ONLY
+ cluster: "Level Control"
+ command: "readAttribute"
+ attribute: "CurrentLevel"
+ response:
+ value: 100
+
+ - label: "DUT transitions to AC2 over 20."
+ verification: |
+ Is the transition done over 20s?
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ PICS: PICS_SKIP_SAMPLE_APP
+ arguments:
+ values:
+ - name: "message"
+ value: "Please confirm that transition to AC2 was made over 5s"
+ - name: "expectedValue"
+ value: "y"
+
- label:
"Step 8: TH removes the Group key set that was added by sending a
KeySetRemove command to the GroupKeyManagement cluster with the
diff --git a/src/app/tests/suites/certification/Test_TC_S_2_5.yaml b/src/app/tests/suites/certification/Test_TC_S_2_5.yaml
index 633e362..b8ffd36 100644
--- a/src/app/tests/suites/certification/Test_TC_S_2_5.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_2_5.yaml
@@ -104,7 +104,7 @@
field set to G1."
PICS: S.S.C03.Rsp
verification: |
- ./chip-tool scenes remove-all-scenes 0x0001 1 1
+ ./chip-tool scenesmanagement remove-all-scenes 0x0001 1 1
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0003
CHIP:TOO: RemoveAllScenesResponse: {
@@ -114,20 +114,79 @@
disabled: true
- label: "Step 4a: TH reads from the DUT the SceneTableSize attribute"
- PICS: S.S.A0006
verification: |
- ./chip-tool scenes read scene-table-size 1 1
+ ./chip-tool scenesmanagement read scene-table-size 1 1
[1688019474.695136][1726:1728] CHIP:DMG: }
[1688019474.695335][1726:1728] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0006 DataVersion: 1550229741
- [1688019474.695397][1726:1728] CHIP:TOO: SceneTableSize: 0
+ [1688019474.695397][1726:1728] CHIP:TOO: SceneTableSize: (Default table size: 16)
disabled: true
- label:
"Step 4b: TH sends a subscription request action for FabricSceneInfo
to the DUT."
- PICS: S.S.A0007
verification: |
+ ./chip-tool interactive start
+ >>> any subscribe-by-id 0x0062 0x0002 min-interval max-interval node-id endpoint
+
+ [1706764465.493922][4438:4440] CHIP:DMG: ReportDataMessage =
+ [1706764465.493926][4438:4440] CHIP:DMG: {
+ [1706764465.493928][4438:4440] CHIP:DMG: SubscriptionId = 0x8537dfcd,
+ [1706764465.493931][4438:4440] CHIP:DMG: AttributeReportIBs =
+ [1706764465.493937][4438:4440] CHIP:DMG: [
+ [1706764465.493939][4438:4440] CHIP:DMG: AttributeReportIB =
+ [1706764465.493944][4438:4440] CHIP:DMG: {
+ [1706764465.493947][4438:4440] CHIP:DMG: AttributeDataIB =
+ [1706764465.493949][4438:4440] CHIP:DMG: {
+ [1706764465.493952][4438:4440] CHIP:DMG: DataVersion = 0xec4c4ec0,
+ [1706764465.493955][4438:4440] CHIP:DMG: AttributePathIB =
+ [1706764465.493958][4438:4440] CHIP:DMG: {
+ [1706764465.493961][4438:4440] CHIP:DMG: Endpoint = 0x1,
+ [1706764465.493963][4438:4440] CHIP:DMG: Cluster = 0x62,
+ [1706764465.493966][4438:4440] CHIP:DMG: Attribute = 0x0000_0002,
+ [1706764465.493969][4438:4440] CHIP:DMG: }
+ [1706764465.493974][4438:4440] CHIP:DMG:
+ [1706764465.493979][4438:4440] CHIP:DMG: Data = [
+ [1706764465.493985][4438:4440] CHIP:DMG:
+ [1706764465.493990][4438:4440] CHIP:DMG: {
+ [1706764465.493997][4438:4440] CHIP:DMG: 0x0 = 1,
+ [1706764465.494002][4438:4440] CHIP:DMG: 0x1 = 1,
+ [1706764465.494007][4438:4440] CHIP:DMG: 0x2 = 1,
+ [1706764465.494013][4438:4440] CHIP:DMG: 0x3 = false,
+ [1706764465.494018][4438:4440] CHIP:DMG: 0x4 = 6,
+ [1706764465.494023][4438:4440] CHIP:DMG: 0xfe = 1,
+ [1706764465.494029][4438:4440] CHIP:DMG: },
+ [1706764465.494034][4438:4440] CHIP:DMG: ],
+ [1706764465.494038][4438:4440] CHIP:DMG: },
+ [1706764465.494047][4438:4440] CHIP:DMG:
+ [1706764465.494050][4438:4440] CHIP:DMG: },
+ [1706764465.494059][4438:4440] CHIP:DMG:
+ [1706764465.494062][4438:4440] CHIP:DMG: ],
+ [1706764465.494070][4438:4440] CHIP:DMG:
+ [1706764465.494073][4438:4440] CHIP:DMG: InteractionModelRevision = 11
+ [1706764465.494077][4438:4440] CHIP:DMG: }
+ [1706764465.494130][4438:4440] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion: 3964423872
+ [1706764465.494142][4438:4440] CHIP:TOO: FabricSceneInfo: 1 entries
+ [1706764465.494152][4438:4440] CHIP:TOO: [1]: {
+ [1706764465.494155][4438:4440] CHIP:TOO: SceneCount: 1
+ [1706764465.494158][4438:4440] CHIP:TOO: CurrentScene: 1
+ [1706764465.494161][4438:4440] CHIP:TOO: CurrentGroup: 1
+ [1706764465.494164][4438:4440] CHIP:TOO: SceneValid: FALSE
+ [1706764465.494167][4438:4440] CHIP:TOO: RemainingCapacity: 6
+ [1706764465.494170][4438:4440] CHIP:TOO: FabricIndex: 1
+ [1706764465.494174][4438:4440] CHIP:TOO: }
+ ...
+ [1706797894.367789][5179:5181] CHIP:DMG: Subscription established with SubscriptionID = 0x8537dfcd MinInterval = 0s MaxInterval = 60s Peer = 01:0000000000000001
+ ...
+ [1706798074.365189][5179:5181] CHIP:EM: >>> [E:29283r S:30665 M:266174816] (S) Msg RX from 1:0000000000000001 [0714] --- Type 0001:05 (IM:ReportData)
+ [1706798074.365317][5179:5181] CHIP:EM: Handling via exchange: 29283r, Delegate: 0xaaaacccf2a88
+ [1706798074.365449][5179:5181] CHIP:DMG: ReportDataMessage =
+ [1706798074.365517][5179:5181] CHIP:DMG: {
+ [1706798074.365576][5179:5181] CHIP:DMG: SubscriptionId = 0x8537dfcd,
+ [1706798074.365638][5179:5181] CHIP:DMG: InteractionModelRevision = 11
+ [1706798074.365696][5179:5181] CHIP:DMG: }
+ [1706798074.365883][5179:5181] CHIP:DMG: Refresh LivenessCheckTime for 64224 milliseconds with SubscriptionId = 0x85
+ 37dfcd Peer = 01:0000000000000001
disabled: true
@@ -135,16 +194,19 @@
"Step 4c: Keep subscription session active for the remainder of the
test"
verification: |
+ Confirm that the subscription session is active for the remainder of the test by the reception of Liveness checks:
+
+ [1706798074.365883][5179:5181] CHIP:DMG: Refresh LivenessCheckTime for 64224 milliseconds with SubscriptionId = 0x8537dfcd Peer = 01:0000000000000001
disabled: true
- label:
"Step 5a: TH sends a AddScene command to DUT with the GroupID field
set to G1, the SceneID field set to 0x01, the TransitionTime field set
- to 0x0014 (20s) and no extension field sets."
+ to 20000 (20s) and no extension field sets."
PICS: S.S.C00.Rsp
verification: |
- ./chip-tool scenes add-scene 0x0001 0x1 0x0014 scene1 [] 1 1
+ ./chip-tool scenesmanagement add-scene 0x0001 0x1 20000 scene1 [] 1 1
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000
CHIP:TOO: AddSceneResponse: {
@@ -155,12 +217,59 @@
disabled: true
- label:
- "Step 5b: Verify that the DUT sends a report data for
- RemainingCapacity after the MinIntervalFloor time; store this value
- into RemainingCapacity; verify RemainingCapacity equals
+ "Step 5b: Verify that the DUT sends a report data for FabricSceneInfo
+ after the MinIntervalFloor time; store the RemainingCapacity field
+ from this fabric’s entry reported in FabricSceneInfo into
+ RemainingCapacity; verify RemainingCapacity equals
(MaxRemainingCapacity-1)."
- PICS: S.S.A0007
verification: |
+ CHIP:DMG: ReportDataMessage =
+ CHIP:DMG: {
+ CHIP:DMG: SubscriptionId = 0x8537dfcd,
+ CHIP:DMG: AttributeReportIBs =
+ CHIP:DMG: [
+ CHIP:DMG: AttributeReportIB =
+ CHIP:DMG: {
+ CHIP:DMG: AttributeDataIB =
+ CHIP:DMG: {
+ CHIP:DMG: DataVersion = 0x92ecb45d,
+ CHIP:DMG: AttributePathIB =
+ CHIP:DMG: {
+ CHIP:DMG: Endpoint = 0x1,
+ CHIP:DMG: Cluster = 0x62,
+ CHIP:DMG: Attribute = 0x0000_0002,
+ CHIP:DMG: }
+ CHIP:DMG:
+ CHIP:DMG: Data = [
+ CHIP:DMG:
+ CHIP:DMG: {
+ CHIP:DMG: 0x0 = 1,
+ CHIP:DMG: 0x1 = 0,
+ CHIP:DMG: 0x2 = 0,
+ CHIP:DMG: 0x3 = false,
+ CHIP:DMG: 0x4 = 6,
+ CHIP:DMG: 0xfe = 1,
+ CHIP:DMG: },
+ CHIP:DMG: ],
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: ],
+ CHIP:DMG:
+ CHIP:DMG: InteractionModelRevision = 11
+ CHIP:DMG: }
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion:
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 1
+ CHIP:TOO: CurrentScene: 0
+ CHIP:TOO: CurrentGroup: 0
+ CHIP:TOO: SceneValid: FALSE
+ CHIP:TOO: RemainingCapacity: 6
+ CHIP:TOO: FabricIndex: 1
+ CHIP:TOO: }
+ CHIP:DMG: Refresh LivenessCheckTime for 9224 milliseconds with SubscriptionId = 0x8537dfcd Peer = 01:0000000000000001
disabled: true
@@ -171,7 +280,7 @@
8a."
PICS: S.S.C04.Rsp
verification: |
- ./chip-tool scenes add-scene 0x0001 0x2 0x0014 scene2 [] 1 1
+ ./chip-tool scenesmanagement store-scene 0x0001 0x2 20000 scene2 [] 1 1
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000
CHIP:TOO: AddSceneResponse: {
@@ -182,33 +291,125 @@
disabled: true
- label:
- "Step 6b: Verify that the DUT sends a report data for
- RemainingCapacity after the MinIntervalFloor time; store this value
- into RemainingCapacity; verify RemainingCapacity equals
+ "Step 6b: Verify that the DUT sends a report data for FabricSceneInfo
+ after the MinIntervalFloor time; store the RemainingCapacity field
+ from this fabric’s entry reported in FabricSceneInfo into
+ RemainingCapacity; verify RemainingCapacity equals
(MaxRemainingCapacity-2)."
- PICS: S.S.A0007
verification: |
-
+ CHIP:DMG: ReportDataMessage =
+ CHIP:DMG: {
+ CHIP:DMG: SubscriptionId = 0x8537dfcd,
+ CHIP:DMG: AttributeReportIBs =
+ CHIP:DMG: [
+ CHIP:DMG: AttributeReportIB =
+ CHIP:DMG: {
+ CHIP:DMG: AttributeDataIB =
+ CHIP:DMG: {
+ CHIP:DMG: DataVersion = 0x92ecb45d,
+ CHIP:DMG: AttributePathIB =
+ CHIP:DMG: {
+ CHIP:DMG: Endpoint = 0x1,
+ CHIP:DMG: Cluster = 0x62,
+ CHIP:DMG: Attribute = 0x0000_0002,
+ CHIP:DMG: }
+ CHIP:DMG:
+ CHIP:DMG: Data = [
+ CHIP:DMG:
+ CHIP:DMG: {
+ CHIP:DMG: 0x0 = 2,
+ CHIP:DMG: 0x1 = 2,
+ CHIP:DMG: 0x2 = 1,
+ CHIP:DMG: 0x3 = true,
+ CHIP:DMG: 0x4 = 5,
+ CHIP:DMG: 0xfe = 1,
+ CHIP:DMG: },
+ CHIP:DMG: ],
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: ],
+ CHIP:DMG:
+ CHIP:DMG: InteractionModelRevision = 11
+ CHIP:DMG: }
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion:
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 2
+ CHIP:TOO: CurrentScene: 2
+ CHIP:TOO: CurrentGroup: 1
+ CHIP:TOO: SceneValid: TRUE
+ CHIP:TOO: RemainingCapacity: 5
+ CHIP:TOO: FabricIndex: 1
+ CHIP:TOO: }
+ CHIP:DMG: Refresh LivenessCheckTime for 9224 milliseconds with SubscriptionId = 0x8537dfcd Peer = 01:0000000000000001
disabled: true
- label:
"Step 7a: If RemainingCapacity is greater than 0, TH sends a AddScene
command to DUT with the GroupID field set to G1, the SceneID field set
- to 0x03, the TransitionTime field set to 0x0014 (20s) and no extension
+ to 0x03, the TransitionTime field set to 20000 (20s) and no extension
field sets. If RemainingCapacity is 0, continue to Step 8a."
PICS: S.S.C00.Rsp
verification: |
- ./chip-tool scenes add-scene 0x0001 0x3 0x0014 scene3 [] 1 1
+ ./chip-tool scenesmanagement add-scene 0x0001 0x3 20000 scene3 [] 1 1
disabled: true
- label:
- "Step 7b: Verify that the DUT sends a report data for
- RemainingCapacity after the MinIntervalFloor time; store this value
- into RemainingCapacity; verify RemainingCapacity equals
+ "Step 7b: Verify that the DUT sends a report data for FabricSceneInfo
+ after the MinIntervalFloor time; store the RemainingCapacity field
+ from this fabric’s entry reported in FabricSceneInfo into
+ RemainingCapacity; verify RemainingCapacity equals
(MaxRemainingCapacity-3)."
- PICS: S.S.A0007
verification: |
-
+ CHIP:DMG: ReportDataMessage =
+ CHIP:DMG: {
+ CHIP:DMG: SubscriptionId = 0x8537dfcd,
+ CHIP:DMG: AttributeReportIBs =
+ CHIP:DMG: [
+ CHIP:DMG: AttributeReportIB =
+ CHIP:DMG: {
+ CHIP:DMG: AttributeDataIB =
+ CHIP:DMG: {
+ CHIP:DMG: DataVersion = 0x92ecb45d,
+ CHIP:DMG: AttributePathIB =
+ CHIP:DMG: {
+ CHIP:DMG: Endpoint = 0x1,
+ CHIP:DMG: Cluster = 0x62,
+ CHIP:DMG: Attribute = 0x0000_0002,
+ CHIP:DMG: }
+ CHIP:DMG:
+ CHIP:DMG: Data = [
+ CHIP:DMG:
+ CHIP:DMG: {
+ CHIP:DMG: 0x0 = 3,
+ CHIP:DMG: 0x1 = 2,
+ CHIP:DMG: 0x2 = 1,
+ CHIP:DMG: 0x3 = true,
+ CHIP:DMG: 0x4 = 4,
+ CHIP:DMG: 0xfe = 1,
+ CHIP:DMG: },
+ CHIP:DMG: ],
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: ],
+ CHIP:DMG:
+ CHIP:DMG: InteractionModelRevision = 11
+ CHIP:DMG: }
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion:
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 3
+ CHIP:TOO: CurrentScene: 2
+ CHIP:TOO: CurrentGroup: 1
+ CHIP:TOO: SceneValid: TRUE
+ CHIP:TOO: RemainingCapacity: 4
+ CHIP:TOO: FabricIndex: 1
+ CHIP:TOO: }
+ CHIP:DMG: Refresh LivenessCheckTime for 9224 milliseconds with SubscriptionId = 0x8537dfcd Peer = 01:0000000000000001
disabled: true
- label:
@@ -216,7 +417,7 @@
set to G1 and the SceneID field set to 0x01."
PICS: S.S.C02.Rsp
verification: |
- ./chip-tool scenes remove-scene 0x0001 0x1 1 1
+ ./chip-tool scenesmanagement remove-scene 0x0001 0x1 1 1
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0002
CHIP:TOO: RemoveSceneResponse: {
@@ -227,13 +428,59 @@
disabled: true
- label:
- "Step 8b: Verify that the DUT sends a report data for
- RemainingCapacity after the MinIntervalFloor time; store this value
- into RemainingCapacity; verify RemainingCapacity equals
+ "Step 8b: Verify that the DUT sends a report data for FabricSceneInfo
+ after the MinIntervalFloor time; store the RemainingCapacity field
+ from this fabric’s entry reported in FabricSceneInfo into
+ RemainingCapacity; verify RemainingCapacity equals
(MaxRemainingCapacity-2)."
- PICS: S.S.A0007
verification: |
-
+ CHIP:DMG: ReportDataMessage =
+ CHIP:DMG: {
+ CHIP:DMG: SubscriptionId = 0x8537dfcd,
+ CHIP:DMG: AttributeReportIBs =
+ CHIP:DMG: [
+ CHIP:DMG: AttributeReportIB =
+ CHIP:DMG: {
+ CHIP:DMG: AttributeDataIB =
+ CHIP:DMG: {
+ CHIP:DMG: DataVersion = 0x92ecb45d,
+ CHIP:DMG: AttributePathIB =
+ CHIP:DMG: {
+ CHIP:DMG: Endpoint = 0x1,
+ CHIP:DMG: Cluster = 0x62,
+ CHIP:DMG: Attribute = 0x0000_0002,
+ CHIP:DMG: }
+ CHIP:DMG:
+ CHIP:DMG: Data = [
+ CHIP:DMG:
+ CHIP:DMG: {
+ CHIP:DMG: 0x0 = 2,
+ CHIP:DMG: 0x1 = 2,
+ CHIP:DMG: 0x2 = 1,
+ CHIP:DMG: 0x3 = true,
+ CHIP:DMG: 0x4 = 5,
+ CHIP:DMG: 0xfe = 1,
+ CHIP:DMG: },
+ CHIP:DMG: ],
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: ],
+ CHIP:DMG:
+ CHIP:DMG: InteractionModelRevision = 11
+ CHIP:DMG: }
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion:
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 2
+ CHIP:TOO: CurrentScene: 2
+ CHIP:TOO: CurrentGroup: 1
+ CHIP:TOO: SceneValid: TRUE
+ CHIP:TOO: RemainingCapacity: 5
+ CHIP:TOO: FabricIndex: 1
+ CHIP:TOO: }
+ CHIP:DMG: Refresh LivenessCheckTime for 9224 milliseconds with SubscriptionId = 0x8537dfcd Peer = 01:0000000000000001
disabled: true
- label:
@@ -241,7 +488,7 @@
field set to G1."
PICS: S.S.C03.Rsp
verification: |
- ./chip-tool scenes remove-all-scenes 0x0001 1 1
+ ./chip-tool scenesmanagement remove-all-scenes 0x0001 1 1
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0003
CHIP:TOO: RemoveAllScenesResponse: {
@@ -251,13 +498,59 @@
disabled: true
- label:
- "Step 9b: Verify that the DUT sends a report data for
- RemainingCapacity after the MinIntervalFloor time; store this value
- into RemainingCapacity; verify RemainingCapacity equals
+ "Step 9b: Verify that the DUT sends a report data for FabricSceneInfo
+ after the MinIntervalFloor time; store the RemainingCapacity field
+ from this fabric’s entry reported in FabricSceneInfo into
+ RemainingCapacity; verify RemainingCapacity equals
(MaxRemainingCapacity)."
- PICS: S.S.A0007
verification: |
-
+ CHIP:DMG: ReportDataMessage =
+ CHIP:DMG: {
+ CHIP:DMG: SubscriptionId = 0x8537dfcd,
+ CHIP:DMG: AttributeReportIBs =
+ CHIP:DMG: [
+ CHIP:DMG: AttributeReportIB =
+ CHIP:DMG: {
+ CHIP:DMG: AttributeDataIB =
+ CHIP:DMG: {
+ CHIP:DMG: DataVersion = 0x92ecb45d,
+ CHIP:DMG: AttributePathIB =
+ CHIP:DMG: {
+ CHIP:DMG: Endpoint = 0x1,
+ CHIP:DMG: Cluster = 0x62,
+ CHIP:DMG: Attribute = 0x0000_0002,
+ CHIP:DMG: }
+ CHIP:DMG:
+ CHIP:DMG: Data = [
+ CHIP:DMG:
+ CHIP:DMG: {
+ CHIP:DMG: 0x0 = 0,
+ CHIP:DMG: 0x1 = 2,
+ CHIP:DMG: 0x2 = 1,
+ CHIP:DMG: 0x3 = false,
+ CHIP:DMG: 0x4 = 7,
+ CHIP:DMG: 0xfe = 1,
+ CHIP:DMG: },
+ CHIP:DMG: ],
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: ],
+ CHIP:DMG:
+ CHIP:DMG: InteractionModelRevision = 11
+ CHIP:DMG: }
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion:
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 0
+ CHIP:TOO: CurrentScene: 2
+ CHIP:TOO: CurrentGroup: 1
+ CHIP:TOO: SceneValid: FALSE
+ CHIP:TOO: RemainingCapacity: 7
+ CHIP:TOO: FabricIndex: 1
+ CHIP:TOO: }
+ CHIP:DMG: Refresh LivenessCheckTime for 9224 milliseconds with SubscriptionId = 0x8537dfcd Peer = 01:0000000000000001
disabled: true
- label:
diff --git a/src/app/tests/suites/certification/Test_TC_S_2_6.yaml b/src/app/tests/suites/certification/Test_TC_S_2_6.yaml
index 14731c4..2d5e5cf 100644
--- a/src/app/tests/suites/certification/Test_TC_S_2_6.yaml
+++ b/src/app/tests/suites/certification/Test_TC_S_2_6.yaml
@@ -39,7 +39,7 @@
field set to 0x0000."
PICS: S.S.C03.Rsp
verification: |
- ./chip-tool scenes remove-all-scenes 0x0000 1 1
+ ./chip-tool scenesmanagement remove-all-scenes 0x0000 1 1
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0003
CHIP:TOO: RemoveAllScenesResponse: {
@@ -51,14 +51,13 @@
- label: "Step 1b: Repeat Step 1a with TH2 and TH3."
PICS: S.S.C03.Rsp
verification: |
- ./chip-tool scenes remove-all-scenes 0x0000 2 1 --commissioner-name beta
- ./chip-tool scenes remove-all-scenes 0x0000 3 1 --commissioner-name gamma
+ ./chip-tool scenesmanagement remove-all-scenes 0x0000 2 1 --commissioner-name beta
+ ./chip-tool scenesmanagement remove-all-scenes 0x0000 3 1 --commissioner-name gamma
disabled: true
- label: "Step 2a: TH1 reads from the DUT the SceneTableSize attribute"
- PICS: S.S.A0006
verification: |
- ./chip-tool scenes read scene-table-size 1 1
+ ./chip-tool scenesmanagement read scene-table-size 1 1
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0006 DataVersion: 2793536935
CHIP:TOO: SceneTableSize: 16
@@ -67,8 +66,56 @@
- label:
"Step 2b: TH1 sends a subscription request action for FabricSceneInfo
to the DUT."
- PICS: S.S.A0007
verification: |
+ ./chipt-tool interactive start
+ any subscribe-by-id 0x0062 0x0002 0 5 1 1
+
+ CHIP:DMG: ReportDataMessage =
+ CHIP:DMG: {
+ CHIP:DMG: SubscriptionId = 0xce6a96bc,
+ CHIP:DMG: AttributeReportIBs =
+ CHIP:DMG: [
+ CHIP:DMG: AttributeReportIB =
+ CHIP:DMG: {
+ CHIP:DMG: AttributeDataIB =
+ CHIP:DMG: {
+ CHIP:DMG: DataVersion = 0x92ecb46c,
+ CHIP:DMG: AttributePathIB =
+ CHIP:DMG: {
+ CHIP:DMG: Endpoint = 0x1,
+ CHIP:DMG: Cluster = 0x62,
+ CHIP:DMG: Attribute = 0x0000_0002,
+ CHIP:DMG: }
+ CHIP:DMG:
+ CHIP:DMG: Data = [
+ CHIP:DMG:
+ CHIP:DMG: {
+ CHIP:DMG: 0x0 = 0,
+ CHIP:DMG: 0x1 = 0,
+ CHIP:DMG: 0x2 = 0,
+ CHIP:DMG: 0x3 = false,
+ CHIP:DMG: 0x4 = 7,
+ CHIP:DMG: 0xfe = 1,
+ CHIP:DMG: },
+ CHIP:DMG: ],
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: ],
+ CHIP:DMG:
+ CHIP:DMG: InteractionModelRevision = 11
+ CHIP:DMG: }
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion: 2464986220
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 0
+ CHIP:TOO: CurrentScene: 0
+ CHIP:TOO: CurrentGroup: 0
+ CHIP:TOO: SceneValid: FALSE
+ CHIP:TOO: RemainingCapacity: 7
+ CHIP:TOO: FabricIndex: 1
+ CHIP:TOO: }
disabled: true
@@ -76,26 +123,52 @@
"Step 2c: Keep subscription session active for the remaining of the
test"
verification: |
+ Confirm that the subscription session is active for the remainder of the test by the reception of Liveness checks:
+ CHIP:EM: >>> [E:44665r S:45698 M:201545516] (S) Msg RX from 1:0000000000000001 [1042] --- Type 0001:05 (IM:ReportData)
+ CHIP:EM: Handling via exchange: 44665r, Delegate: 0xaaaaea044808
+ CHIP:DMG: ReportDataMessage =
+ CHIP:DMG: {
+ CHIP:DMG: SubscriptionId = 0xce6a96bc,
+ CHIP:DMG: InteractionModelRevision = 11
+ CHIP:DMG: }
+ CHIP:DMG: Refresh LivenessCheckTime for 9224 milliseconds with SubscriptionId = 0xce6a96bc Peer = 01:0000000000000001
disabled: true
- label: "Step 2d: Repeat Step 2b and 2c with TH2 and TH3"
verification: |
TH2:
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536968
- CHIP:TOO: RemainingCapacity: 8
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 0
+ CHIP:TOO: CurrentScene: 0
+ CHIP:TOO: CurrentGroup: 0
+ CHIP:TOO: SceneValid: FALSE
+ CHIP:TOO: RemainingCapacity: 7
+ CHIP:TOO: FabricIndex: 2
+ CHIP:TOO: }
+
TH3:
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536968
- CHIP:TOO: RemainingCapacity: 8
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 0
+ CHIP:TOO: CurrentScene: 0
+ CHIP:TOO: CurrentGroup: 0
+ CHIP:TOO: SceneValid: FALSE
+ CHIP:TOO: RemainingCapacity: 7
+ CHIP:TOO: FabricIndex: 3
+ CHIP:TOO: }
disabled: true
- label:
"Step 3a: TH1 sends a AddScene command to DUT with the GroupID field
set to 0x0000, the SceneID field set to 0x01, the TransitionTime field
- set to 0x0014 (20s) and no extension field sets."
+ set to 20000 (20s) and no extension field sets."
PICS: S.S.C00.Rsp
verification: |
- ./chip-tool scenes add-scene 0x0000 0x1 0x0014 scene1 [] 1 1
+ ./chip-tool scenesmanagement add-scene 0x0000 0x1 20000 scene1 [] 1 1
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000
CHIP:TOO: AddSceneResponse: {
@@ -111,9 +184,54 @@
RemainingCapacity field from this fabric’s entry reported in
FabricSceneInfo into Remaining1stCapacity; verify Remaining1stCapacity
equals (MaxRemainingCapacity-1)."
- PICS: S.S.A0007
verification: |
-
+ Confirm that a report data message is received with the updated data:
+ CHIP:DMG: ReportDataMessage =
+ CHIP:DMG: {
+ CHIP:DMG: SubscriptionId = 0xce6a96bc,
+ CHIP:DMG: AttributeReportIBs =
+ CHIP:DMG: [
+ CHIP:DMG: AttributeReportIB =
+ CHIP:DMG: {
+ CHIP:DMG: AttributeDataIB =
+ CHIP:DMG: {
+ CHIP:DMG: DataVersion = 0x92ecb46e,
+ CHIP:DMG: AttributePathIB =
+ CHIP:DMG: {
+ CHIP:DMG: Endpoint = 0x1,
+ CHIP:DMG: Cluster = 0x62,
+ CHIP:DMG: Attribute = 0x0000_0002,
+ CHIP:DMG: }
+ CHIP:DMG:
+ CHIP:DMG: Data = [
+ CHIP:DMG:
+ CHIP:DMG: {
+ CHIP:DMG: 0x0 = 1,
+ CHIP:DMG: 0x1 = 0,
+ CHIP:DMG: 0x2 = 0,
+ CHIP:DMG: 0x3 = false,
+ CHIP:DMG: 0x4 = 6,
+ CHIP:DMG: 0xfe = 1,
+ CHIP:DMG: },
+ CHIP:DMG: ],
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: ],
+ CHIP:DMG:
+ CHIP:DMG: InteractionModelRevision = 11
+ CHIP:DMG: }
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion: 2464986222
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 0
+ CHIP:TOO: CurrentScene: 0
+ CHIP:TOO: CurrentGroup: 0
+ CHIP:TOO: SceneValid: FALSE
+ CHIP:TOO: RemainingCapacity: 6
+ CHIP:TOO: FabricIndex: 1
+ CHIP:TOO: }
disabled: true
- label:
@@ -122,44 +240,73 @@
Remaining1stCapacity more times until reported value to TH1 (after
MinIntervalFloor) for RemainingCapacity field from FabricSceneInfo
becomes 0."
- PICS: S.S.C00.Rsp && S.S.A0007
+ PICS: S.S.C00.Rsp
verification: |
+ ./chip-tool scenesmanagement add-scene 0x0000 0x02 20000 scene2 [] 1 1
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000
+ CHIP:TOO: AddSceneResponse: {
+ CHIP:TOO: status: 0
+ CHIP:TOO: groupID: 0
+ CHIP:TOO: sceneID: 2
+ CHIP:TOO: }
+ .
+ .
+ .
+ ./chip-tool scenesmanagement add-scene 0x0000 0x07 20000 scene2 [] 1 1
+
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000
+ CHIP:TOO: AddSceneResponse: {
+ CHIP:TOO: status: 0
+ CHIP:TOO: groupID: 0
+ CHIP:TOO: sceneID: 7
+ CHIP:TOO: }
+
+ You should see the following data in the next report:
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 7
+ CHIP:TOO: CurrentScene: 0
+ CHIP:TOO: CurrentGroup: 0
+ CHIP:TOO: SceneValid: FALSE
+ CHIP:TOO: RemainingCapacity: 0
+ CHIP:TOO: FabricIndex: 1
+ CHIP:TOO: }
disabled: true
- label:
"Step 4b: TH1 sends a AddScene command to DUT with the GroupID field
set to 0x0000, the SceneID field set to 1 more than last value used in
- step 4a, the TransitionTime field set to 0x0014 (20s) and no extension
+ step 4a, the TransitionTime field set to 20000 (20s) and no extension
field sets."
PICS: S.S.C00.Rsp
verification: |
- ./chip-tool scenes add-scene 0x0000 0x10 0x0014 scene101 [] 1 1
+ ./chip-tool scenesmanagement add-scene 0x0000 0x08 20000 scene101 [] 1 1
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000
CHIP:TOO: AddSceneResponse: {
CHIP:TOO: status: 137
CHIP:TOO: groupID: 0
- CHIP:TOO: sceneID: 16
+ CHIP:TOO: sceneID: 8
CHIP:TOO: }
disabled: true
- label: "Step 5a: Repeat Step 4a with TH2"
- PICS: S.S.C00.Rsp && S.S.A0007
+ PICS: S.S.C00.Rsp
verification: |
- ./chip-tool scenes add-scene 0x0000 0x1 0x0014 scene1 [] 2 1 --commissioner-name beta
+ ./chip-tool scenesmanagement add-scene 0x0000 0x2 20000 scene1 [] 2 1 --commissioner-name beta
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000
CHIP:TOO: AddSceneResponse: {
CHIP:TOO: status: 0
CHIP:TOO: groupID: 0
- CHIP:TOO: sceneID: 1
+ CHIP:TOO: sceneID: 2
CHIP:TOO: }
disabled: true
- label: "Step 5b: Repeat Step 4b with TH2"
PICS: S.S.C00.Rsp
verification: |
- ./chip-tool scenes add-scene 0x0000 0x11 0x0014 scene201 [] 2 1 --commissioner-name beta
+ ./chip-tool scenesmanagement add-scene 0x0000 0x11 20000 scene201 [] 2 1 --commissioner-name beta
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000
CHIP:TOO: AddSceneResponse: {
@@ -169,28 +316,72 @@
CHIP:TOO: }
disabled: true
- - label:
- "Step 6: TH3 sends a AddScene command to DUT with the GroupID field
- set to 0x0000, the SceneID field set to 0x01, the TransitionTime field
- set to 0x0014 (20s) and no extension field sets."
+ - label: "Step 6a: Repeat Step 4a with TH3"
PICS: S.S.C00.Rsp
verification: |
- ./chip-tool scenes add-scene 0x0000 0x12 0x0014 scene301 [] 3 1 --commissioner-name gamma
+ ./chip-tool scenesmanagement add-scene 0x0000 0x3 20000 scene1 [] 2 1 --commissioner-name gamma
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000
+ CHIP:TOO: AddSceneResponse: {
+ CHIP:TOO: status: 0
+ CHIP:TOO: groupID: 0
+ CHIP:TOO: sceneID: 3
+ CHIP:TOO: }
+ disabled: true
+
+ - label:
+ "Step 6b: TH3 sends a AddScene command to DUT with the GroupID field
+ set to 0x0000, the SceneID field set to 0x01, the TransitionTime field
+ set to 20000 20s and no extension field sets."
+ PICS: S.S.C00.Rsp
+ verification: |
+ ./chip-tool scenesmanagement add-scene 0x0000 0x01 20000 scene301 [] 3 1 --commissioner-name gamma
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000
CHIP:TOO: AddSceneResponse: {
CHIP:TOO: status: 137
CHIP:TOO: groupID: 0
- CHIP:TOO: sceneID: 18
+ CHIP:TOO: sceneID: 1
CHIP:TOO: }
disabled: true
- label:
- "Step 7a: TH1 sends a RemoveAllScenes command to DUT with the GroupID
+ "Step 7: TH3 sends a StoreScene command to DUT with the GroupID field
+ set to 0x0000, the SceneID field set to 0x01."
+ PICS: S.S.C04.Rsp
+ verification: |
+ ./chip-tool scenesmanagement store-scene 0x0000 0xFE 20000 sceneFE [] 1 1
+
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0004
+ CHIP:TOO: StoreSceneResponse: {
+ CHIP:TOO: status: 137
+ CHIP:TOO: groupID: 0
+ CHIP:TOO: sceneID: 0xFE
+ CHIP:TOO: }
+ disabled: true
+
+ - label:
+ "TH sends a CopyScene command to DUT with the mode field set to 0x00,
+ the group identifier from field set to 0x0000, the scene identifier
+ from field set to 0x01, the group identifier to field set to 0x0000
+ and the scene identifier to field set to 0xFE."
+ PICS: S.S.C40.Rsp
+ verification: |
+ ./chip-tool scenesmanagement copy-scene 0 0x0000 0x01 0x4E20 sceneFE [] 1 1
+
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0040
+ CHIP:TOO: CopySceneResponse: {
+ CHIP:TOO: status: 137
+ CHIP:TOO: groupID: 0
+ CHIP:TOO: sceneID: 0xFE
+ CHIP:TOO: }
+ disabled: true
+
+ - label:
+ "Step 9a: TH1 sends a RemoveAllScenes command to DUT with the GroupID
field set to 0x0000."
PICS: S.S.C03.Rsp
verification: |
- ./chip-tool scenes remove-all-scenes 0x0000 1 1
+ ./chip-tool scenesmanagement remove-all-scenes 0x0000 1 1
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0003
CHIP:TOO: RemoveAllScenesResponse: {
@@ -199,13 +390,16 @@
CHIP:TOO: }
disabled: true
- - label:
- "Step 7b: Verify that the DUT sends a report data to TH1 for
+ - label: "Step 9b: Verify that the DUT sends a report data to TH1 for
FabricSceneInfo after the MinIntervalFloor time; store the
- RemainingCapacity field from this fabrics entry the reported in
+ RemainingCapacity field from this fabric’s entry the reported in
FabricSceneInfo into Remaining1stCapacity; verify Remaining1stCapacity
- equals (MaxRemainingCapacity)."
- PICS: S.S.A0007
+ equals (MaxRemainingCapacity).
+
+ Verify that the DUT does not send report data to TH2 for
+ FabricSceneInfo after the MinIntervalFloor time with updated value (it
+ should send 'empty' report data since there is no update for this
+ attribute for TH2)."
verification: |
CHIP:DMG: ReportDataMessage =
CHIP:DMG: {
@@ -215,11 +409,11 @@
disabled: true
- label:
- "Step 8a: TH2 sends a RemoveAllScenes command to DUT with the GroupID
+ "Step 10a: TH2 sends a RemoveAllScenes command to DUT with the GroupID
field set to 0x0000."
PICS: S.S.C03.Rsp
verification: |
- ./chip-tool scenes remove-all-scenes 0x0000 2 1 --commissioner-name beta
+ ./chip-tool scenesmanagement remove-all-scenes 0x0000 2 1 --commissioner-name beta
CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0003
CHIP:TOO: RemoveAllScenesResponse: {
@@ -229,11 +423,57 @@
disabled: true
- label:
- "Step 8b: Verify that the DUT sends a report data to TH2 for
- RemainingCapacity after the MinIntervalFloor time; store this value
- into RemainingCapacity2; verify RemainingCapacity2 equals
- (MaxRemainingCapacity)."
- PICS: S.S.A0007
+ Verify that the DUT sends a report data to TH2 for FabricSceneInfo
+ after the MinIntervalFloor time; store the RemainingCapacity field
+ from this fabric’s entry reported in FabricSceneInfo into
+ Remaining2ndCapacity; verify Remaining2ndCapacity equals
+ (MaxRemainingCapacity).
verification: |
-
+ CHIP:DMG: ReportDataMessage =
+ CHIP:DMG: {
+ CHIP:DMG: SubscriptionId = 0x7049d607,
+ CHIP:DMG: AttributeReportIBs =
+ CHIP:DMG: [
+ CHIP:DMG: AttributeReportIB =
+ CHIP:DMG: {
+ CHIP:DMG: AttributeDataIB =
+ CHIP:DMG: {
+ CHIP:DMG: DataVersion = 0x92ecb45d,
+ CHIP:DMG: AttributePathIB =
+ CHIP:DMG: {
+ CHIP:DMG: Endpoint = 0x1,
+ CHIP:DMG: Cluster = 0x62,
+ CHIP:DMG: Attribute = 0x0000_0002,
+ CHIP:DMG: }
+ CHIP:DMG:
+ CHIP:DMG: Data = [
+ CHIP:DMG:
+ CHIP:DMG: {
+ CHIP:DMG: 0x0 = 4,
+ CHIP:DMG: 0x1 = 4,
+ CHIP:DMG: 0x2 = 0,
+ CHIP:DMG: 0x3 = false,
+ CHIP:DMG: 0x4 = 3,
+ CHIP:DMG: 0xfe = 1,
+ CHIP:DMG: },
+ CHIP:DMG: ],
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: },
+ CHIP:DMG:
+ CHIP:DMG: ],
+ CHIP:DMG:
+ CHIP:DMG: InteractionModelRevision = 11
+ CHIP:DMG: }
+ CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0062 Attribute 0x0000_0002 DataVersion: 2464986205
+ CHIP:TOO: FabricSceneInfo: 1 entries
+ CHIP:TOO: [1]: {
+ CHIP:TOO: SceneCount: 4
+ CHIP:TOO: CurrentScene: 4
+ CHIP:TOO: CurrentGroup: 0
+ CHIP:TOO: SceneValid: FALSE
+ CHIP:TOO: RemainingCapacity: 7
+ CHIP:TOO: FabricIndex: 1
+ CHIP:TOO: }
+ CHIP:DMG: Refresh LivenessCheckTime for 9224 milliseconds with SubscriptionId = 0x7049d607 Peer = 01:0000000000000001
disabled: true
diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values
index 907b002..465041b 100644
--- a/src/app/tests/suites/certification/ci-pics-values
+++ b/src/app/tests/suites/certification/ci-pics-values
@@ -679,7 +679,6 @@
S.S.AM=0
S.S.AO=0
S.S.F00=1
-PICS_SC_RECALL_SCENE_TRANSITION_TIME_MS=1
S.C=0
S.C.C00.Tx=0
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
index c801864..63fa2ec 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
@@ -189579,12 +189579,12 @@
err = TestStep7aThReadsFromTheDutTheGeneratedCommandListAttribute_8();
break;
case 9:
- ChipLogProgress(chipTool, " ***** Test Step 9 : Step 7b: Read optional command(CopySceneResponse) in GeneratedCommandList (global attribute 65528)\n");
+ ChipLogProgress(chipTool, " ***** Test Step 9 : Step 7b: TH reads Read optional command(CopySceneResponse) in GeneratedCommandList (global attribute 65528)\n");
if (ShouldSkip("S.S.C40.Rsp")) {
NextTest();
return;
}
- err = TestStep7bReadOptionalCommandCopySceneResponseInGeneratedCommandListGlobalAttribute65528_9();
+ err = TestStep7bThReadsReadOptionalCommandCopySceneResponseInGeneratedCommandListGlobalAttribute65528_9();
break;
}
@@ -189844,7 +189844,7 @@
return CHIP_NO_ERROR;
}
- CHIP_ERROR TestStep7bReadOptionalCommandCopySceneResponseInGeneratedCommandListGlobalAttribute65528_9()
+ CHIP_ERROR TestStep7bThReadsReadOptionalCommandCopySceneResponseInGeneratedCommandListGlobalAttribute65528_9()
{
MTRBaseDevice * device = GetDevice("alpha");
@@ -189853,9 +189853,9 @@
[cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
if (err != nil) {
- NSLog(@"Step 7b: Read optional command(CopySceneResponse) in GeneratedCommandList (global attribute 65528): Error: %@", err);
+ NSLog(@"Step 7b: TH reads Read optional command(CopySceneResponse) in GeneratedCommandList (global attribute 65528): Error: %@", err);
} else {
- NSLog(@"Step 7b: Read optional command(CopySceneResponse) in GeneratedCommandList (global attribute 65528): Success");
+ NSLog(@"Step 7b: TH reads Read optional command(CopySceneResponse) in GeneratedCommandList (global attribute 65528): Success");
}
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
@@ -190116,12 +190116,12 @@
err = TestStep0bThBindsGroupId0x0001WithGroupKeySetID0x01a1InTheGroupKeyMapAttributeListOnGroupKeyManagementClusterByWritingTheGroupKeyMapAttributeWithOneEntryAsFollowsListItem11FabricIndex12GroupId0x00013GroupKeySetId0x01a1_2();
break;
case 3:
- ChipLogProgress(chipTool, " ***** Test Step 3 : Step 0c: TH sends a RemoveAllGroups command to DUT.\n");
+ ChipLogProgress(chipTool, " ***** Test Step 3 : Step 1: TH sends a RemoveAllGroups command to DUT.\n");
if (ShouldSkip("G.S.C04.Rsp")) {
NextTest();
return;
}
- err = TestStep0cThSendsARemoveAllGroupsCommandToDut_3();
+ err = TestStep1ThSendsARemoveAllGroupsCommandToDut_3();
break;
case 4:
ChipLogProgress(chipTool, " ***** Test Step 4 : Step 2a: TH sends a AddGroup command to DUT with the GroupID field set to G1.\n");
@@ -190140,12 +190140,12 @@
err = TestStep2bThSendsARemoveAllScenesCommandToDutWithTheGroupIDFieldSetToG1_5();
break;
case 6:
- ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3: TH sends a AddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 0x4E20 (20s) and no extension fields set.\n");
+ ChipLogProgress(chipTool, " ***** Test Step 6 : Step 3: TH sends a AddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 20000 (20s) and no extension fields set.\n");
if (ShouldSkip("S.S.C00.Rsp")) {
NextTest();
return;
}
- err = TestStep3ThSendsAAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetTo0x4E2020sAndNoExtensionFieldsSet_6();
+ err = TestStep3ThSendsAAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetTo2000020sAndNoExtensionFieldsSet_6();
break;
case 7:
ChipLogProgress(chipTool, " ***** Test Step 7 : Step 4a: TH configures AC1 on DUT for all implemented application clusters supporting scenes.\n");
@@ -190237,15 +190237,15 @@
break;
case 19:
ChipLogProgress(chipTool, " ***** Test Step 19 : Step 6a: TH configures AC2 on DUT for all implemented application clusters supporting scenes.\n");
- if (ShouldSkip("PICS_SKIP_SAMPLE_APP && PICS_SC_RECALL_SCENE_TRANSITION_TIME_MS")) {
+ if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
NextTest();
return;
}
err = TestStep6aThConfiguresAc2OnDutForAllImplementedApplicationClustersSupportingScenes_19();
break;
case 20:
- ChipLogProgress(chipTool, " ***** Test Step 20 : Step 6b: TH sends a RecallScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01 and the TransitionTime field set to 5000 (5s).\n");
- if (ShouldSkip("S.S.C05.Rsp && PICS_SC_RECALL_SCENE_TRANSITION_TIME_MS")) {
+ ChipLogProgress(chipTool, " ***** Test Step 20 : Step 6b: TH sends a RecallScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01 and the TransitionTime field set to 5000 5s.\n");
+ if (ShouldSkip("S.S.C05.Rsp")) {
NextTest();
return;
}
@@ -190253,19 +190253,19 @@
break;
case 21:
ChipLogProgress(chipTool, " ***** Test Step 21 : Wait 5s\n");
- if (ShouldSkip("S.S.C05.Rsp && PICS_SC_RECALL_SCENE_TRANSITION_TIME_MS")) {
+ if (ShouldSkip("S.S.C05.Rsp")) {
NextTest();
return;
}
err = TestWait5s_21();
break;
case 22:
- ChipLogProgress(chipTool, " ***** Test Step 22 : TH confirm the DUT reached AC2 (on level control cluster) after 5s\n");
- if (ShouldSkip("S.S.C05.Rsp && PICS_SC_RECALL_SCENE_TRANSITION_TIME_MS && PICS_SDK_CI_ONLY")) {
+ ChipLogProgress(chipTool, " ***** Test Step 22 : TH confirm the DUT reached AC1 (on level control cluster) after 5s\n");
+ if (ShouldSkip("S.S.C05.Rsp && PICS_SDK_CI_ONLY")) {
NextTest();
return;
}
- err = TestThConfirmTheDutReachedAc2OnLevelControlClusterAfter5s_22();
+ err = TestThConfirmTheDutReachedAc1OnLevelControlClusterAfter5s_22();
break;
case 23:
ChipLogProgress(chipTool, " ***** Test Step 23 : DUT transitions to AC1 over 5.\n");
@@ -190300,8 +190300,32 @@
err = TestStep7bThSendsARecallSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01AndTheTransitionTimeFieldSetToNullNoTransitionTimeOverride_26();
break;
case 27:
- ChipLogProgress(chipTool, " ***** Test Step 27 : Step 8: TH removes the Group key set that was added by sending a KeySetRemove command to the GroupKeyManagement cluster with the GroupKeySetID field set to 0x01a1\n");
- err = TestStep8ThRemovesTheGroupKeySetThatWasAddedBySendingAKeySetRemoveCommandToTheGroupKeyManagementClusterWithTheGroupKeySetIDFieldSetTo0x01a1_27();
+ ChipLogProgress(chipTool, " ***** Test Step 27 : Wait 20s\n");
+ if (ShouldSkip("S.S.C05.Rsp")) {
+ NextTest();
+ return;
+ }
+ err = TestWait20s_27();
+ break;
+ case 28:
+ ChipLogProgress(chipTool, " ***** Test Step 28 : TH confirm the DUT reached AC1 (on level control cluster) after 20s\n");
+ if (ShouldSkip("S.S.C05.Rsp && PICS_SDK_CI_ONLY")) {
+ NextTest();
+ return;
+ }
+ err = TestThConfirmTheDutReachedAc1OnLevelControlClusterAfter20s_28();
+ break;
+ case 29:
+ ChipLogProgress(chipTool, " ***** Test Step 29 : DUT transitions to AC2 over 20.\n");
+ if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
+ NextTest();
+ return;
+ }
+ err = TestDutTransitionsToAc2Over20_29();
+ break;
+ case 30:
+ ChipLogProgress(chipTool, " ***** Test Step 30 : Step 8: TH removes the Group key set that was added by sending a KeySetRemove command to the GroupKeyManagement cluster with the GroupKeySetID field set to 0x01a1\n");
+ err = TestStep8ThRemovesTheGroupKeySetThatWasAddedBySendingAKeySetRemoveCommandToTheGroupKeyManagementClusterWithTheGroupKeySetIDFieldSetTo0x01a1_30();
break;
}
@@ -190398,6 +190422,15 @@
case 27:
VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
break;
+ case 28:
+ VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+ break;
+ case 29:
+ VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+ break;
+ case 30:
+ VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+ break;
}
// Go on to the next test.
@@ -190408,7 +190441,7 @@
private:
std::atomic_uint16_t mTestIndex;
- const uint16_t mTestCount = 28;
+ const uint16_t mTestCount = 31;
chip::Optional<chip::NodeId> mNodeId;
chip::Optional<chip::CharSpan> mCluster;
@@ -190500,7 +190533,7 @@
return CHIP_NO_ERROR;
}
- CHIP_ERROR TestStep0cThSendsARemoveAllGroupsCommandToDut_3()
+ CHIP_ERROR TestStep1ThSendsARemoveAllGroupsCommandToDut_3()
{
MTRBaseDevice * device = GetDevice("alpha");
@@ -190510,9 +190543,9 @@
[cluster removeAllGroupsWithCompletion:
^(NSError * _Nullable err) {
if (err != nil) {
- NSLog(@"Step 0c: TH sends a RemoveAllGroups command to DUT.: Error: %@", err);
+ NSLog(@"Step 1: TH sends a RemoveAllGroups command to DUT.: Error: %@", err);
} else {
- NSLog(@"Step 0c: TH sends a RemoveAllGroups command to DUT.: Success");
+ NSLog(@"Step 1: TH sends a RemoveAllGroups command to DUT.: Success");
}
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
@@ -190594,7 +190627,7 @@
return CHIP_NO_ERROR;
}
- CHIP_ERROR TestStep3ThSendsAAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetTo0x4E2020sAndNoExtensionFieldsSet_6()
+ CHIP_ERROR TestStep3ThSendsAAddSceneCommandToDutWithTheGroupIDFieldSetToG1TheSceneIDFieldSetTo0x01TheTransitionTimeFieldSetTo2000020sAndNoExtensionFieldsSet_6()
{
MTRBaseDevice * device = GetDevice("alpha");
@@ -190615,9 +190648,9 @@
[cluster addSceneWithParams:params completion:
^(MTRScenesManagementClusterAddSceneResponseParams * _Nullable values, NSError * _Nullable err) {
if (err != nil) {
- NSLog(@"Step 3: TH sends a AddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 0x4E20 (20s) and no extension fields set.: Error: %@", err);
+ NSLog(@"Step 3: TH sends a AddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 20000 (20s) and no extension fields set.: Error: %@", err);
} else {
- NSLog(@"Step 3: TH sends a AddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 0x4E20 (20s) and no extension fields set.: Success");
+ NSLog(@"Step 3: TH sends a AddScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01, the TransitionTime field set to 20000 (20s) and no extension fields set.: Success");
}
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
@@ -190936,9 +190969,9 @@
[cluster recallSceneWithParams:params completion:
^(NSError * _Nullable err) {
if (err != nil) {
- NSLog(@"Step 6b: TH sends a RecallScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01 and the TransitionTime field set to 5000 (5s).: Error: %@", err);
+ NSLog(@"Step 6b: TH sends a RecallScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01 and the TransitionTime field set to 5000 5s.: Error: %@", err);
} else {
- NSLog(@"Step 6b: TH sends a RecallScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01 and the TransitionTime field set to 5000 (5s).: Success");
+ NSLog(@"Step 6b: TH sends a RecallScene command to DUT with the GroupID field set to G1, the SceneID field set to 0x01 and the TransitionTime field set to 5000 5s.: Success");
}
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
@@ -190957,7 +190990,7 @@
return WaitForMs("alpha", value);
}
- CHIP_ERROR TestThConfirmTheDutReachedAc2OnLevelControlClusterAfter5s_22()
+ CHIP_ERROR TestThConfirmTheDutReachedAc1OnLevelControlClusterAfter5s_22()
{
MTRBaseDevice * device = GetDevice("alpha");
@@ -190966,9 +190999,9 @@
[cluster readAttributeCurrentLevelWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
if (err != nil) {
- NSLog(@"TH confirm the DUT reached AC2 (on level control cluster) after 5s: Error: %@", err);
+ NSLog(@"TH confirm the DUT reached AC1 (on level control cluster) after 5s: Error: %@", err);
} else {
- NSLog(@"TH confirm the DUT reached AC2 (on level control cluster) after 5s: Success");
+ NSLog(@"TH confirm the DUT reached AC1 (on level control cluster) after 5s: Success");
}
VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
@@ -191065,7 +191098,53 @@
return CHIP_NO_ERROR;
}
- CHIP_ERROR TestStep8ThRemovesTheGroupKeySetThatWasAddedBySendingAKeySetRemoveCommandToTheGroupKeyManagementClusterWithTheGroupKeySetIDFieldSetTo0x01a1_27()
+ CHIP_ERROR TestWait20s_27()
+ {
+
+ chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value;
+ value.ms = 20500UL;
+ return WaitForMs("alpha", value);
+ }
+
+ CHIP_ERROR TestThConfirmTheDutReachedAc1OnLevelControlClusterAfter20s_28()
+ {
+
+ MTRBaseDevice * device = GetDevice("alpha");
+ __auto_type * cluster = [[MTRBaseClusterLevelControl alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+ VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+ [cluster readAttributeCurrentLevelWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+ if (err != nil) {
+ NSLog(@"TH confirm the DUT reached AC1 (on level control cluster) after 20s: Error: %@", err);
+ } else {
+ NSLog(@"TH confirm the DUT reached AC1 (on level control cluster) after 20s: Success");
+ }
+
+ VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+ {
+ id actualValue = value;
+ VerifyOrReturn(CheckValueNonNull("CurrentLevel", actualValue));
+ VerifyOrReturn(CheckValue("CurrentLevel", actualValue, 100U));
+ }
+
+ NextTest();
+ }];
+
+ return CHIP_NO_ERROR;
+ }
+
+ CHIP_ERROR TestDutTransitionsToAc2Over20_29()
+ {
+
+ chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
+ value.message = chip::Span<const char>("Please confirm that transition to AC2 was made over 5sgarbage: not in length on purpose", 54);
+ value.expectedValue.Emplace();
+ value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
+ return UserPrompt("alpha", value);
+ }
+
+ CHIP_ERROR TestStep8ThRemovesTheGroupKeySetThatWasAddedBySendingAKeySetRemoveCommandToTheGroupKeyManagementClusterWithTheGroupKeySetIDFieldSetTo0x01a1_30()
{
MTRBaseDevice * device = GetDevice("alpha");